aws-cdk-lib.aws_eks.Cluster

class Cluster (construct)

LanguageType name
.NETAmazon.CDK.AWS.EKS.Cluster
Gogithub.com/aws/aws-cdk-go/awscdk/v2/awseks#Cluster
Javasoftware.amazon.awscdk.services.eks.Cluster
Pythonaws_cdk.aws_eks.Cluster
TypeScript (source)aws-cdk-lib » aws_eks » Cluster

Implements IConstruct, IDependable, IResource, ICluster, IConnectable

A Cluster represents a managed Kubernetes Service (EKS).

This is a fully managed cluster of API Servers (control-plane) The user is still required to create the worker nodes.

Example

declare const vpc: ec2.Vpc;

new eks.Cluster(this, 'HelloEKS', {
  version: eks.KubernetesVersion.V1_26,
  vpc,
  vpcSubnets: [{ subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS }],
});

Initializer

new Cluster(scope: Construct, id: string, props: ClusterProps)

Parameters

  • scope Construct — a Construct, most likely a cdk.Stack created.
  • id string — the id of the Construct to create.
  • props ClusterProps — properties in the IClusterProps interface.

Initiates an EKS Cluster with the supplied arguments.

Construct Props

NameTypeDescription
versionKubernetesVersionThe Kubernetes version to run in the cluster.
albController?AlbControllerOptionsInstall the AWS Load Balancer Controller onto the cluster.
awscliLayer?ILayerVersionAn AWS Lambda layer that contains the aws CLI.
clusterHandlerEnvironment?{ [string]: string }Custom environment variables when interacting with the EKS endpoint to manage the cluster lifecycle.
clusterHandlerSecurityGroup?ISecurityGroupA security group to associate with the Cluster Handler's Lambdas.
clusterLogging?ClusterLoggingTypes[]The cluster log types which you want to enable.
clusterName?stringName for the cluster.
coreDnsComputeType?CoreDnsComputeTypeControls the "eks.amazonaws.com/compute-type" annotation in the CoreDNS configuration on your cluster to determine which compute type to use for CoreDNS.
defaultCapacity?numberNumber of instances to allocate as an initial capacity for this cluster.
defaultCapacityInstance?InstanceTypeThe instance type to use for the default capacity.
defaultCapacityType?DefaultCapacityTypeThe default capacity type for the cluster.
endpointAccess?EndpointAccessConfigure access to the Kubernetes API server endpoint..
ipFamily?IpFamilySpecify which IP family is used to assign Kubernetes pod and service IP addresses.
kubectlEnvironment?{ [string]: string }Environment variables for the kubectl execution.
kubectlLambdaRole?IRoleThe IAM role to pass to the Kubectl Lambda Handler.
kubectlLayer?ILayerVersionAn AWS Lambda Layer which includes kubectl and Helm.
kubectlMemory?SizeAmount of memory to allocate to the provider's lambda function.
mastersRole?IRoleAn IAM role that will be added to the system:masters Kubernetes RBAC group.
onEventLayer?ILayerVersionAn AWS Lambda Layer which includes the NPM dependency proxy-agent.
outputClusterName?booleanDetermines whether a CloudFormation output with the name of the cluster will be synthesized.
outputConfigCommand?booleanDetermines whether a CloudFormation output with the aws eks update-kubeconfig command will be synthesized.
outputMastersRoleArn?booleanDetermines whether a CloudFormation output with the ARN of the "masters" IAM role will be synthesized (if mastersRole is specified).
placeClusterHandlerInVpc?booleanIf set to true, the cluster handler functions will be placed in the private subnets of the cluster vpc, subject to the vpcSubnets selection strategy.
prune?booleanIndicates whether Kubernetes resources added through addManifest() can be automatically pruned.
role?IRoleRole that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf.
secretsEncryptionKey?IKeyKMS secret for envelope encryption for Kubernetes secrets.
securityGroup?ISecurityGroupSecurity Group to use for Control Plane ENIs.
serviceIpv4Cidr?stringThe CIDR block to assign Kubernetes service IP addresses from.
tags?{ [string]: string }The tags assigned to the EKS cluster.
vpc?IVpcThe VPC in which to create the Cluster.
vpcSubnets?SubnetSelection[]Where to place EKS Control Plane ENIs.

version

Type: KubernetesVersion

The Kubernetes version to run in the cluster.


albController?

Type: AlbControllerOptions (optional, default: The controller is not installed.)

