Class CronJobProps.Builder
- java.lang.Object
-
- org.cdk8s.plus24.CronJobProps.Builder
-
- All Implemented Interfaces:
software.amazon.jsii.Builder<CronJobProps>
- Enclosing interface:
- CronJobProps
@Stability(Stable) public static final class CronJobProps.Builder extends Object implements software.amazon.jsii.Builder<CronJobProps>
A builder forCronJobProps
-
-
Constructor Summary
Constructors Constructor Description Builder()
-
Method Summary
-
-
-
Method Detail
-
schedule
@Stability(Stable) public CronJobProps.Builder schedule(org.cdk8s.Cron schedule)
Sets the value ofCronJobProps.getSchedule()
- Parameters:
schedule
- Specifies the time in which the job would run again. This parameter is required. This is defined as a cron expression in the CronJob resource.- Returns:
this
-
concurrencyPolicy
@Stability(Stable) public CronJobProps.Builder concurrencyPolicy(ConcurrencyPolicy concurrencyPolicy)
Sets the value ofCronJobProps.getConcurrencyPolicy()
- Parameters:
concurrencyPolicy
- Specifies the concurrency policy for the job.- Returns:
this
-
failedJobsRetained
@Stability(Stable) public CronJobProps.Builder failedJobsRetained(Number failedJobsRetained)
Sets the value ofCronJobProps.getFailedJobsRetained()
- Parameters:
failedJobsRetained
- Specifies the number of failed jobs history retained. This would retain the Job and the associated Pod resource and can be useful for debugging.- Returns:
this
-
startingDeadline
@Stability(Stable) public CronJobProps.Builder startingDeadline(org.cdk8s.Duration startingDeadline)
Sets the value ofCronJobProps.getStartingDeadline()
- Parameters:
startingDeadline
- Kubernetes attempts to start cron jobs at its schedule time, but this is not guaranteed. This deadline specifies how much time can pass after a schedule point, for which kubernetes can still start the job. For example, if this is set to 100 seconds, kubernetes is allowed to start the job at a maximum 100 seconds after the scheduled time.Note that the Kubernetes CronJobController checks for things every 10 seconds, for this reason, a deadline below 10 seconds is not allowed, as it may cause your job to never be scheduled.
In addition, kubernetes will stop scheduling jobs if more than 100 schedules were missed (for any reason). This property also controls what time interval should kubernetes consider when counting for missed schedules.
For example, suppose a CronJob is set to schedule a new Job every one minute beginning at 08:30:00, and its
startingDeadline
field is not set. If the CronJob controller happens to be down from 08:29:00 to 10:21:00, the job will not start as the number of missed jobs which missed their schedule is greater than 100. However, ifstartingDeadline
is set to 200 seconds, kubernetes will only count 3 missed schedules, and thus start a new execution at 10:22:00.- Returns:
this
-
successfulJobsRetained
@Stability(Stable) public CronJobProps.Builder successfulJobsRetained(Number successfulJobsRetained)
Sets the value ofCronJobProps.getSuccessfulJobsRetained()
- Parameters:
successfulJobsRetained
- Specifies the number of successful jobs history retained. This would retain the Job and the associated Pod resource and can be useful for debugging.- Returns:
this
-
suspend
@Stability(Stable) public CronJobProps.Builder suspend(Boolean suspend)
Sets the value ofCronJobProps.getSuspend()
- Parameters:
suspend
- Specifies if the cron job should be suspended. Only applies to future executions, current ones are remained untouched.- Returns:
this
-
timeZone
@Stability(Stable) public CronJobProps.Builder timeZone(String timeZone)
Sets the value ofCronJobProps.getTimeZone()
- Parameters:
timeZone
- Specifies the timezone for the job. This helps aligining the schedule to follow the specified timezone.- Returns:
this
-
activeDeadline
@Stability(Stable) public CronJobProps.Builder activeDeadline(org.cdk8s.Duration activeDeadline)
Sets the value ofJobProps.getActiveDeadline()
- Parameters:
activeDeadline
- Specifies the duration the job may be active before the system tries to terminate it.- Returns:
this
-
backoffLimit
@Stability(Stable) public CronJobProps.Builder backoffLimit(Number backoffLimit)
Sets the value ofJobProps.getBackoffLimit()
- Parameters:
backoffLimit
- Specifies the number of retries before marking this job failed.- Returns:
this
-
ttlAfterFinished
@Stability(Stable) public CronJobProps.Builder ttlAfterFinished(org.cdk8s.Duration ttlAfterFinished)
Sets the value ofJobProps.getTtlAfterFinished()
- Parameters:
ttlAfterFinished
- Limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes. This field is alpha-level and is only honored by servers that enable theTTLAfterFinished
feature.- Returns:
this
-
podMetadata
@Stability(Stable) public CronJobProps.Builder podMetadata(org.cdk8s.ApiObjectMetadata podMetadata)
Sets the value ofWorkloadProps.getPodMetadata()
- Parameters:
podMetadata
- The pod metadata of this workload.- Returns:
this
-
select
@Stability(Stable) public CronJobProps.Builder select(Boolean select)
Sets the value ofWorkloadProps.getSelect()
- Parameters:
select
- Automatically allocates a pod label selector for this workload and add it to the pod metadata. This ensures this workload manages pods created by its pod template.- Returns:
this
-
spread
@Stability(Stable) public CronJobProps.Builder spread(Boolean spread)
Sets the value ofWorkloadProps.getSpread()
- Parameters:
spread
- Automatically spread pods across hostname and zones.- Returns:
this
-
automountServiceAccountToken
@Stability(Stable) public CronJobProps.Builder automountServiceAccountToken(Boolean automountServiceAccountToken)
Sets the value ofAbstractPodProps.getAutomountServiceAccountToken()
- Parameters:
automountServiceAccountToken
- Indicates whether a service account token should be automatically mounted.- Returns:
this
-
containers
@Stability(Stable) public CronJobProps.Builder containers(List<? extends ContainerProps> containers)
Sets the value ofAbstractPodProps.getContainers()
- Parameters:
containers
- List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod.You can add additionnal containers using
podSpec.addContainer()
- Returns:
this
-
dns
@Stability(Stable) public CronJobProps.Builder dns(PodDnsProps dns)
Sets the value ofAbstractPodProps.getDns()
- Parameters:
dns
- DNS settings for the pod.- Returns:
this
-
dockerRegistryAuth
@Stability(Stable) public CronJobProps.Builder dockerRegistryAuth(DockerConfigSecret dockerRegistryAuth)
Sets the value ofAbstractPodProps.getDockerRegistryAuth()
- Parameters:
dockerRegistryAuth
- A secret containing docker credentials for authenticating to a registry.- Returns:
this
-
hostAliases
@Stability(Stable) public CronJobProps.Builder hostAliases(List<? extends HostAlias> hostAliases)
Sets the value ofAbstractPodProps.getHostAliases()
- Parameters:
hostAliases
- HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.- Returns:
this
-
initContainers
@Stability(Stable) public CronJobProps.Builder initContainers(List<? extends ContainerProps> initContainers)
Sets the value ofAbstractPodProps.getInitContainers()
- Parameters:
initContainers
- List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion.Init containers cannot currently be added ,removed or updated.
- Returns:
this
-
isolate
@Stability(Stable) public CronJobProps.Builder isolate(Boolean isolate)
Sets the value ofAbstractPodProps.getIsolate()
- Parameters:
isolate
- Isolates the pod. This will prevent any ingress or egress connections to / from this pod. You can however allow explicit connections post instantiation by using the.connections
property.- Returns:
this
-
restartPolicy
@Stability(Stable) public CronJobProps.Builder restartPolicy(RestartPolicy restartPolicy)
Sets the value ofAbstractPodProps.getRestartPolicy()
- Parameters:
restartPolicy
- Restart policy for all containers within the pod.- Returns:
this
-
securityContext
@Stability(Stable) public CronJobProps.Builder securityContext(PodSecurityContextProps securityContext)
Sets the value ofAbstractPodProps.getSecurityContext()
- Parameters:
securityContext
- SecurityContext holds pod-level security attributes and common container settings.- Returns:
this
-
serviceAccount
@Stability(Stable) public CronJobProps.Builder serviceAccount(IServiceAccount serviceAccount)
Sets the value ofAbstractPodProps.getServiceAccount()
- Parameters:
serviceAccount
- A service account provides an identity for processes that run in a Pod. When you (a human) access the cluster (for example, using kubectl), you are authenticated by the apiserver as a particular User Account (currently this is usually admin, unless your cluster administrator has customized your cluster). Processes in containers inside pods can also contact the apiserver. When they do, they are authenticated as a particular Service Account (for example, default).- Returns:
this
-
volumes
@Stability(Stable) public CronJobProps.Builder volumes(List<? extends Volume> volumes)
Sets the value ofAbstractPodProps.getVolumes()
- Parameters:
volumes
- List of volumes that can be mounted by containers belonging to the pod. You can also add volumes later usingpodSpec.addVolume()
- Returns:
this
-
metadata
@Stability(Stable) public CronJobProps.Builder metadata(org.cdk8s.ApiObjectMetadata metadata)
Sets the value ofResourceProps.getMetadata()
- Parameters:
metadata
- Metadata that all persisted resources must have, which includes all objects users must create.- Returns:
this
-
build
@Stability(Stable) public CronJobProps build()
Builds the configured instance.- Specified by:
build
in interfacesoftware.amazon.jsii.Builder<CronJobProps>
- Returns:
- a new instance of
CronJobProps
- Throws:
NullPointerException
- if any required attribute was not provided
-
-