Class Deployment.Builder
- java.lang.Object
-
- org.cdk8s.plus24.Deployment.Builder
-
- All Implemented Interfaces:
software.amazon.jsii.Builder<Deployment>
- Enclosing class:
- Deployment
@Stability(Stable) public static final class Deployment.Builder extends Object implements software.amazon.jsii.Builder<Deployment>
A fluent builder forDeployment
.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Deployment.Builder
automountServiceAccountToken(Boolean automountServiceAccountToken)
Indicates whether a service account token should be automatically mounted.Deployment
build()
Deployment.Builder
containers(List<? extends ContainerProps> containers)
List of containers belonging to the pod.static Deployment.Builder
create(software.constructs.Construct scope, String id)
Deployment.Builder
dns(PodDnsProps dns)
DNS settings for the pod.Deployment.Builder
dockerRegistryAuth(DockerConfigSecret dockerRegistryAuth)
A secret containing docker credentials for authenticating to a registry.Deployment.Builder
hostAliases(List<? extends HostAlias> hostAliases)
HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.Deployment.Builder
initContainers(List<? extends ContainerProps> initContainers)
List of initialization containers belonging to the pod.Deployment.Builder
isolate(Boolean isolate)
Isolates the pod.Deployment.Builder
metadata(org.cdk8s.ApiObjectMetadata metadata)
Metadata that all persisted resources must have, which includes all objects users must create.Deployment.Builder
minReady(org.cdk8s.Duration minReady)
Minimum duration for which a newly created pod should be ready without any of its container crashing, for it to be considered available.Deployment.Builder
podMetadata(org.cdk8s.ApiObjectMetadata podMetadata)
The pod metadata of this workload.Deployment.Builder
progressDeadline(org.cdk8s.Duration progressDeadline)
The maximum duration for a deployment to make progress before it is considered to be failed.Deployment.Builder
replicas(Number replicas)
Number of desired pods.Deployment.Builder
restartPolicy(RestartPolicy restartPolicy)
Restart policy for all containers within the pod.Deployment.Builder
securityContext(PodSecurityContextProps securityContext)
SecurityContext holds pod-level security attributes and common container settings.Deployment.Builder
select(Boolean select)
Automatically allocates a pod label selector for this workload and add it to the pod metadata.Deployment.Builder
serviceAccount(IServiceAccount serviceAccount)
A service account provides an identity for processes that run in a Pod.Deployment.Builder
spread(Boolean spread)
Automatically spread pods across hostname and zones.Deployment.Builder
strategy(DeploymentStrategy strategy)
Specifies the strategy used to replace old Pods by new ones.Deployment.Builder
volumes(List<? extends Volume> volumes)
List of volumes that can be mounted by containers belonging to the pod.
-
-
-
Method Detail
-
create
@Stability(Stable) public static Deployment.Builder create(software.constructs.Construct scope, String id)
- Parameters:
scope
- This parameter is required.id
- This parameter is required.- Returns:
- a new instance of
Deployment.Builder
.
-
metadata
@Stability(Stable) public Deployment.Builder metadata(org.cdk8s.ApiObjectMetadata metadata)
Metadata that all persisted resources must have, which includes all objects users must create.- Parameters:
metadata
- Metadata that all persisted resources must have, which includes all objects users must create. This parameter is required.- Returns:
this
-
automountServiceAccountToken
@Stability(Stable) public Deployment.Builder automountServiceAccountToken(Boolean automountServiceAccountToken)
Indicates whether a service account token should be automatically mounted.Default: false
- Parameters:
automountServiceAccountToken
- Indicates whether a service account token should be automatically mounted. This parameter is required.- Returns:
this
- See Also:
- https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
-
containers
@Stability(Stable) public Deployment.Builder containers(List<? extends ContainerProps> 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()
Default: - No containers. Note that a pod spec must include at least one container.
- Parameters:
containers
- List of containers belonging to the pod. This parameter is required.- Returns:
this
-
dns
@Stability(Stable) public Deployment.Builder dns(PodDnsProps dns)
DNS settings for the pod.Default: policy: DnsPolicy.CLUSTER_FIRST hostnameAsFQDN: false
- Parameters:
dns
- DNS settings for the pod. This parameter is required.- Returns:
this
- See Also:
- https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
-
dockerRegistryAuth
@Stability(Stable) public Deployment.Builder dockerRegistryAuth(DockerConfigSecret dockerRegistryAuth)
A secret containing docker credentials for authenticating to a registry.Default: - No auth. Images are assumed to be publicly available.
- Parameters:
dockerRegistryAuth
- A secret containing docker credentials for authenticating to a registry. This parameter is required.- Returns:
this
-
hostAliases
@Stability(Stable) public Deployment.Builder hostAliases(List<? extends HostAlias> hostAliases)
HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.- Parameters:
hostAliases
- HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file. This parameter is required.- Returns:
this
-
initContainers
@Stability(Stable) public Deployment.Builder initContainers(List<? extends ContainerProps> 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.
Default: - No init containers.
- Parameters:
initContainers
- List of initialization containers belonging to the pod. This parameter is required.- Returns:
this
- See Also:
- https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
-
isolate
@Stability(Stable) public Deployment.Builder isolate(Boolean 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.Default: false
- Parameters:
isolate
- Isolates the pod. This parameter is required.- Returns:
this
-
restartPolicy
@Stability(Stable) public Deployment.Builder restartPolicy(RestartPolicy restartPolicy)
Restart policy for all containers within the pod.Default: RestartPolicy.ALWAYS
- Parameters:
restartPolicy
- Restart policy for all containers within the pod. This parameter is required.- Returns:
this
- See Also:
- https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
-
securityContext
@Stability(Stable) public Deployment.Builder securityContext(PodSecurityContextProps securityContext)
SecurityContext holds pod-level security attributes and common container settings.Default: fsGroupChangePolicy: FsGroupChangePolicy.FsGroupChangePolicy.ALWAYS ensureNonRoot: true
- Parameters:
securityContext
- SecurityContext holds pod-level security attributes and common container settings. This parameter is required.- Returns:
this
-
serviceAccount
@Stability(Stable) public Deployment.Builder serviceAccount(IServiceAccount 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).
Default: - No service account.
- Parameters:
serviceAccount
- A service account provides an identity for processes that run in a Pod. This parameter is required.- Returns:
this
- See Also:
- https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
-
volumes
@Stability(Stable) public Deployment.Builder volumes(List<? extends Volume> volumes)
List of volumes that can be mounted by containers belonging to the pod.You can also add volumes later using
podSpec.addVolume()
Default: - No volumes.
- Parameters:
volumes
- List of volumes that can be mounted by containers belonging to the pod. This parameter is required.- Returns:
this
- See Also:
- https://kubernetes.io/docs/concepts/storage/volumes
-
podMetadata
@Stability(Stable) public Deployment.Builder podMetadata(org.cdk8s.ApiObjectMetadata podMetadata)
The pod metadata of this workload.- Parameters:
podMetadata
- The pod metadata of this workload. This parameter is required.- Returns:
this
-
select
@Stability(Stable) public Deployment.Builder select(Boolean 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.
Default: true
- Parameters:
select
- Automatically allocates a pod label selector for this workload and add it to the pod metadata. This parameter is required.- Returns:
this
-
spread
@Stability(Stable) public Deployment.Builder spread(Boolean spread)
Automatically spread pods across hostname and zones.Default: false
- Parameters:
spread
- Automatically spread pods across hostname and zones. This parameter is required.- Returns:
this
- See Also:
- https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/#internal-default-constraints
-
minReady
@Stability(Stable) public Deployment.Builder minReady(org.cdk8s.Duration minReady)
Minimum duration for which a newly created pod should be ready without any of its container crashing, for it to be considered available.Zero means the pod will be considered available as soon as it is ready.
Default: Duration.seconds(0)
- Parameters:
minReady
- Minimum duration for which a newly created pod should be ready without any of its container crashing, for it to be considered available. This parameter is required.- Returns:
this
- See Also:
- https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#min-ready-seconds
-
progressDeadline
@Stability(Stable) public Deployment.Builder progressDeadline(org.cdk8s.Duration progressDeadline)
The maximum duration for a deployment to make progress before it is considered to be failed.The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status.
Note that progress will not be estimated during the time a deployment is paused.
Default: Duration.seconds(600)
- Parameters:
progressDeadline
- The maximum duration for a deployment to make progress before it is considered to be failed. This parameter is required.- Returns:
this
- See Also:
- https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#progress-deadline-seconds
-
replicas
@Stability(Stable) public Deployment.Builder replicas(Number replicas)
Number of desired pods.Default: 2
- Parameters:
replicas
- Number of desired pods. This parameter is required.- Returns:
this
-
strategy
@Stability(Stable) public Deployment.Builder strategy(DeploymentStrategy strategy)
Specifies the strategy used to replace old Pods by new ones.Default: - RollingUpdate with maxSurge and maxUnavailable set to 25%.
- Parameters:
strategy
- Specifies the strategy used to replace old Pods by new ones. This parameter is required.- Returns:
this
-
build
@Stability(Stable) public Deployment build()
- Specified by:
build
in interfacesoftware.amazon.jsii.Builder<Deployment>
-
-