Install the AWS Load Balancer Controller onto the cluster.

See also: https://kubernetes-sigs.github.io/aws-load-balancer-controller


awscliLayer?

Type: ILayerVersion (optional, default: a default layer with the AWS CLI 1.x)

An AWS Lambda layer that contains the aws CLI.

The handler expects the layer to include the following executables:

/opt/awscli/aws

clusterHandlerEnvironment?

Type: { [string]: string } (optional, default: No environment variables.)

Custom environment variables when interacting with the EKS endpoint to manage the cluster lifecycle.


clusterHandlerSecurityGroup?

Type: ISecurityGroup (optional, default: No security group.)

A security group to associate with the Cluster Handler's Lambdas.

The Cluster Handler's Lambdas are responsible for calling AWS's EKS API.

Requires placeClusterHandlerInVpc to be set to true.


clusterLogging?

Type: ClusterLoggingTypes[] (optional, default: none)

The cluster log types which you want to enable.


clusterName?

Type: string (optional, default: Automatically generated name)

Name for the cluster.


coreDnsComputeType?

Type: CoreDnsComputeType (optional, default: CoreDnsComputeType.EC2 (for FargateCluster the default is FARGATE))

Controls the "eks.amazonaws.com/compute-type" annotation in the CoreDNS configuration on your cluster to determine which compute type to use for CoreDNS.


defaultCapacity?

Type: number (optional, default: 2)

Number of instances to allocate as an initial capacity for this cluster.

Instance type can be configured through defaultCapacityInstanceType, which defaults to m5.large.

Use cluster.addAutoScalingGroupCapacity to add additional customized capacity. Set this to 0 is you wish to avoid the initial capacity allocation.


defaultCapacityInstance?

Type: InstanceType (optional, default: m5.large)

The instance type to use for the default capacity.

This will only be taken into account if defaultCapacity is > 0.


defaultCapacityType?

Type: DefaultCapacityType (optional, default: NODEGROUP)

The default capacity type for the cluster.


endpointAccess?

Type: EndpointAccess (optional, default: EndpointAccess.PUBLIC_AND_PRIVATE)

Configure access to the Kubernetes API server endpoint..

See also: https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html


ipFamily?

Type: IpFamily (optional, default: IpFamily.IP_V4)

Specify which IP family is used to assign Kubernetes pod and service IP addresses.

See also: https://docs.aws.amazon.com/eks/latest/APIReference/API_KubernetesNetworkConfigRequest.html#AmazonEKS-Type-KubernetesNetworkConfigRequest-ipFamily


kubectlEnvironment?

Type: { [string]: string } (optional, default: No environment variables.)

Environment variables for the kubectl execution.

Only relevant for kubectl enabled clusters.


kubectlLambdaRole?

Type: IRole (optional, default: Default Lambda IAM Execution Role)

The IAM role to pass to the Kubectl Lambda Handler.


kubectlLayer?

Type: ILayerVersion (optional, default: a default layer with Kubectl 1.20.)

An AWS Lambda Layer which includes kubectl and Helm.

This layer is used by the kubectl handler to apply manifests and install helm charts. You must pick an appropriate releases of one of the @aws-cdk/layer-kubectl-vXX packages, that works with the version of Kubernetes you have chosen. If you don't supply this value kubectl 1.20 will be used, but that version is most likely too old.

The handler expects the layer to include the following executables:

/opt/helm/helm
/opt/kubectl/kubectl

kubectlMemory?

Type: Size (optional, default: Size.gibibytes(1))

Amount of memory to allocate to the provider's lambda function.


mastersRole?

Type: IRole (optional, default: no masters role.)

An IAM role that will be added to the system:masters Kubernetes RBAC group.

See also: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#default-roles-and-role-bindings


onEventLayer?

Type: ILayerVersion (optional, default: a layer bundled with this module.)

An AWS Lambda Layer which includes the NPM dependency proxy-agent.

This layer is used by the onEvent handler to route AWS SDK requests through a proxy.

By default, the provider will use the layer included in the "aws-lambda-layer-node-proxy-agent" SAR application which is available in all commercial regions.

To deploy the layer locally define it in your app as follows:

const layer = new lambda.LayerVersion(this, 'proxy-agent-layer', {
  code: lambda.Code.fromAsset(`${__dirname}/layer.zip`),
  compatibleRuntimes: [lambda.Runtime.NODEJS_14_X],
});

outputClusterName?

