Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION")
package io.cloudshiftdev.awscdk.services.eks
import io.cloudshiftdev.awscdk.common.CdkDslMarker
import kotlin.Any
import kotlin.Boolean
import kotlin.String
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import io.cloudshiftdev.constructs.Construct as CloudshiftdevConstructsConstruct
import software.constructs.Construct as SoftwareConstructsConstruct
/**
* Represents a manifest within the Kubernetes system.
*
* Alternatively, you can use `cluster.addManifest(resource[, resource, ...])`
* to define resources on this cluster.
*
* Applies/deletes the manifest using `kubectl`.
*
* Example:
*
* ```
* Cluster cluster;
* KubernetesManifest namespace = cluster.addManifest("my-namespace", Map.of(
* "apiVersion", "v1",
* "kind", "Namespace",
* "metadata", Map.of("name", "my-app")));
* KubernetesManifest service = cluster.addManifest("my-service", Map.of(
* "metadata", Map.of(
* "name", "myservice",
* "namespace", "my-app"),
* "spec", Map.of()));
* service.node.addDependency(namespace);
* ```
*/
public open class KubernetesManifest(
cdkObject: software.amazon.awscdk.services.eks.KubernetesManifest,
) : CloudshiftdevConstructsConstruct(cdkObject) {
public constructor(
scope: CloudshiftdevConstructsConstruct,
id: String,
props: KubernetesManifestProps,
) :
this(software.amazon.awscdk.services.eks.KubernetesManifest(scope.let(CloudshiftdevConstructsConstruct.Companion::unwrap),
id, props.let(KubernetesManifestProps.Companion::unwrap))
)
public constructor(
scope: CloudshiftdevConstructsConstruct,
id: String,
props: KubernetesManifestProps.Builder.() -> Unit,
) : this(scope, id, KubernetesManifestProps(props)
)
/**
* A fluent builder for [io.cloudshiftdev.awscdk.services.eks.KubernetesManifest].
*/
@CdkDslMarker
public interface Builder {
/**
* The EKS cluster to apply this manifest to.
*
* [disable-awslint:ref-via-interface]
*
* @param cluster The EKS cluster to apply this manifest to.
*/
public fun cluster(cluster: ICluster)
/**
* Automatically detect `Ingress` resources in the manifest and annotate them so they are picked
* up by an ALB Ingress Controller.
*
* Default: false
*
* @param ingressAlb Automatically detect `Ingress` resources in the manifest and annotate them
* so they are picked up by an ALB Ingress Controller.
*/
public fun ingressAlb(ingressAlb: Boolean)
/**
* Specify the ALB scheme that should be applied to `Ingress` resources.
*
* Only applicable if `ingressAlb` is set to `true`.
*
* Default: AlbScheme.INTERNAL
*
* @param ingressAlbScheme Specify the ALB scheme that should be applied to `Ingress` resources.
*
*/
public fun ingressAlbScheme(ingressAlbScheme: AlbScheme)
/**
* 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 through `kubectl 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)))))));
* ```
*
* @param manifest The manifest to apply.
*/
public fun manifest(manifest: List