Class KubernetesManifest.Builder
- All Implemented Interfaces:
software.amazon.jsii.Builder<KubernetesManifest>
- Enclosing class:
KubernetesManifest
KubernetesManifest
.-
Method Summary
Modifier and TypeMethodDescriptionbuild()
The EKS cluster to apply this manifest to.static KubernetesManifest.Builder
ingressAlb
(Boolean ingressAlb) Automatically detectIngress
resources in the manifest and annotate them so they are picked up by an ALB Ingress Controller.ingressAlbScheme
(AlbScheme ingressAlbScheme) Specify the ALB scheme that should be applied toIngress
resources.The manifest to apply.Overwrite any existing resources.When a resource is removed from a Kubernetes manifest, it no longer appears in the manifest, and there is no way to know that this resource needs to be deleted.skipValidation
(Boolean skipValidation) A flag to signify if the manifest validation should be skipped.
-
Method Details
-
create
@Stability(Stable) public static KubernetesManifest.Builder create(software.constructs.Construct scope, String id) - Parameters:
scope
- This parameter is required.id
- This parameter is required.- Returns:
- a new instance of
KubernetesManifest.Builder
.
-
ingressAlb
Automatically detectIngress
resources in the manifest and annotate them so they are picked up by an ALB Ingress Controller.Default: false
- Parameters:
ingressAlb
- Automatically detectIngress
resources in the manifest and annotate them so they are picked up by an ALB Ingress Controller. This parameter is required.- Returns:
this
-
ingressAlbScheme
Specify the ALB scheme that should be applied toIngress
resources.Only applicable if
ingressAlb
is set totrue
.Default: AlbScheme.INTERNAL
- Parameters:
ingressAlbScheme
- Specify the ALB scheme that should be applied toIngress
resources. This parameter is required.- Returns:
this
-
prune
When a resource is removed from a Kubernetes manifest, it no longer appears in the manifest, and there is no way to know that this resource needs to be deleted.To address this,
kubectl apply
has a--prune
option which will query the cluster for all resources with a specific label and will remove all the labeld resources that are not part of the applied manifest. If this option is disabled and a resource is removed, it will become "orphaned" and will not be deleted from the cluster.When this option is enabled (default), the construct will inject a label to all Kubernetes resources included in this manifest which will be used to prune resources when the manifest changes via
kubectl apply --prune
.The label name will be
aws.cdk.eks/prune-<ADDR>
where<ADDR>
is the 42-char unique address of this construct in the construct tree. Value is empty.Default: - based on the prune option of the cluster, which is `true` unless otherwise specified.
- Parameters:
prune
- When a resource is removed from a Kubernetes manifest, it no longer appears in the manifest, and there is no way to know that this resource needs to be deleted. This parameter is required.- Returns:
this
- See Also:
-
skipValidation
A flag to signify if the manifest validation should be skipped.Default: false
- Parameters:
skipValidation
- A flag to signify if the manifest validation should be skipped. This parameter is required.- Returns:
this
-
cluster
The EKS cluster to apply this manifest to.[disable-awslint:ref-via-interface]
- Parameters:
cluster
- The EKS cluster to apply this manifest to. This parameter is required.- Returns:
this
-
manifest
@Stability(Stable) public KubernetesManifest.Builder manifest(List<? extends Map<String, ? extends Object>> manifest) The manifest to apply.Consists of any number of child resources.
When the resources are created/updated, this manifest will be applied to the cluster through
kubectl apply
and when the resources or the stack is deleted, the resources in the manifest will be deleted throughkubectl delete
.Example:
List.of(Map.of( "apiVersion", "v1", "kind", "Pod", "metadata", Map.of("name", "mypod"), "spec", Map.of( "containers", List.of(Map.of("name", "hello", "image", "paulbouwer/hello-kubernetes:1.5", "ports", List.of(Map.of("containerPort", 8080)))))));
- Parameters:
manifest
- The manifest to apply. This parameter is required.- Returns:
this
-
overwrite
Overwrite any existing resources.If this is set, we will use
kubectl apply
instead ofkubectl create
when the resource is created. Otherwise, if there is already a resource in the cluster with the same name, the operation will fail.Default: false
- Parameters:
overwrite
- Overwrite any existing resources. This parameter is required.- Returns:
this
-
build
- Specified by:
build
in interfacesoftware.amazon.jsii.Builder<KubernetesManifest>
- Returns:
- a newly built instance of
KubernetesManifest
.
-