Type: boolean (optional, default: false)

Determines whether a CloudFormation output with the name of the cluster will be synthesized.


outputConfigCommand?

Type: boolean (optional, default: true)

Determines whether a CloudFormation output with the aws eks update-kubeconfig command will be synthesized.

This command will include the cluster name and, if applicable, the ARN of the masters IAM role.


outputMastersRoleArn?

Type: boolean (optional, default: false)

Determines whether a CloudFormation output with the ARN of the "masters" IAM role will be synthesized (if mastersRole is specified).


placeClusterHandlerInVpc?

Type: boolean (optional, default: false)

If set to true, the cluster handler functions will be placed in the private subnets of the cluster vpc, subject to the vpcSubnets selection strategy.


prune?

Type: boolean (optional, default: true)

Indicates whether Kubernetes resources added through addManifest() can be automatically pruned.

When this is enabled (default), prune labels will be allocated and injected to each resource. These labels will then be used when issuing the kubectl apply operation with the --prune switch.


role?

Type: IRole (optional, default: A role is automatically created for you)

Role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf.


secretsEncryptionKey?

Type: IKey (optional, default: By default, Kubernetes stores all secret object data within etcd and all etcd volumes used by Amazon EKS are encrypted at the disk-level using AWS-Managed encryption keys.)

KMS secret for envelope encryption for Kubernetes secrets.


securityGroup?

Type: ISecurityGroup (optional, default: A security group is automatically created)

Security Group to use for Control Plane ENIs.


serviceIpv4Cidr?

Type: string (optional, default: Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks)

The CIDR block to assign Kubernetes service IP addresses from.

See also: https://docs.aws.amazon.com/eks/latest/APIReference/API_KubernetesNetworkConfigRequest.html#AmazonEKS-Type-KubernetesNetworkConfigRequest-serviceIpv4Cidr


tags?

Type: { [string]: string } (optional, default: none)

The tags assigned to the EKS cluster.


vpc?

Type: IVpc (optional, default: a VPC with default configuration will be created and can be accessed through cluster.vpc.)

The VPC in which to create the Cluster.


vpcSubnets?

Type: SubnetSelection[] (optional, default: All public and private subnets)

Where to place EKS Control Plane ENIs.

If you want to create public load balancers, this must include public subnets.

For example, to only select private subnets, supply the following:

vpcSubnets: [{ subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS }]

Properties

NameTypeDescription
adminRoleRoleAn IAM role with administrative permissions to create or update the cluster.
awsAuthAwsAuthLazily creates the AwsAuth resource, which manages AWS authentication mapping.
clusterArnstringThe AWS generated ARN for the Cluster resource.
clusterCertificateAuthorityDatastringThe certificate-authority-data for your cluster.
clusterEncryptionConfigKeyArnstringAmazon Resource Name (ARN) or alias of the customer master key (CMK).
clusterEndpointstringThe endpoint URL for the Cluster.
clusterNamestringThe Name of the created EKS Cluster.
clusterOpenIdConnectIssuerstringIf this cluster is kubectl-enabled, returns the OpenID Connect issuer.
clusterOpenIdConnectIssuerUrlstringIf this cluster is kubectl-enabled, returns the OpenID Connect issuer url.
clusterSecurityGroupISecurityGroupThe cluster security group that was created by Amazon EKS for the cluster.
clusterSecurityGroupIdstringThe id of the cluster security group that was created by Amazon EKS for the cluster.
connectionsConnectionsManages connection rules (Security Group Rules) for the cluster.
envResourceEnvironmentThe environment this resource belongs to.
nodeNodeThe tree node.
openIdConnectProviderIOpenIdConnectProviderAn OpenIdConnectProvider resource associated with this cluster, and which can be used to link this cluster to AWS IAM.
prunebooleanDetermines if Kubernetes resources can be pruned automatically.
roleIRoleIAM role assumed by the EKS Control Plane.
stackStackThe stack in which this resource is defined.
vpcIVpcThe VPC in which this Cluster was created.
albController?AlbControllerThe ALB Controller construct defined for this cluster.
awscliLayer?ILayerVersionAn AWS Lambda layer that contains the aws CLI.
clusterHandlerSecurityGroup?ISecurityGroupA security group to associate with the Cluster Handler's Lambdas.
defaultCapacity?AutoScalingGroupThe auto scaling group that hosts the default capacity for this cluster.
defaultNodegroup?NodegroupThe node group that hosts the default capacity for this cluster.
ipFamily?IpFamilySpecify which IP family is used to assign Kubernetes pod and service IP addresses.
kubectlEnvironment?{ [string]: string }Custom environment variables when running kubectl against this cluster.
kubectlLambdaRole?IRoleAn IAM role that can perform kubectl operations against this cluster.
kubectlLayer?ILayerVersionAn AWS Lambda layer that includes kubectl and helm.
kubectlMemory?SizeThe amount of memory allocated to the kubectl provider's lambda function.
kubectlPrivateSubnets?ISubnet[]Subnets to host the kubectl compute resources.
kubectlRole?IRoleAn IAM role that can perform kubectl operations against this cluster.
kubectlSecurityGroup?ISecurityGroupA security group to use for kubectl execution.
onEventLayer?ILayerVersionThe AWS Lambda layer that contains the NPM dependency proxy-agent.

adminRole

Type: Role

An IAM role with administrative permissions to create or update the cluster.

This role also has systems:master permissions.


awsAuth

Type: AwsAuth

Lazily creates the AwsAuth resource, which manages AWS authentication mapping.


clusterArn

Type: string

The AWS generated ARN for the Cluster resource.

For example, arn:aws:eks:us-west-2:666666666666:cluster/prod


clusterCertificateAuthorityData

Type: string

The certificate-authority-data for your cluster.


clusterEncryptionConfigKeyArn

Type: string

Amazon Resource Name (ARN) or alias of the customer master key (CMK).


clusterEndpoint

Type: string

The endpoint URL for the Cluster.

This is the URL inside the kubeconfig file to use with kubectl

For example, https://5E1D0CEXAMPLEA591B746AFC5AB30262.yl4.us-west-2.eks.amazonaws.com


clusterName

Type: string

The Name of the created EKS Cluster.


clusterOpenIdConnectIssuer

Type: string

If this cluster is kubectl-enabled, returns the OpenID Connect issuer.

This is because the values is only be retrieved by the API and not exposed by CloudFormation. If this cluster is not kubectl-enabled (i.e. uses the stock CfnCluster), this is undefined.


clusterOpenIdConnectIssuerUrl

Type: string

If this cluster is kubectl-enabled, returns the OpenID Connect issuer url.

This is because the values is only be retrieved by the API and not exposed by CloudFormation. If this cluster is not kubectl-enabled (i.e. uses the stock CfnCluster), this is undefined.


clusterSecurityGroup

Type: ISecurityGroup

The cluster security group that was created by Amazon EKS for the cluster.


clusterSecurityGroupId

Type: string

The id of the cluster security group that was created by Amazon EKS for the cluster.


connections

Type: Connections

Manages connection rules (Security Group Rules) for the cluster.


env

Type: ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed by the CDK (generally, those created by creating new class instances like Role, Bucket, etc.), this is always the same as the environment of the stack they belong to; however, for imported resources (those obtained from static methods like fromRoleArn, fromBucketName, etc.), that might be different than the stack they were imported into.


node

Type: Node

The tree node.


openIdConnectProvider

Type: IOpenIdConnectProvider

An OpenIdConnectProvider resource associated with this cluster, and which can be used to link this cluster to AWS IAM.

A provider will only be defined if this property is accessed (lazy initialization).


prune

Type: boolean

Determines if Kubernetes resources can be pruned automatically.


role

Type: IRole

IAM role assumed by the EKS Control Plane.


stack

Type: Stack

The stack in which this resource is defined.


vpc

Type: IVpc

The VPC in which this Cluster was created.


albController?

Type: AlbController (optional)

The ALB Controller construct defined for this cluster.

Will be undefined if albController wasn't configured.


awscliLayer?

Type: ILayerVersion (optional)

An AWS Lambda layer that contains the aws CLI.

If not defined, a default layer will be used containing the AWS CLI 1.x.


clusterHandlerSecurityGroup?

Type: ISecurityGroup (optional, default: No security group.)

A security group to associate with the Cluster Handler's Lambdas.

The Cluster Handler's Lambdas are responsible for calling AWS's EKS API.

Requires placeClusterHandlerInVpc to be set to true.


defaultCapacity?

Type: AutoScalingGroup (optional)

The auto scaling group that hosts the default capacity for this cluster.

This will be undefined if the defaultCapacityType is not EC2 or defaultCapacityType is EC2 but default capacity is set to 0.


defaultNodegroup?

Type: Nodegroup (optional)

The node group that hosts the default capacity for this cluster.

This will be undefined if the defaultCapacityType is EC2 or defaultCapacityType is NODEGROUP but default capacity is set to 0.


ipFamily?

Type: IpFamily (optional, default: IpFamily.IP_V4)

Specify which IP family is used to assign Kubernetes pod and service IP addresses.

See also: https://docs.aws.amazon.com/eks/latest/APIReference/API_KubernetesNetworkConfigRequest.html#AmazonEKS-Type-KubernetesNetworkConfigRequest-ipFamily


kubectlEnvironment?

Type: { [string]: string } (optional)

Custom environment variables when running kubectl against this cluster.


kubectlLambdaRole?

Type: IRole (optional, default: if not specified, the default role created by a lambda function will be used.)

An IAM role that can perform kubectl operations against this cluster.

The role should be mapped to the system:masters Kubernetes RBAC role.

This role is directly passed to the lambda handler that sends Kube Ctl commands to the cluster.


kubectlLayer?

Type: ILayerVersion (optional)

An AWS Lambda layer that includes kubectl and helm.

If not defined, a default layer will be used containing Kubectl 1.20 and Helm 3.8


kubectlMemory?

Type: Size (optional)

The amount of memory allocated to the kubectl provider's lambda function.


kubectlPrivateSubnets?

Type: ISubnet[] (optional, default: If not specified, the k8s endpoint is expected to be accessible publicly.)

Subnets to host the kubectl compute resources.


kubectlRole?

Type: IRole (optional)

An IAM role that can perform kubectl operations against this cluster.

The role should be mapped to the system:masters Kubernetes RBAC role.


kubectlSecurityGroup?

Type: ISecurityGroup (optional, default: If not specified, the k8s endpoint is expected to be accessible publicly.)

A security group to use for kubectl execution.


onEventLayer?

Type: ILayerVersion (optional)

The AWS Lambda layer that contains the NPM dependency proxy-agent.

If undefined, a SAR app that contains this layer will be used.

Methods

NameDescription
addAutoScalingGroupCapacity(id, options)Add nodes to this EKS cluster.
addCdk8sChart(id, chart, options?)Defines a CDK8s chart in this cluster.
addFargateProfile(id, options)Adds a Fargate profile to this cluster.
addHelmChart(id, options)Defines a Helm chart in this cluster.
addManifest(id, ...manifest)Defines a Kubernetes resource in this cluster.
addNodegroupCapacity(id, options?)Add managed nodegroup to this Amazon EKS cluster.
addServiceAccount(id, options?)Creates a new service account with corresponding IAM Role (IRSA).
applyRemovalPolicy(policy)Apply the given removal policy to this resource.
connectAutoScalingGroupCapacity(autoScalingGroup, options)Connect capacity in the form of an existing AutoScalingGroup to the EKS cluster.
getIngressLoadBalancerAddress(ingressName, options?)Fetch the load balancer address of an ingress backed by a load balancer.
getServiceLoadBalancerAddress(serviceName, options?)Fetch the load balancer address of a service of type 'LoadBalancer'.
toString()Returns a string representation of this construct.
static fromClusterAttributes(scope, id, attrs)Import an existing cluster.

addAutoScalingGroupCapacity(id, options)

public addAutoScalingGroupCapacity(id: string, options: AutoScalingGroupCapacityOptions): AutoScalingGroup

Parameters

  • id string
  • options AutoScalingGroupCapacityOptions

Returns

  • AutoScalingGroup

Add nodes to this EKS cluster.

The nodes will automatically be configured with the right VPC and AMI for the instance type and Kubernetes version.

Note that if you specify updateType: RollingUpdate or updateType: ReplacingUpdate, your nodes might be replaced at deploy time without notice in case the recommended AMI for your machine image type has been updated by AWS. The default behavior for updateType is None, which means only new instances will be launched using the new AMI.

Spot instances will be labeled lifecycle=Ec2Spot and tainted with PreferNoSchedule. In addition, the spot interrupt handler daemon will be installed on all spot instances to handle EC2 Spot Instance Termination Notices.


addCdk8sChart(id, chart, options?)

public addCdk8sChart(id: string, chart: Construct, options?: KubernetesManifestOptions): KubernetesManifest

Parameters

  • id string — logical id of this chart.
  • chart Construct — the cdk8s chart.
  • options KubernetesManifestOptions

Returns

  • KubernetesManifest

Defines a CDK8s chart in this cluster.


addFargateProfile(id, options)

public addFargateProfile(id: string, options: FargateProfileOptions): FargateProfile

Parameters

  • id string — the id of this profile.
  • options FargateProfileOptions — profile options.

Returns

  • FargateProfile

Adds a Fargate profile to this cluster.

See also: https://docs.aws.amazon.com/eks/latest/userguide/fargate-profile.html


addHelmChart(id, options)

public addHelmChart(id: string, options: HelmChartOptions): HelmChart

Parameters

  • id string — logical id of this chart.
  • options HelmChartOptions — options of this chart.

Returns

  • HelmChart

Defines a Helm chart in this cluster.


addManifest(id, ...manifest)

public addManifest(id: string, ...manifest: { [string]: any }[]): KubernetesManifest

Parameters

  • id string — logical id of this manifest.
  • manifest { [string]: any } — a list of Kubernetes resource specifications.

Returns

  • KubernetesManifest

Defines a Kubernetes resource in this cluster.

The manifest will be applied/deleted using kubectl as needed.


addNodegroupCapacity(id, options?)

public addNodegroupCapacity(id: string, options?: NodegroupOptions): Nodegroup

Parameters

  • id string — The ID of the nodegroup.
  • options NodegroupOptions — options for creating a new nodegroup.

Returns

  • Nodegroup

Add managed nodegroup to this Amazon EKS cluster.

This method will create a new managed nodegroup and add into the capacity.

See also: https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html


addServiceAccount(id, options?)

public addServiceAccount(id: string, options?: ServiceAccountOptions): ServiceAccount

Parameters

  • id string
  • options ServiceAccountOptions

Returns

  • ServiceAccount

Creates a new service account with corresponding IAM Role (IRSA).


applyRemovalPolicy(policy)

public applyRemovalPolicy(policy: RemovalPolicy): void

Parameters

  • policy RemovalPolicy

Apply the given removal policy to this resource.

The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you've removed it from the CDK application or because you've made a change that requires the resource to be replaced.

The resource can be deleted (RemovalPolicy.DESTROY), or left in your AWS account for data recovery and cleanup later (RemovalPolicy.RETAIN).


connectAutoScalingGroupCapacity(autoScalingGroup, options)

public connectAutoScalingGroupCapacity(autoScalingGroup: AutoScalingGroup, options: AutoScalingGroupOptions): void

Parameters

  • autoScalingGroup AutoScalingGroup — [disable-awslint:ref-via-interface].
  • options AutoScalingGroupOptions — options for adding auto scaling groups, like customizing the bootstrap script.

Connect capacity in the form of an existing AutoScalingGroup to the EKS cluster.

The AutoScalingGroup must be running an EKS-optimized AMI containing the /etc/eks/bootstrap.sh script. This method will configure Security Groups, add the right policies to the instance role, apply the right tags, and add the required user data to the instance's launch configuration.

Spot instances will be labeled lifecycle=Ec2Spot and tainted with PreferNoSchedule. If kubectl is enabled, the spot interrupt handler daemon will be installed on all spot instances to handle EC2 Spot Instance Termination Notices.

Prefer to use addAutoScalingGroupCapacity if possible.

See also: https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html


getIngressLoadBalancerAddress(ingressName, options?)

public getIngressLoadBalancerAddress(ingressName: string, options?: IngressLoadBalancerAddressOptions): string

Parameters

  • ingressName string — The name of the ingress.
  • options IngressLoadBalancerAddressOptions — Additional operation options.

Returns

  • string

Fetch the load balancer address of an ingress backed by a load balancer.


getServiceLoadBalancerAddress(serviceName, options?)

public getServiceLoadBalancerAddress(serviceName: string, options?: ServiceLoadBalancerAddressOptions): string

Parameters

  • serviceName string — The name of the service.
  • options ServiceLoadBalancerAddressOptions — Additional operation options.

Returns

  • string

Fetch the load balancer address of a service of type 'LoadBalancer'.


toString()

public toString(): string

Returns

  • string

Returns a string representation of this construct.


static fromClusterAttributes(scope, id, attrs)

public static fromClusterAttributes(scope: Construct, id: string, attrs: ClusterAttributes): ICluster

Parameters

  • scope Construct — the construct scope, in most cases 'this'.
  • id string — the id or name to import as.
  • attrs ClusterAttributes — the cluster properties to use for importing information.

Returns

  • ICluster

Import an existing cluster.