1. Packages
  2. AWS Classic
  3. API Docs
  4. eks
  5. Cluster

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.10.0 published on Tuesday, Nov 21, 2023 by Pulumi

aws.eks.Cluster

Explore with Pulumi AI

aws logo

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.10.0 published on Tuesday, Nov 21, 2023 by Pulumi

    Manages an EKS Cluster.

    Example Usage

    Basic Usage

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Aws.Eks.Cluster("example", new()
        {
            RoleArn = aws_iam_role.Example.Arn,
            VpcConfig = new Aws.Eks.Inputs.ClusterVpcConfigArgs
            {
                SubnetIds = new[]
                {
                    aws_subnet.Example1.Id,
                    aws_subnet.Example2.Id,
                },
            },
        }, new CustomResourceOptions
        {
            DependsOn = new[]
            {
                aws_iam_role_policy_attachment.Example_AmazonEKSClusterPolicy,
                aws_iam_role_policy_attachment.Example_AmazonEKSVPCResourceController,
            },
        });
    
        return new Dictionary<string, object?>
        {
            ["endpoint"] = example.Endpoint,
            ["kubeconfig-certificate-authority-data"] = example.CertificateAuthority.Apply(certificateAuthority => certificateAuthority.Data),
        };
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/eks"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := eks.NewCluster(ctx, "example", &eks.ClusterArgs{
    			RoleArn: pulumi.Any(aws_iam_role.Example.Arn),
    			VpcConfig: &eks.ClusterVpcConfigArgs{
    				SubnetIds: pulumi.StringArray{
    					aws_subnet.Example1.Id,
    					aws_subnet.Example2.Id,
    				},
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			aws_iam_role_policy_attachment.ExampleAmazonEKSClusterPolicy,
    			aws_iam_role_policy_attachment.ExampleAmazonEKSVPCResourceController,
    		}))
    		if err != nil {
    			return err
    		}
    		ctx.Export("endpoint", example.Endpoint)
    		ctx.Export("kubeconfig-certificate-authority-data", example.CertificateAuthority.ApplyT(func(certificateAuthority eks.ClusterCertificateAuthority) (*string, error) {
    			return &certificateAuthority.Data, nil
    		}).(pulumi.StringPtrOutput))
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.eks.Cluster;
    import com.pulumi.aws.eks.ClusterArgs;
    import com.pulumi.aws.eks.inputs.ClusterVpcConfigArgs;
    import com.pulumi.resources.CustomResourceOptions;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var example = new Cluster("example", ClusterArgs.builder()        
                .roleArn(aws_iam_role.example().arn())
                .vpcConfig(ClusterVpcConfigArgs.builder()
                    .subnetIds(                
                        aws_subnet.example1().id(),
                        aws_subnet.example2().id())
                    .build())
                .build(), CustomResourceOptions.builder()
                    .dependsOn(                
                        aws_iam_role_policy_attachment.example-AmazonEKSClusterPolicy(),
                        aws_iam_role_policy_attachment.example-AmazonEKSVPCResourceController())
                    .build());
    
            ctx.export("endpoint", example.endpoint());
            ctx.export("kubeconfig-certificate-authority-data", example.certificateAuthority().applyValue(certificateAuthority -> certificateAuthority.data()));
        }
    }
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.eks.Cluster("example",
        role_arn=aws_iam_role["example"]["arn"],
        vpc_config=aws.eks.ClusterVpcConfigArgs(
            subnet_ids=[
                aws_subnet["example1"]["id"],
                aws_subnet["example2"]["id"],
            ],
        ),
        opts=pulumi.ResourceOptions(depends_on=[
                aws_iam_role_policy_attachment["example-AmazonEKSClusterPolicy"],
                aws_iam_role_policy_attachment["example-AmazonEKSVPCResourceController"],
            ]))
    pulumi.export("endpoint", example.endpoint)
    pulumi.export("kubeconfig-certificate-authority-data", example.certificate_authority.data)
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    export = async () => {
        const example = new aws.eks.Cluster("example", {
            roleArn: aws_iam_role.example.arn,
            vpcConfig: {
                subnetIds: [
                    aws_subnet.example1.id,
                    aws_subnet.example2.id,
                ],
            },
        }, {
            dependsOn: [
                aws_iam_role_policy_attachment["example-AmazonEKSClusterPolicy"],
                aws_iam_role_policy_attachment["example-AmazonEKSVPCResourceController"],
            ],
        });
        return {
            endpoint: example.endpoint,
            "kubeconfig-certificate-authority-data": example.certificateAuthority.apply(certificateAuthority => certificateAuthority.data),
        };
    }
    
    resources:
      example:
        type: aws:eks:Cluster
        properties:
          roleArn: ${aws_iam_role.example.arn}
          vpcConfig:
            subnetIds:
              - ${aws_subnet.example1.id}
              - ${aws_subnet.example2.id}
        options:
          dependson:
            - ${aws_iam_role_policy_attachment"example-AmazonEKSClusterPolicy"[%!s(MISSING)]}
            - ${aws_iam_role_policy_attachment"example-AmazonEKSVPCResourceController"[%!s(MISSING)]}
    outputs:
      endpoint: ${example.endpoint}
      kubeconfig-certificate-authority-data: ${example.certificateAuthority.data}
    

    Example IAM Role for EKS Cluster

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var assumeRole = Aws.Iam.GetPolicyDocument.Invoke(new()
        {
            Statements = new[]
            {
                new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
                {
                    Effect = "Allow",
                    Principals = new[]
                    {
                        new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs
                        {
                            Type = "Service",
                            Identifiers = new[]
                            {
                                "eks.amazonaws.com",
                            },
                        },
                    },
                    Actions = new[]
                    {
                        "sts:AssumeRole",
                    },
                },
            },
        });
    
        var example = new Aws.Iam.Role("example", new()
        {
            AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
        });
    
        var example_AmazonEKSClusterPolicy = new Aws.Iam.RolePolicyAttachment("example-AmazonEKSClusterPolicy", new()
        {
            PolicyArn = "arn:aws:iam::aws:policy/AmazonEKSClusterPolicy",
            Role = example.Name,
        });
    
        // Optionally, enable Security Groups for Pods
        // Reference: https://docs.aws.amazon.com/eks/latest/userguide/security-groups-for-pods.html
        var example_AmazonEKSVPCResourceController = new Aws.Iam.RolePolicyAttachment("example-AmazonEKSVPCResourceController", new()
        {
            PolicyArn = "arn:aws:iam::aws:policy/AmazonEKSVPCResourceController",
            Role = example.Name,
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		assumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
    			Statements: []iam.GetPolicyDocumentStatement{
    				{
    					Effect: pulumi.StringRef("Allow"),
    					Principals: []iam.GetPolicyDocumentStatementPrincipal{
    						{
    							Type: "Service",
    							Identifiers: []string{
    								"eks.amazonaws.com",
    							},
    						},
    					},
    					Actions: []string{
    						"sts:AssumeRole",
    					},
    				},
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		example, err := iam.NewRole(ctx, "example", &iam.RoleArgs{
    			AssumeRolePolicy: *pulumi.String(assumeRole.Json),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = iam.NewRolePolicyAttachment(ctx, "example-AmazonEKSClusterPolicy", &iam.RolePolicyAttachmentArgs{
    			PolicyArn: pulumi.String("arn:aws:iam::aws:policy/AmazonEKSClusterPolicy"),
    			Role:      example.Name,
    		})
    		if err != nil {
    			return err
    		}
    		_, err = iam.NewRolePolicyAttachment(ctx, "example-AmazonEKSVPCResourceController", &iam.RolePolicyAttachmentArgs{
    			PolicyArn: pulumi.String("arn:aws:iam::aws:policy/AmazonEKSVPCResourceController"),
    			Role:      example.Name,
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.iam.IamFunctions;
    import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
    import com.pulumi.aws.iam.Role;
    import com.pulumi.aws.iam.RoleArgs;
    import com.pulumi.aws.iam.RolePolicyAttachment;
    import com.pulumi.aws.iam.RolePolicyAttachmentArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                .statements(GetPolicyDocumentStatementArgs.builder()
                    .effect("Allow")
                    .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                        .type("Service")
                        .identifiers("eks.amazonaws.com")
                        .build())
                    .actions("sts:AssumeRole")
                    .build())
                .build());
    
            var example = new Role("example", RoleArgs.builder()        
                .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
                .build());
    
            var example_AmazonEKSClusterPolicy = new RolePolicyAttachment("example-AmazonEKSClusterPolicy", RolePolicyAttachmentArgs.builder()        
                .policyArn("arn:aws:iam::aws:policy/AmazonEKSClusterPolicy")
                .role(example.name())
                .build());
    
            var example_AmazonEKSVPCResourceController = new RolePolicyAttachment("example-AmazonEKSVPCResourceController", RolePolicyAttachmentArgs.builder()        
                .policyArn("arn:aws:iam::aws:policy/AmazonEKSVPCResourceController")
                .role(example.name())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_aws as aws
    
    assume_role = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(
        effect="Allow",
        principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(
            type="Service",
            identifiers=["eks.amazonaws.com"],
        )],
        actions=["sts:AssumeRole"],
    )])
    example = aws.iam.Role("example", assume_role_policy=assume_role.json)
    example__amazon_eks_cluster_policy = aws.iam.RolePolicyAttachment("example-AmazonEKSClusterPolicy",
        policy_arn="arn:aws:iam::aws:policy/AmazonEKSClusterPolicy",
        role=example.name)
    # Optionally, enable Security Groups for Pods
    # Reference: https://docs.aws.amazon.com/eks/latest/userguide/security-groups-for-pods.html
    example__amazon_eksvpc_resource_controller = aws.iam.RolePolicyAttachment("example-AmazonEKSVPCResourceController",
        policy_arn="arn:aws:iam::aws:policy/AmazonEKSVPCResourceController",
        role=example.name)
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const assumeRole = aws.iam.getPolicyDocument({
        statements: [{
            effect: "Allow",
            principals: [{
                type: "Service",
                identifiers: ["eks.amazonaws.com"],
            }],
            actions: ["sts:AssumeRole"],
        }],
    });
    const example = new aws.iam.Role("example", {assumeRolePolicy: assumeRole.then(assumeRole => assumeRole.json)});
    const example_AmazonEKSClusterPolicy = new aws.iam.RolePolicyAttachment("example-AmazonEKSClusterPolicy", {
        policyArn: "arn:aws:iam::aws:policy/AmazonEKSClusterPolicy",
        role: example.name,
    });
    // Optionally, enable Security Groups for Pods
    // Reference: https://docs.aws.amazon.com/eks/latest/userguide/security-groups-for-pods.html
    const example_AmazonEKSVPCResourceController = new aws.iam.RolePolicyAttachment("example-AmazonEKSVPCResourceController", {
        policyArn: "arn:aws:iam::aws:policy/AmazonEKSVPCResourceController",
        role: example.name,
    });
    
    resources:
      example:
        type: aws:iam:Role
        properties:
          assumeRolePolicy: ${assumeRole.json}
      example-AmazonEKSClusterPolicy:
        type: aws:iam:RolePolicyAttachment
        properties:
          policyArn: arn:aws:iam::aws:policy/AmazonEKSClusterPolicy
          role: ${example.name}
      # Optionally, enable Security Groups for Pods
      # Reference: https://docs.aws.amazon.com/eks/latest/userguide/security-groups-for-pods.html
      example-AmazonEKSVPCResourceController:
        type: aws:iam:RolePolicyAttachment
        properties:
          policyArn: arn:aws:iam::aws:policy/AmazonEKSVPCResourceController
          role: ${example.name}
    variables:
      assumeRole:
        fn::invoke:
          Function: aws:iam:getPolicyDocument
          Arguments:
            statements:
              - effect: Allow
                principals:
                  - type: Service
                    identifiers:
                      - eks.amazonaws.com
                actions:
                  - sts:AssumeRole
    

    Enabling Control Plane Logging

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var config = new Config();
        var clusterName = config.Get("clusterName") ?? "example";
        var exampleLogGroup = new Aws.CloudWatch.LogGroup("exampleLogGroup", new()
        {
            RetentionInDays = 7,
        });
    
        // ... potentially other configuration ...
        var exampleCluster = new Aws.Eks.Cluster("exampleCluster", new()
        {
            EnabledClusterLogTypes = new[]
            {
                "api",
                "audit",
            },
        }, new CustomResourceOptions
        {
            DependsOn = new[]
            {
                exampleLogGroup,
            },
        });
    
        // ... other configuration ...
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/eks"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		cfg := config.New(ctx, "")
    		clusterName := "example"
    		if param := cfg.Get("clusterName"); param != "" {
    			clusterName = param
    		}
    		exampleLogGroup, err := cloudwatch.NewLogGroup(ctx, "exampleLogGroup", &cloudwatch.LogGroupArgs{
    			RetentionInDays: pulumi.Int(7),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = eks.NewCluster(ctx, "exampleCluster", &eks.ClusterArgs{
    			EnabledClusterLogTypes: pulumi.StringArray{
    				pulumi.String("api"),
    				pulumi.String("audit"),
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			exampleLogGroup,
    		}))
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.cloudwatch.LogGroup;
    import com.pulumi.aws.cloudwatch.LogGroupArgs;
    import com.pulumi.aws.eks.Cluster;
    import com.pulumi.aws.eks.ClusterArgs;
    import com.pulumi.resources.CustomResourceOptions;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            final var config = ctx.config();
            final var clusterName = config.get("clusterName").orElse("example");
            var exampleLogGroup = new LogGroup("exampleLogGroup", LogGroupArgs.builder()        
                .retentionInDays(7)
                .build());
    
            var exampleCluster = new Cluster("exampleCluster", ClusterArgs.builder()        
                .enabledClusterLogTypes(            
                    "api",
                    "audit")
                .build(), CustomResourceOptions.builder()
                    .dependsOn(exampleLogGroup)
                    .build());
    
        }
    }
    
    import pulumi
    import pulumi_aws as aws
    
    config = pulumi.Config()
    cluster_name = config.get("clusterName")
    if cluster_name is None:
        cluster_name = "example"
    example_log_group = aws.cloudwatch.LogGroup("exampleLogGroup", retention_in_days=7)
    # ... potentially other configuration ...
    example_cluster = aws.eks.Cluster("exampleCluster", enabled_cluster_log_types=[
        "api",
        "audit",
    ],
    opts=pulumi.ResourceOptions(depends_on=[example_log_group]))
    # ... other configuration ...
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const config = new pulumi.Config();
    const clusterName = config.get("clusterName") || "example";
    const exampleLogGroup = new aws.cloudwatch.LogGroup("exampleLogGroup", {retentionInDays: 7});
    // ... potentially other configuration ...
    const exampleCluster = new aws.eks.Cluster("exampleCluster", {enabledClusterLogTypes: [
        "api",
        "audit",
    ]}, {
        dependsOn: [exampleLogGroup],
    });
    // ... other configuration ...
    
    configuration:
      clusterName:
        type: string
        default: example
    resources:
      exampleCluster:
        type: aws:eks:Cluster
        properties:
          enabledClusterLogTypes:
            - api
            - audit
        options:
          dependson:
            - ${exampleLogGroup}
      exampleLogGroup:
        type: aws:cloudwatch:LogGroup
        properties:
          retentionInDays: 7
    

    EKS Cluster on AWS Outpost

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var exampleRole = new Aws.Iam.Role("exampleRole", new()
        {
            AssumeRolePolicy = data.Aws_iam_policy_document.Example_assume_role_policy.Json,
        });
    
        var exampleCluster = new Aws.Eks.Cluster("exampleCluster", new()
        {
            RoleArn = exampleRole.Arn,
            VpcConfig = new Aws.Eks.Inputs.ClusterVpcConfigArgs
            {
                EndpointPrivateAccess = true,
                EndpointPublicAccess = false,
            },
            OutpostConfig = new Aws.Eks.Inputs.ClusterOutpostConfigArgs
            {
                ControlPlaneInstanceType = "m5d.large",
                OutpostArns = new[]
                {
                    data.Aws_outposts_outpost.Example.Arn,
                },
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/eks"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		exampleRole, err := iam.NewRole(ctx, "exampleRole", &iam.RoleArgs{
    			AssumeRolePolicy: pulumi.Any(data.Aws_iam_policy_document.Example_assume_role_policy.Json),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = eks.NewCluster(ctx, "exampleCluster", &eks.ClusterArgs{
    			RoleArn: exampleRole.Arn,
    			VpcConfig: &eks.ClusterVpcConfigArgs{
    				EndpointPrivateAccess: pulumi.Bool(true),
    				EndpointPublicAccess:  pulumi.Bool(false),
    			},
    			OutpostConfig: &eks.ClusterOutpostConfigArgs{
    				ControlPlaneInstanceType: pulumi.String("m5d.large"),
    				OutpostArns: pulumi.StringArray{
    					data.Aws_outposts_outpost.Example.Arn,
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.iam.Role;
    import com.pulumi.aws.iam.RoleArgs;
    import com.pulumi.aws.eks.Cluster;
    import com.pulumi.aws.eks.ClusterArgs;
    import com.pulumi.aws.eks.inputs.ClusterVpcConfigArgs;
    import com.pulumi.aws.eks.inputs.ClusterOutpostConfigArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var exampleRole = new Role("exampleRole", RoleArgs.builder()        
                .assumeRolePolicy(data.aws_iam_policy_document().example_assume_role_policy().json())
                .build());
    
            var exampleCluster = new Cluster("exampleCluster", ClusterArgs.builder()        
                .roleArn(exampleRole.arn())
                .vpcConfig(ClusterVpcConfigArgs.builder()
                    .endpointPrivateAccess(true)
                    .endpointPublicAccess(false)
                    .build())
                .outpostConfig(ClusterOutpostConfigArgs.builder()
                    .controlPlaneInstanceType("m5d.large")
                    .outpostArns(data.aws_outposts_outpost().example().arn())
                    .build())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_aws as aws
    
    example_role = aws.iam.Role("exampleRole", assume_role_policy=data["aws_iam_policy_document"]["example_assume_role_policy"]["json"])
    example_cluster = aws.eks.Cluster("exampleCluster",
        role_arn=example_role.arn,
        vpc_config=aws.eks.ClusterVpcConfigArgs(
            endpoint_private_access=True,
            endpoint_public_access=False,
        ),
        outpost_config=aws.eks.ClusterOutpostConfigArgs(
            control_plane_instance_type="m5d.large",
            outpost_arns=[data["aws_outposts_outpost"]["example"]["arn"]],
        ))
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const exampleRole = new aws.iam.Role("exampleRole", {assumeRolePolicy: data.aws_iam_policy_document.example_assume_role_policy.json});
    const exampleCluster = new aws.eks.Cluster("exampleCluster", {
        roleArn: exampleRole.arn,
        vpcConfig: {
            endpointPrivateAccess: true,
            endpointPublicAccess: false,
        },
        outpostConfig: {
            controlPlaneInstanceType: "m5d.large",
            outpostArns: [data.aws_outposts_outpost.example.arn],
        },
    });
    
    resources:
      exampleRole:
        type: aws:iam:Role
        properties:
          assumeRolePolicy: ${data.aws_iam_policy_document.example_assume_role_policy.json}
      exampleCluster:
        type: aws:eks:Cluster
        properties:
          roleArn: ${exampleRole.arn}
          vpcConfig:
            endpointPrivateAccess: true
            endpointPublicAccess: false
          outpostConfig:
            controlPlaneInstanceType: m5d.large
            outpostArns:
              - ${data.aws_outposts_outpost.example.arn}
    

    Create Cluster Resource

    new Cluster(name: string, args: ClusterArgs, opts?: CustomResourceOptions);
    @overload
    def Cluster(resource_name: str,
                opts: Optional[ResourceOptions] = None,
                default_addons_to_removes: Optional[Sequence[str]] = None,
                enabled_cluster_log_types: Optional[Sequence[str]] = None,
                encryption_config: Optional[ClusterEncryptionConfigArgs] = None,
                kubernetes_network_config: Optional[ClusterKubernetesNetworkConfigArgs] = None,
                name: Optional[str] = None,
                outpost_config: Optional[ClusterOutpostConfigArgs] = None,
                role_arn: Optional[str] = None,
                tags: Optional[Mapping[str, str]] = None,
                version: Optional[str] = None,
                vpc_config: Optional[ClusterVpcConfigArgs] = None)
    @overload
    def Cluster(resource_name: str,
                args: ClusterArgs,
                opts: Optional[ResourceOptions] = None)
    func NewCluster(ctx *Context, name string, args ClusterArgs, opts ...ResourceOption) (*Cluster, error)
    public Cluster(string name, ClusterArgs args, CustomResourceOptions? opts = null)
    public Cluster(String name, ClusterArgs args)
    public Cluster(String name, ClusterArgs args, CustomResourceOptions options)
    
    type: aws:eks:Cluster
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    name string
    The unique name of the resource.
    args ClusterArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args ClusterArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args ClusterArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ClusterArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ClusterArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Cluster Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    The Cluster resource accepts the following input properties:

    RoleArn string

    ARN of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Ensure the resource configuration includes explicit dependencies on the IAM Role permissions by adding depends_on if using the aws.iam.RolePolicy resource or aws.iam.RolePolicyAttachment resource, otherwise EKS cannot delete EKS managed EC2 infrastructure such as Security Groups on EKS Cluster deletion.

    VpcConfig ClusterVpcConfig

    Configuration block for the VPC associated with your cluster. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group Considerations in the Amazon EKS User Guide. Detailed below. Also contains attributes detailed in the Attributes section.

    The following arguments are optional:

    DefaultAddonsToRemoves List<string>
    EnabledClusterLogTypes List<string>

    List of the desired control plane logging to enable. For more information, see Amazon EKS Control Plane Logging.

    EncryptionConfig ClusterEncryptionConfig

    Configuration block with encryption configuration for the cluster. Only available on Kubernetes 1.13 and above clusters created after March 6, 2020. Detailed below.

    KubernetesNetworkConfig ClusterKubernetesNetworkConfig

    Configuration block with kubernetes network configuration for the cluster. Detailed below. If removed, this provider will only perform drift detection if a configuration value is provided.

    Name string

    Name of the cluster. Must be between 1-100 characters in length. Must begin with an alphanumeric character, and must only contain alphanumeric characters, dashes and underscores (^[0-9A-Za-z][A-Za-z0-9\-_]+$).

    OutpostConfig ClusterOutpostConfig

    Configuration block representing the configuration of your local Amazon EKS cluster on an AWS Outpost. This block isn't available for creating Amazon EKS clusters on the AWS cloud.

    Tags Dictionary<string, string>

    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    Version string

    Desired Kubernetes master version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except those automatically triggered by EKS. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by EKS.

    RoleArn string

    ARN of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Ensure the resource configuration includes explicit dependencies on the IAM Role permissions by adding depends_on if using the aws.iam.RolePolicy resource or aws.iam.RolePolicyAttachment resource, otherwise EKS cannot delete EKS managed EC2 infrastructure such as Security Groups on EKS Cluster deletion.

    VpcConfig ClusterVpcConfigArgs

    Configuration block for the VPC associated with your cluster. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group Considerations in the Amazon EKS User Guide. Detailed below. Also contains attributes detailed in the Attributes section.

    The following arguments are optional:

    DefaultAddonsToRemoves []string
    EnabledClusterLogTypes []string

    List of the desired control plane logging to enable. For more information, see Amazon EKS Control Plane Logging.

    EncryptionConfig ClusterEncryptionConfigArgs

    Configuration block with encryption configuration for the cluster. Only available on Kubernetes 1.13 and above clusters created after March 6, 2020. Detailed below.

    KubernetesNetworkConfig ClusterKubernetesNetworkConfigArgs

    Configuration block with kubernetes network configuration for the cluster. Detailed below. If removed, this provider will only perform drift detection if a configuration value is provided.

    Name string

    Name of the cluster. Must be between 1-100 characters in length. Must begin with an alphanumeric character, and must only contain alphanumeric characters, dashes and underscores (^[0-9A-Za-z][A-Za-z0-9\-_]+$).

    OutpostConfig ClusterOutpostConfigArgs

    Configuration block representing the configuration of your local Amazon EKS cluster on an AWS Outpost. This block isn't available for creating Amazon EKS clusters on the AWS cloud.

    Tags map[string]string

    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    Version string

    Desired Kubernetes master version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except those automatically triggered by EKS. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by EKS.

    roleArn String

    ARN of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Ensure the resource configuration includes explicit dependencies on the IAM Role permissions by adding depends_on if using the aws.iam.RolePolicy resource or aws.iam.RolePolicyAttachment resource, otherwise EKS cannot delete EKS managed EC2 infrastructure such as Security Groups on EKS Cluster deletion.

    vpcConfig ClusterVpcConfig

    Configuration block for the VPC associated with your cluster. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group Considerations in the Amazon EKS User Guide. Detailed below. Also contains attributes detailed in the Attributes section.

    The following arguments are optional:

    defaultAddonsToRemoves List<String>
    enabledClusterLogTypes List<String>

    List of the desired control plane logging to enable. For more information, see Amazon EKS Control Plane Logging.

    encryptionConfig ClusterEncryptionConfig

    Configuration block with encryption configuration for the cluster. Only available on Kubernetes 1.13 and above clusters created after March 6, 2020. Detailed below.

    kubernetesNetworkConfig ClusterKubernetesNetworkConfig

    Configuration block with kubernetes network configuration for the cluster. Detailed below. If removed, this provider will only perform drift detection if a configuration value is provided.

    name String

    Name of the cluster. Must be between 1-100 characters in length. Must begin with an alphanumeric character, and must only contain alphanumeric characters, dashes and underscores (^[0-9A-Za-z][A-Za-z0-9\-_]+$).

    outpostConfig ClusterOutpostConfig

    Configuration block representing the configuration of your local Amazon EKS cluster on an AWS Outpost. This block isn't available for creating Amazon EKS clusters on the AWS cloud.

    tags Map<String,String>

    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    version String

    Desired Kubernetes master version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except those automatically triggered by EKS. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by EKS.

    roleArn string

    ARN of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Ensure the resource configuration includes explicit dependencies on the IAM Role permissions by adding depends_on if using the aws.iam.RolePolicy resource or aws.iam.RolePolicyAttachment resource, otherwise EKS cannot delete EKS managed EC2 infrastructure such as Security Groups on EKS Cluster deletion.

    vpcConfig ClusterVpcConfig

    Configuration block for the VPC associated with your cluster. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group Considerations in the Amazon EKS User Guide. Detailed below. Also contains attributes detailed in the Attributes section.

    The following arguments are optional:

    defaultAddonsToRemoves string[]
    enabledClusterLogTypes string[]

    List of the desired control plane logging to enable. For more information, see Amazon EKS Control Plane Logging.

    encryptionConfig ClusterEncryptionConfig

    Configuration block with encryption configuration for the cluster. Only available on Kubernetes 1.13 and above clusters created after March 6, 2020. Detailed below.

    kubernetesNetworkConfig ClusterKubernetesNetworkConfig

    Configuration block with kubernetes network configuration for the cluster. Detailed below. If removed, this provider will only perform drift detection if a configuration value is provided.

    name string

    Name of the cluster. Must be between 1-100 characters in length. Must begin with an alphanumeric character, and must only contain alphanumeric characters, dashes and underscores (^[0-9A-Za-z][A-Za-z0-9\-_]+$).

    outpostConfig ClusterOutpostConfig

    Configuration block representing the configuration of your local Amazon EKS cluster on an AWS Outpost. This block isn't available for creating Amazon EKS clusters on the AWS cloud.

    tags {[key: string]: string}

    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    version string

    Desired Kubernetes master version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except those automatically triggered by EKS. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by EKS.

    role_arn str

    ARN of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Ensure the resource configuration includes explicit dependencies on the IAM Role permissions by adding depends_on if using the aws.iam.RolePolicy resource or aws.iam.RolePolicyAttachment resource, otherwise EKS cannot delete EKS managed EC2 infrastructure such as Security Groups on EKS Cluster deletion.

    vpc_config ClusterVpcConfigArgs

    Configuration block for the VPC associated with your cluster. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group Considerations in the Amazon EKS User Guide. Detailed below. Also contains attributes detailed in the Attributes section.

    The following arguments are optional:

    default_addons_to_removes Sequence[str]
    enabled_cluster_log_types Sequence[str]

    List of the desired control plane logging to enable. For more information, see Amazon EKS Control Plane Logging.

    encryption_config ClusterEncryptionConfigArgs

    Configuration block with encryption configuration for the cluster. Only available on Kubernetes 1.13 and above clusters created after March 6, 2020. Detailed below.

    kubernetes_network_config ClusterKubernetesNetworkConfigArgs

    Configuration block with kubernetes network configuration for the cluster. Detailed below. If removed, this provider will only perform drift detection if a configuration value is provided.

    name str

    Name of the cluster. Must be between 1-100 characters in length. Must begin with an alphanumeric character, and must only contain alphanumeric characters, dashes and underscores (^[0-9A-Za-z][A-Za-z0-9\-_]+$).

    outpost_config ClusterOutpostConfigArgs

    Configuration block representing the configuration of your local Amazon EKS cluster on an AWS Outpost. This block isn't available for creating Amazon EKS clusters on the AWS cloud.

    tags Mapping[str, str]

    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    version str

    Desired Kubernetes master version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except those automatically triggered by EKS. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by EKS.

    roleArn String

    ARN of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Ensure the resource configuration includes explicit dependencies on the IAM Role permissions by adding depends_on if using the aws.iam.RolePolicy resource or aws.iam.RolePolicyAttachment resource, otherwise EKS cannot delete EKS managed EC2 infrastructure such as Security Groups on EKS Cluster deletion.

    vpcConfig Property Map

    Configuration block for the VPC associated with your cluster. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group Considerations in the Amazon EKS User Guide. Detailed below. Also contains attributes detailed in the Attributes section.

    The following arguments are optional:

    defaultAddonsToRemoves List<String>
    enabledClusterLogTypes List<String>

    List of the desired control plane logging to enable. For more information, see Amazon EKS Control Plane Logging.

    encryptionConfig Property Map

    Configuration block with encryption configuration for the cluster. Only available on Kubernetes 1.13 and above clusters created after March 6, 2020. Detailed below.

    kubernetesNetworkConfig Property Map

    Configuration block with kubernetes network configuration for the cluster. Detailed below. If removed, this provider will only perform drift detection if a configuration value is provided.

    name String

    Name of the cluster. Must be between 1-100 characters in length. Must begin with an alphanumeric character, and must only contain alphanumeric characters, dashes and underscores (^[0-9A-Za-z][A-Za-z0-9\-_]+$).

    outpostConfig Property Map

    Configuration block representing the configuration of your local Amazon EKS cluster on an AWS Outpost. This block isn't available for creating Amazon EKS clusters on the AWS cloud.

    tags Map<String>

    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    version String

    Desired Kubernetes master version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except those automatically triggered by EKS. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by EKS.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Cluster resource produces the following output properties:

    Arn string

    ARN of the cluster.

    CertificateAuthorities List<ClusterCertificateAuthority>
    CertificateAuthority ClusterCertificateAuthority

    Attribute block containing certificate-authority-data for your cluster. Detailed below.

    ClusterId string

    The ID of your local Amazon EKS cluster on the AWS Outpost. This attribute isn't available for an AWS EKS cluster on AWS cloud.

    CreatedAt string

    Unix epoch timestamp in seconds for when the cluster was created.

    Endpoint string

    Endpoint for your Kubernetes API server.

    Id string

    The provider-assigned unique ID for this managed resource.

    Identities List<ClusterIdentity>

    Attribute block containing identity provider information for your cluster. Only available on Kubernetes version 1.13 and 1.14 clusters created or upgraded on or after September 3, 2019. Detailed below.

    • kubernetes_network_config.service_ipv6_cidr - The CIDR block that Kubernetes pod and service IP addresses are assigned from if you specified ipv6 for ipFamily when you created the cluster. Kubernetes assigns service addresses from the unique local address range (fc00::/7) because you can't specify a custom IPv6 CIDR block when you create the cluster.
    PlatformVersion string

    Platform version for the cluster.

    Status string

    Status of the EKS cluster. One of CREATING, ACTIVE, DELETING, FAILED.

    TagsAll Dictionary<string, string>

    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    Arn string

    ARN of the cluster.

    CertificateAuthorities []ClusterCertificateAuthority
    CertificateAuthority ClusterCertificateAuthority

    Attribute block containing certificate-authority-data for your cluster. Detailed below.

    ClusterId string

    The ID of your local Amazon EKS cluster on the AWS Outpost. This attribute isn't available for an AWS EKS cluster on AWS cloud.

    CreatedAt string

    Unix epoch timestamp in seconds for when the cluster was created.

    Endpoint string

    Endpoint for your Kubernetes API server.

    Id string

    The provider-assigned unique ID for this managed resource.

    Identities []ClusterIdentity

    Attribute block containing identity provider information for your cluster. Only available on Kubernetes version 1.13 and 1.14 clusters created or upgraded on or after September 3, 2019. Detailed below.

    • kubernetes_network_config.service_ipv6_cidr - The CIDR block that Kubernetes pod and service IP addresses are assigned from if you specified ipv6 for ipFamily when you created the cluster. Kubernetes assigns service addresses from the unique local address range (fc00::/7) because you can't specify a custom IPv6 CIDR block when you create the cluster.
    PlatformVersion string

    Platform version for the cluster.

    Status string

    Status of the EKS cluster. One of CREATING, ACTIVE, DELETING, FAILED.

    TagsAll map[string]string

    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    arn String

    ARN of the cluster.

    certificateAuthorities List<ClusterCertificateAuthority>
    certificateAuthority ClusterCertificateAuthority

    Attribute block containing certificate-authority-data for your cluster. Detailed below.

    clusterId String

    The ID of your local Amazon EKS cluster on the AWS Outpost. This attribute isn't available for an AWS EKS cluster on AWS cloud.

    createdAt String

    Unix epoch timestamp in seconds for when the cluster was created.

    endpoint String

    Endpoint for your Kubernetes API server.

    id String

    The provider-assigned unique ID for this managed resource.

    identities List<ClusterIdentity>

    Attribute block containing identity provider information for your cluster. Only available on Kubernetes version 1.13 and 1.14 clusters created or upgraded on or after September 3, 2019. Detailed below.

    • kubernetes_network_config.service_ipv6_cidr - The CIDR block that Kubernetes pod and service IP addresses are assigned from if you specified ipv6 for ipFamily when you created the cluster. Kubernetes assigns service addresses from the unique local address range (fc00::/7) because you can't specify a custom IPv6 CIDR block when you create the cluster.
    platformVersion String

    Platform version for the cluster.

    status String

    Status of the EKS cluster. One of CREATING, ACTIVE, DELETING, FAILED.

    tagsAll Map<String,String>

    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    arn string

    ARN of the cluster.

    certificateAuthorities ClusterCertificateAuthority[]
    certificateAuthority ClusterCertificateAuthority

    Attribute block containing certificate-authority-data for your cluster. Detailed below.

    clusterId string

    The ID of your local Amazon EKS cluster on the AWS Outpost. This attribute isn't available for an AWS EKS cluster on AWS cloud.

    createdAt string

    Unix epoch timestamp in seconds for when the cluster was created.

    endpoint string

    Endpoint for your Kubernetes API server.

    id string

    The provider-assigned unique ID for this managed resource.

    identities ClusterIdentity[]

    Attribute block containing identity provider information for your cluster. Only available on Kubernetes version 1.13 and 1.14 clusters created or upgraded on or after September 3, 2019. Detailed below.

    • kubernetes_network_config.service_ipv6_cidr - The CIDR block that Kubernetes pod and service IP addresses are assigned from if you specified ipv6 for ipFamily when you created the cluster. Kubernetes assigns service addresses from the unique local address range (fc00::/7) because you can't specify a custom IPv6 CIDR block when you create the cluster.
    platformVersion string

    Platform version for the cluster.

    status string

    Status of the EKS cluster. One of CREATING, ACTIVE, DELETING, FAILED.

    tagsAll {[key: string]: string}

    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    arn str

    ARN of the cluster.

    certificate_authorities Sequence[ClusterCertificateAuthority]
    certificate_authority ClusterCertificateAuthority

    Attribute block containing certificate-authority-data for your cluster. Detailed below.

    cluster_id str

    The ID of your local Amazon EKS cluster on the AWS Outpost. This attribute isn't available for an AWS EKS cluster on AWS cloud.

    created_at str

    Unix epoch timestamp in seconds for when the cluster was created.

    endpoint str

    Endpoint for your Kubernetes API server.

    id str

    The provider-assigned unique ID for this managed resource.

    identities Sequence[ClusterIdentity]

    Attribute block containing identity provider information for your cluster. Only available on Kubernetes version 1.13 and 1.14 clusters created or upgraded on or after September 3, 2019. Detailed below.

    • kubernetes_network_config.service_ipv6_cidr - The CIDR block that Kubernetes pod and service IP addresses are assigned from if you specified ipv6 for ipFamily when you created the cluster. Kubernetes assigns service addresses from the unique local address range (fc00::/7) because you can't specify a custom IPv6 CIDR block when you create the cluster.
    platform_version str

    Platform version for the cluster.

    status str

    Status of the EKS cluster. One of CREATING, ACTIVE, DELETING, FAILED.

    tags_all Mapping[str, str]

    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    arn String

    ARN of the cluster.

    certificateAuthorities List<Property Map>
    certificateAuthority Property Map

    Attribute block containing certificate-authority-data for your cluster. Detailed below.

    clusterId String

    The ID of your local Amazon EKS cluster on the AWS Outpost. This attribute isn't available for an AWS EKS cluster on AWS cloud.

    createdAt String

    Unix epoch timestamp in seconds for when the cluster was created.

    endpoint String

    Endpoint for your Kubernetes API server.

    id String

    The provider-assigned unique ID for this managed resource.

    identities List<Property Map>

    Attribute block containing identity provider information for your cluster. Only available on Kubernetes version 1.13 and 1.14 clusters created or upgraded on or after September 3, 2019. Detailed below.

    • kubernetes_network_config.service_ipv6_cidr - The CIDR block that Kubernetes pod and service IP addresses are assigned from if you specified ipv6 for ipFamily when you created the cluster. Kubernetes assigns service addresses from the unique local address range (fc00::/7) because you can't specify a custom IPv6 CIDR block when you create the cluster.
    platformVersion String

    Platform version for the cluster.

    status String

    Status of the EKS cluster. One of CREATING, ACTIVE, DELETING, FAILED.

    tagsAll Map<String>

    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    Look up Existing Cluster Resource

    Get an existing Cluster resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: ClusterState, opts?: CustomResourceOptions): Cluster
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            arn: Optional[str] = None,
            certificate_authorities: Optional[Sequence[ClusterCertificateAuthorityArgs]] = None,
            certificate_authority: Optional[ClusterCertificateAuthorityArgs] = None,
            cluster_id: Optional[str] = None,
            created_at: Optional[str] = None,
            default_addons_to_removes: Optional[Sequence[str]] = None,
            enabled_cluster_log_types: Optional[Sequence[str]] = None,
            encryption_config: Optional[ClusterEncryptionConfigArgs] = None,
            endpoint: Optional[str] = None,
            identities: Optional[Sequence[ClusterIdentityArgs]] = None,
            kubernetes_network_config: Optional[ClusterKubernetesNetworkConfigArgs] = None,
            name: Optional[str] = None,
            outpost_config: Optional[ClusterOutpostConfigArgs] = None,
            platform_version: Optional[str] = None,
            role_arn: Optional[str] = None,
            status: Optional[str] = None,
            tags: Optional[Mapping[str, str]] = None,
            tags_all: Optional[Mapping[str, str]] = None,
            version: Optional[str] = None,
            vpc_config: Optional[ClusterVpcConfigArgs] = None) -> Cluster
    func GetCluster(ctx *Context, name string, id IDInput, state *ClusterState, opts ...ResourceOption) (*Cluster, error)
    public static Cluster Get(string name, Input<string> id, ClusterState? state, CustomResourceOptions? opts = null)
    public static Cluster get(String name, Output<String> id, ClusterState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Arn string

    ARN of the cluster.

    CertificateAuthorities List<ClusterCertificateAuthority>
    CertificateAuthority ClusterCertificateAuthority

    Attribute block containing certificate-authority-data for your cluster. Detailed below.

    ClusterId string

    The ID of your local Amazon EKS cluster on the AWS Outpost. This attribute isn't available for an AWS EKS cluster on AWS cloud.

    CreatedAt string

    Unix epoch timestamp in seconds for when the cluster was created.

    DefaultAddonsToRemoves List<string>
    EnabledClusterLogTypes List<string>

    List of the desired control plane logging to enable. For more information, see Amazon EKS Control Plane Logging.

    EncryptionConfig ClusterEncryptionConfig

    Configuration block with encryption configuration for the cluster. Only available on Kubernetes 1.13 and above clusters created after March 6, 2020. Detailed below.

    Endpoint string

    Endpoint for your Kubernetes API server.

    Identities List<ClusterIdentity>

    Attribute block containing identity provider information for your cluster. Only available on Kubernetes version 1.13 and 1.14 clusters created or upgraded on or after September 3, 2019. Detailed below.

    • kubernetes_network_config.service_ipv6_cidr - The CIDR block that Kubernetes pod and service IP addresses are assigned from if you specified ipv6 for ipFamily when you created the cluster. Kubernetes assigns service addresses from the unique local address range (fc00::/7) because you can't specify a custom IPv6 CIDR block when you create the cluster.
    KubernetesNetworkConfig ClusterKubernetesNetworkConfig

    Configuration block with kubernetes network configuration for the cluster. Detailed below. If removed, this provider will only perform drift detection if a configuration value is provided.

    Name string

    Name of the cluster. Must be between 1-100 characters in length. Must begin with an alphanumeric character, and must only contain alphanumeric characters, dashes and underscores (^[0-9A-Za-z][A-Za-z0-9\-_]+$).

    OutpostConfig ClusterOutpostConfig

    Configuration block representing the configuration of your local Amazon EKS cluster on an AWS Outpost. This block isn't available for creating Amazon EKS clusters on the AWS cloud.

    PlatformVersion string

    Platform version for the cluster.

    RoleArn string

    ARN of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Ensure the resource configuration includes explicit dependencies on the IAM Role permissions by adding depends_on if using the aws.iam.RolePolicy resource or aws.iam.RolePolicyAttachment resource, otherwise EKS cannot delete EKS managed EC2 infrastructure such as Security Groups on EKS Cluster deletion.

    Status string

    Status of the EKS cluster. One of CREATING, ACTIVE, DELETING, FAILED.

    Tags Dictionary<string, string>

    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    TagsAll Dictionary<string, string>

    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    Version string

    Desired Kubernetes master version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except those automatically triggered by EKS. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by EKS.

    VpcConfig ClusterVpcConfig

    Configuration block for the VPC associated with your cluster. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group Considerations in the Amazon EKS User Guide. Detailed below. Also contains attributes detailed in the Attributes section.

    The following arguments are optional:

    Arn string

    ARN of the cluster.

    CertificateAuthorities []ClusterCertificateAuthorityArgs
    CertificateAuthority ClusterCertificateAuthorityArgs

    Attribute block containing certificate-authority-data for your cluster. Detailed below.

    ClusterId string

    The ID of your local Amazon EKS cluster on the AWS Outpost. This attribute isn't available for an AWS EKS cluster on AWS cloud.

    CreatedAt string

    Unix epoch timestamp in seconds for when the cluster was created.

    DefaultAddonsToRemoves []string
    EnabledClusterLogTypes []string

    List of the desired control plane logging to enable. For more information, see Amazon EKS Control Plane Logging.

    EncryptionConfig ClusterEncryptionConfigArgs

    Configuration block with encryption configuration for the cluster. Only available on Kubernetes 1.13 and above clusters created after March 6, 2020. Detailed below.

    Endpoint string

    Endpoint for your Kubernetes API server.

    Identities []ClusterIdentityArgs

    Attribute block containing identity provider information for your cluster. Only available on Kubernetes version 1.13 and 1.14 clusters created or upgraded on or after September 3, 2019. Detailed below.

    • kubernetes_network_config.service_ipv6_cidr - The CIDR block that Kubernetes pod and service IP addresses are assigned from if you specified ipv6 for ipFamily when you created the cluster. Kubernetes assigns service addresses from the unique local address range (fc00::/7) because you can't specify a custom IPv6 CIDR block when you create the cluster.
    KubernetesNetworkConfig ClusterKubernetesNetworkConfigArgs

    Configuration block with kubernetes network configuration for the cluster. Detailed below. If removed, this provider will only perform drift detection if a configuration value is provided.

    Name string

    Name of the cluster. Must be between 1-100 characters in length. Must begin with an alphanumeric character, and must only contain alphanumeric characters, dashes and underscores (^[0-9A-Za-z][A-Za-z0-9\-_]+$).

    OutpostConfig ClusterOutpostConfigArgs

    Configuration block representing the configuration of your local Amazon EKS cluster on an AWS Outpost. This block isn't available for creating Amazon EKS clusters on the AWS cloud.

    PlatformVersion string

    Platform version for the cluster.

    RoleArn string

    ARN of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Ensure the resource configuration includes explicit dependencies on the IAM Role permissions by adding depends_on if using the aws.iam.RolePolicy resource or aws.iam.RolePolicyAttachment resource, otherwise EKS cannot delete EKS managed EC2 infrastructure such as Security Groups on EKS Cluster deletion.

    Status string

    Status of the EKS cluster. One of CREATING, ACTIVE, DELETING, FAILED.

    Tags map[string]string

    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    TagsAll map[string]string

    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    Version string

    Desired Kubernetes master version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except those automatically triggered by EKS. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by EKS.

    VpcConfig ClusterVpcConfigArgs

    Configuration block for the VPC associated with your cluster. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group Considerations in the Amazon EKS User Guide. Detailed below. Also contains attributes detailed in the Attributes section.

    The following arguments are optional:

    arn String

    ARN of the cluster.

    certificateAuthorities List<ClusterCertificateAuthority>
    certificateAuthority ClusterCertificateAuthority

    Attribute block containing certificate-authority-data for your cluster. Detailed below.

    clusterId String

    The ID of your local Amazon EKS cluster on the AWS Outpost. This attribute isn't available for an AWS EKS cluster on AWS cloud.

    createdAt String

    Unix epoch timestamp in seconds for when the cluster was created.

    defaultAddonsToRemoves List<String>
    enabledClusterLogTypes List<String>

    List of the desired control plane logging to enable. For more information, see Amazon EKS Control Plane Logging.

    encryptionConfig ClusterEncryptionConfig

    Configuration block with encryption configuration for the cluster. Only available on Kubernetes 1.13 and above clusters created after March 6, 2020. Detailed below.

    endpoint String

    Endpoint for your Kubernetes API server.

    identities List<ClusterIdentity>

    Attribute block containing identity provider information for your cluster. Only available on Kubernetes version 1.13 and 1.14 clusters created or upgraded on or after September 3, 2019. Detailed below.

    • kubernetes_network_config.service_ipv6_cidr - The CIDR block that Kubernetes pod and service IP addresses are assigned from if you specified ipv6 for ipFamily when you created the cluster. Kubernetes assigns service addresses from the unique local address range (fc00::/7) because you can't specify a custom IPv6 CIDR block when you create the cluster.
    kubernetesNetworkConfig ClusterKubernetesNetworkConfig

    Configuration block with kubernetes network configuration for the cluster. Detailed below. If removed, this provider will only perform drift detection if a configuration value is provided.

    name String

    Name of the cluster. Must be between 1-100 characters in length. Must begin with an alphanumeric character, and must only contain alphanumeric characters, dashes and underscores (^[0-9A-Za-z][A-Za-z0-9\-_]+$).

    outpostConfig ClusterOutpostConfig

    Configuration block representing the configuration of your local Amazon EKS cluster on an AWS Outpost. This block isn't available for creating Amazon EKS clusters on the AWS cloud.

    platformVersion String

    Platform version for the cluster.

    roleArn String

    ARN of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Ensure the resource configuration includes explicit dependencies on the IAM Role permissions by adding depends_on if using the aws.iam.RolePolicy resource or aws.iam.RolePolicyAttachment resource, otherwise EKS cannot delete EKS managed EC2 infrastructure such as Security Groups on EKS Cluster deletion.

    status String

    Status of the EKS cluster. One of CREATING, ACTIVE, DELETING, FAILED.

    tags Map<String,String>

    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    tagsAll Map<String,String>

    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    version String

    Desired Kubernetes master version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except those automatically triggered by EKS. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by EKS.

    vpcConfig ClusterVpcConfig

    Configuration block for the VPC associated with your cluster. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group Considerations in the Amazon EKS User Guide. Detailed below. Also contains attributes detailed in the Attributes section.

    The following arguments are optional:

    arn string

    ARN of the cluster.

    certificateAuthorities ClusterCertificateAuthority[]
    certificateAuthority ClusterCertificateAuthority

    Attribute block containing certificate-authority-data for your cluster. Detailed below.

    clusterId string

    The ID of your local Amazon EKS cluster on the AWS Outpost. This attribute isn't available for an AWS EKS cluster on AWS cloud.

    createdAt string

    Unix epoch timestamp in seconds for when the cluster was created.

    defaultAddonsToRemoves string[]
    enabledClusterLogTypes string[]

    List of the desired control plane logging to enable. For more information, see Amazon EKS Control Plane Logging.

    encryptionConfig ClusterEncryptionConfig

    Configuration block with encryption configuration for the cluster. Only available on Kubernetes 1.13 and above clusters created after March 6, 2020. Detailed below.

    endpoint string

    Endpoint for your Kubernetes API server.

    identities ClusterIdentity[]

    Attribute block containing identity provider information for your cluster. Only available on Kubernetes version 1.13 and 1.14 clusters created or upgraded on or after September 3, 2019. Detailed below.

    • kubernetes_network_config.service_ipv6_cidr - The CIDR block that Kubernetes pod and service IP addresses are assigned from if you specified ipv6 for ipFamily when you created the cluster. Kubernetes assigns service addresses from the unique local address range (fc00::/7) because you can't specify a custom IPv6 CIDR block when you create the cluster.
    kubernetesNetworkConfig ClusterKubernetesNetworkConfig

    Configuration block with kubernetes network configuration for the cluster. Detailed below. If removed, this provider will only perform drift detection if a configuration value is provided.

    name string

    Name of the cluster. Must be between 1-100 characters in length. Must begin with an alphanumeric character, and must only contain alphanumeric characters, dashes and underscores (^[0-9A-Za-z][A-Za-z0-9\-_]+$).

    outpostConfig ClusterOutpostConfig

    Configuration block representing the configuration of your local Amazon EKS cluster on an AWS Outpost. This block isn't available for creating Amazon EKS clusters on the AWS cloud.

    platformVersion string

    Platform version for the cluster.

    roleArn string

    ARN of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Ensure the resource configuration includes explicit dependencies on the IAM Role permissions by adding depends_on if using the aws.iam.RolePolicy resource or aws.iam.RolePolicyAttachment resource, otherwise EKS cannot delete EKS managed EC2 infrastructure such as Security Groups on EKS Cluster deletion.

    status string

    Status of the EKS cluster. One of CREATING, ACTIVE, DELETING, FAILED.

    tags {[key: string]: string}

    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    tagsAll {[key: string]: string}

    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    version string

    Desired Kubernetes master version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except those automatically triggered by EKS. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by EKS.

    vpcConfig ClusterVpcConfig

    Configuration block for the VPC associated with your cluster. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group Considerations in the Amazon EKS User Guide. Detailed below. Also contains attributes detailed in the Attributes section.

    The following arguments are optional:

    arn str

    ARN of the cluster.

    certificate_authorities Sequence[ClusterCertificateAuthorityArgs]
    certificate_authority ClusterCertificateAuthorityArgs

    Attribute block containing certificate-authority-data for your cluster. Detailed below.

    cluster_id str

    The ID of your local Amazon EKS cluster on the AWS Outpost. This attribute isn't available for an AWS EKS cluster on AWS cloud.

    created_at str

    Unix epoch timestamp in seconds for when the cluster was created.

    default_addons_to_removes Sequence[str]
    enabled_cluster_log_types Sequence[str]

    List of the desired control plane logging to enable. For more information, see Amazon EKS Control Plane Logging.

    encryption_config ClusterEncryptionConfigArgs

    Configuration block with encryption configuration for the cluster. Only available on Kubernetes 1.13 and above clusters created after March 6, 2020. Detailed below.

    endpoint str

    Endpoint for your Kubernetes API server.

    identities Sequence[ClusterIdentityArgs]

    Attribute block containing identity provider information for your cluster. Only available on Kubernetes version 1.13 and 1.14 clusters created or upgraded on or after September 3, 2019. Detailed below.

    • kubernetes_network_config.service_ipv6_cidr - The CIDR block that Kubernetes pod and service IP addresses are assigned from if you specified ipv6 for ipFamily when you created the cluster. Kubernetes assigns service addresses from the unique local address range (fc00::/7) because you can't specify a custom IPv6 CIDR block when you create the cluster.
    kubernetes_network_config ClusterKubernetesNetworkConfigArgs

    Configuration block with kubernetes network configuration for the cluster. Detailed below. If removed, this provider will only perform drift detection if a configuration value is provided.

    name str

    Name of the cluster. Must be between 1-100 characters in length. Must begin with an alphanumeric character, and must only contain alphanumeric characters, dashes and underscores (^[0-9A-Za-z][A-Za-z0-9\-_]+$).

    outpost_config ClusterOutpostConfigArgs

    Configuration block representing the configuration of your local Amazon EKS cluster on an AWS Outpost. This block isn't available for creating Amazon EKS clusters on the AWS cloud.

    platform_version str

    Platform version for the cluster.

    role_arn str

    ARN of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Ensure the resource configuration includes explicit dependencies on the IAM Role permissions by adding depends_on if using the aws.iam.RolePolicy resource or aws.iam.RolePolicyAttachment resource, otherwise EKS cannot delete EKS managed EC2 infrastructure such as Security Groups on EKS Cluster deletion.

    status str

    Status of the EKS cluster. One of CREATING, ACTIVE, DELETING, FAILED.

    tags Mapping[str, str]

    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    tags_all Mapping[str, str]

    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    version str

    Desired Kubernetes master version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except those automatically triggered by EKS. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by EKS.

    vpc_config ClusterVpcConfigArgs

    Configuration block for the VPC associated with your cluster. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group Considerations in the Amazon EKS User Guide. Detailed below. Also contains attributes detailed in the Attributes section.

    The following arguments are optional:

    arn String

    ARN of the cluster.

    certificateAuthorities List<Property Map>
    certificateAuthority Property Map

    Attribute block containing certificate-authority-data for your cluster. Detailed below.

    clusterId String

    The ID of your local Amazon EKS cluster on the AWS Outpost. This attribute isn't available for an AWS EKS cluster on AWS cloud.

    createdAt String

    Unix epoch timestamp in seconds for when the cluster was created.

    defaultAddonsToRemoves List<String>
    enabledClusterLogTypes List<String>

    List of the desired control plane logging to enable. For more information, see Amazon EKS Control Plane Logging.

    encryptionConfig Property Map

    Configuration block with encryption configuration for the cluster. Only available on Kubernetes 1.13 and above clusters created after March 6, 2020. Detailed below.

    endpoint String

    Endpoint for your Kubernetes API server.

    identities List<Property Map>

    Attribute block containing identity provider information for your cluster. Only available on Kubernetes version 1.13 and 1.14 clusters created or upgraded on or after September 3, 2019. Detailed below.

    • kubernetes_network_config.service_ipv6_cidr - The CIDR block that Kubernetes pod and service IP addresses are assigned from if you specified ipv6 for ipFamily when you created the cluster. Kubernetes assigns service addresses from the unique local address range (fc00::/7) because you can't specify a custom IPv6 CIDR block when you create the cluster.
    kubernetesNetworkConfig Property Map

    Configuration block with kubernetes network configuration for the cluster. Detailed below. If removed, this provider will only perform drift detection if a configuration value is provided.

    name String

    Name of the cluster. Must be between 1-100 characters in length. Must begin with an alphanumeric character, and must only contain alphanumeric characters, dashes and underscores (^[0-9A-Za-z][A-Za-z0-9\-_]+$).

    outpostConfig Property Map

    Configuration block representing the configuration of your local Amazon EKS cluster on an AWS Outpost. This block isn't available for creating Amazon EKS clusters on the AWS cloud.

    platformVersion String

    Platform version for the cluster.

    roleArn String

    ARN of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Ensure the resource configuration includes explicit dependencies on the IAM Role permissions by adding depends_on if using the aws.iam.RolePolicy resource or aws.iam.RolePolicyAttachment resource, otherwise EKS cannot delete EKS managed EC2 infrastructure such as Security Groups on EKS Cluster deletion.

    status String

    Status of the EKS cluster. One of CREATING, ACTIVE, DELETING, FAILED.

    tags Map<String>

    Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    tagsAll Map<String>

    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated:

    Please use tags instead.

    version String

    Desired Kubernetes master version. If you do not specify a value, the latest available version at resource creation is used and no upgrades will occur except those automatically triggered by EKS. The value must be configured and increased to upgrade the version when desired. Downgrades are not supported by EKS.

    vpcConfig Property Map

    Configuration block for the VPC associated with your cluster. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group Considerations in the Amazon EKS User Guide. Detailed below. Also contains attributes detailed in the Attributes section.

    The following arguments are optional:

    Supporting Types

    ClusterCertificateAuthority, ClusterCertificateAuthorityArgs

    Data string

    Base64 encoded certificate data required to communicate with your cluster. Add this to the certificate-authority-data section of the kubeconfig file for your cluster.

    Data string

    Base64 encoded certificate data required to communicate with your cluster. Add this to the certificate-authority-data section of the kubeconfig file for your cluster.

    data String

    Base64 encoded certificate data required to communicate with your cluster. Add this to the certificate-authority-data section of the kubeconfig file for your cluster.

    data string

    Base64 encoded certificate data required to communicate with your cluster. Add this to the certificate-authority-data section of the kubeconfig file for your cluster.

    data str

    Base64 encoded certificate data required to communicate with your cluster. Add this to the certificate-authority-data section of the kubeconfig file for your cluster.

    data String

    Base64 encoded certificate data required to communicate with your cluster. Add this to the certificate-authority-data section of the kubeconfig file for your cluster.

    ClusterEncryptionConfig, ClusterEncryptionConfigArgs

    Provider ClusterEncryptionConfigProvider

    Configuration block with provider for encryption. Detailed below.

    Resources List<string>

    List of strings with resources to be encrypted. Valid values: secrets.

    Provider ClusterEncryptionConfigProvider

    Configuration block with provider for encryption. Detailed below.

    Resources []string

    List of strings with resources to be encrypted. Valid values: secrets.

    provider ClusterEncryptionConfigProvider

    Configuration block with provider for encryption. Detailed below.

    resources List<String>

    List of strings with resources to be encrypted. Valid values: secrets.

    provider ClusterEncryptionConfigProvider

    Configuration block with provider for encryption. Detailed below.

    resources string[]

    List of strings with resources to be encrypted. Valid values: secrets.

    provider ClusterEncryptionConfigProvider

    Configuration block with provider for encryption. Detailed below.

    resources Sequence[str]

    List of strings with resources to be encrypted. Valid values: secrets.

    provider Property Map

    Configuration block with provider for encryption. Detailed below.

    resources List<String>

    List of strings with resources to be encrypted. Valid values: secrets.

    ClusterEncryptionConfigProvider, ClusterEncryptionConfigProviderArgs

    KeyArn string

    ARN of the Key Management Service (KMS) customer master key (CMK). The CMK must be symmetric, created in the same region as the cluster, and if the CMK was created in a different account, the user must have access to the CMK. For more information, see Allowing Users in Other Accounts to Use a CMK in the AWS Key Management Service Developer Guide.

    KeyArn string

    ARN of the Key Management Service (KMS) customer master key (CMK). The CMK must be symmetric, created in the same region as the cluster, and if the CMK was created in a different account, the user must have access to the CMK. For more information, see Allowing Users in Other Accounts to Use a CMK in the AWS Key Management Service Developer Guide.

    keyArn String

    ARN of the Key Management Service (KMS) customer master key (CMK). The CMK must be symmetric, created in the same region as the cluster, and if the CMK was created in a different account, the user must have access to the CMK. For more information, see Allowing Users in Other Accounts to Use a CMK in the AWS Key Management Service Developer Guide.

    keyArn string

    ARN of the Key Management Service (KMS) customer master key (CMK). The CMK must be symmetric, created in the same region as the cluster, and if the CMK was created in a different account, the user must have access to the CMK. For more information, see Allowing Users in Other Accounts to Use a CMK in the AWS Key Management Service Developer Guide.

    key_arn str

    ARN of the Key Management Service (KMS) customer master key (CMK). The CMK must be symmetric, created in the same region as the cluster, and if the CMK was created in a different account, the user must have access to the CMK. For more information, see Allowing Users in Other Accounts to Use a CMK in the AWS Key Management Service Developer Guide.

    keyArn String

    ARN of the Key Management Service (KMS) customer master key (CMK). The CMK must be symmetric, created in the same region as the cluster, and if the CMK was created in a different account, the user must have access to the CMK. For more information, see Allowing Users in Other Accounts to Use a CMK in the AWS Key Management Service Developer Guide.

    ClusterIdentity, ClusterIdentityArgs

    Oidcs List<ClusterIdentityOidc>

    Nested block containing OpenID Connect identity provider information for the cluster. Detailed below.

    Oidcs []ClusterIdentityOidc

    Nested block containing OpenID Connect identity provider information for the cluster. Detailed below.

    oidcs List<ClusterIdentityOidc>

    Nested block containing OpenID Connect identity provider information for the cluster. Detailed below.

    oidcs ClusterIdentityOidc[]

    Nested block containing OpenID Connect identity provider information for the cluster. Detailed below.

    oidcs Sequence[ClusterIdentityOidc]

    Nested block containing OpenID Connect identity provider information for the cluster. Detailed below.

    oidcs List<Property Map>

    Nested block containing OpenID Connect identity provider information for the cluster. Detailed below.

    ClusterIdentityOidc, ClusterIdentityOidcArgs

    Issuer string

    Issuer URL for the OpenID Connect identity provider.

    Issuer string

    Issuer URL for the OpenID Connect identity provider.

    issuer String

    Issuer URL for the OpenID Connect identity provider.

    issuer string

    Issuer URL for the OpenID Connect identity provider.

    issuer str

    Issuer URL for the OpenID Connect identity provider.

    issuer String

    Issuer URL for the OpenID Connect identity provider.

    ClusterKubernetesNetworkConfig, ClusterKubernetesNetworkConfigArgs

    IpFamily string

    The IP family used to assign Kubernetes pod and service addresses. Valid values are ipv4 (default) and ipv6. You can only specify an IP family when you create a cluster, changing this value will force a new cluster to be created.

    ServiceIpv4Cidr string

    The CIDR block to assign Kubernetes pod and service IP addresses from. If you don't specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We recommend that you specify a block that does not overlap with resources in other networks that are peered or connected to your VPC. You can only specify a custom CIDR block when you create a cluster, changing this value will force a new cluster to be created. The block must meet the following requirements:

    • Within one of the following private IP address blocks: 10.0.0.0/8, 172.16.0.0/12, or 192.168.0.0/16.

    • Doesn't overlap with any CIDR block assigned to the VPC that you selected for VPC.

    • Between /24 and /12.

    ServiceIpv6Cidr string
    IpFamily string

    The IP family used to assign Kubernetes pod and service addresses. Valid values are ipv4 (default) and ipv6. You can only specify an IP family when you create a cluster, changing this value will force a new cluster to be created.

    ServiceIpv4Cidr string

    The CIDR block to assign Kubernetes pod and service IP addresses from. If you don't specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We recommend that you specify a block that does not overlap with resources in other networks that are peered or connected to your VPC. You can only specify a custom CIDR block when you create a cluster, changing this value will force a new cluster to be created. The block must meet the following requirements:

    • Within one of the following private IP address blocks: 10.0.0.0/8, 172.16.0.0/12, or 192.168.0.0/16.

    • Doesn't overlap with any CIDR block assigned to the VPC that you selected for VPC.

    • Between /24 and /12.

    ServiceIpv6Cidr string
    ipFamily String

    The IP family used to assign Kubernetes pod and service addresses. Valid values are ipv4 (default) and ipv6. You can only specify an IP family when you create a cluster, changing this value will force a new cluster to be created.

    serviceIpv4Cidr String

    The CIDR block to assign Kubernetes pod and service IP addresses from. If you don't specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We recommend that you specify a block that does not overlap with resources in other networks that are peered or connected to your VPC. You can only specify a custom CIDR block when you create a cluster, changing this value will force a new cluster to be created. The block must meet the following requirements:

    • Within one of the following private IP address blocks: 10.0.0.0/8, 172.16.0.0/12, or 192.168.0.0/16.

    • Doesn't overlap with any CIDR block assigned to the VPC that you selected for VPC.

    • Between /24 and /12.

    serviceIpv6Cidr String
    ipFamily string

    The IP family used to assign Kubernetes pod and service addresses. Valid values are ipv4 (default) and ipv6. You can only specify an IP family when you create a cluster, changing this value will force a new cluster to be created.

    serviceIpv4Cidr string

    The CIDR block to assign Kubernetes pod and service IP addresses from. If you don't specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We recommend that you specify a block that does not overlap with resources in other networks that are peered or connected to your VPC. You can only specify a custom CIDR block when you create a cluster, changing this value will force a new cluster to be created. The block must meet the following requirements:

    • Within one of the following private IP address blocks: 10.0.0.0/8, 172.16.0.0/12, or 192.168.0.0/16.

    • Doesn't overlap with any CIDR block assigned to the VPC that you selected for VPC.

    • Between /24 and /12.

    serviceIpv6Cidr string
    ip_family str

    The IP family used to assign Kubernetes pod and service addresses. Valid values are ipv4 (default) and ipv6. You can only specify an IP family when you create a cluster, changing this value will force a new cluster to be created.

    service_ipv4_cidr str

    The CIDR block to assign Kubernetes pod and service IP addresses from. If you don't specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We recommend that you specify a block that does not overlap with resources in other networks that are peered or connected to your VPC. You can only specify a custom CIDR block when you create a cluster, changing this value will force a new cluster to be created. The block must meet the following requirements:

    • Within one of the following private IP address blocks: 10.0.0.0/8, 172.16.0.0/12, or 192.168.0.0/16.

    • Doesn't overlap with any CIDR block assigned to the VPC that you selected for VPC.

    • Between /24 and /12.

    service_ipv6_cidr str
    ipFamily String

    The IP family used to assign Kubernetes pod and service addresses. Valid values are ipv4 (default) and ipv6. You can only specify an IP family when you create a cluster, changing this value will force a new cluster to be created.

    serviceIpv4Cidr String

    The CIDR block to assign Kubernetes pod and service IP addresses from. If you don't specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We recommend that you specify a block that does not overlap with resources in other networks that are peered or connected to your VPC. You can only specify a custom CIDR block when you create a cluster, changing this value will force a new cluster to be created. The block must meet the following requirements:

    • Within one of the following private IP address blocks: 10.0.0.0/8, 172.16.0.0/12, or 192.168.0.0/16.

    • Doesn't overlap with any CIDR block assigned to the VPC that you selected for VPC.

    • Between /24 and /12.

    serviceIpv6Cidr String

    ClusterOutpostConfig, ClusterOutpostConfigArgs

    ControlPlaneInstanceType string

    The Amazon EC2 instance type that you want to use for your local Amazon EKS cluster on Outposts. The instance type that you specify is used for all Kubernetes control plane instances. The instance type can't be changed after cluster creation. Choose an instance type based on the number of nodes that your cluster will have. If your cluster will have:

    • 1–20 nodes, then we recommend specifying a large instance type.

    • 21–100 nodes, then we recommend specifying an xlarge instance type.

    • 101–250 nodes, then we recommend specifying a 2xlarge instance type.

    For a list of the available Amazon EC2 instance types, see Compute and storage in AWS Outposts rack features The control plane is not automatically scaled by Amazon EKS.

    OutpostArns List<string>

    The ARN of the Outpost that you want to use for your local Amazon EKS cluster on Outposts. This argument is a list of arns, but only a single Outpost ARN is supported currently.

    ControlPlanePlacement ClusterOutpostConfigControlPlanePlacement

    An object representing the placement configuration for all the control plane instances of your local Amazon EKS cluster on AWS Outpost. The control_plane_placement configuration block supports the following arguments:

    ControlPlaneInstanceType string

    The Amazon EC2 instance type that you want to use for your local Amazon EKS cluster on Outposts. The instance type that you specify is used for all Kubernetes control plane instances. The instance type can't be changed after cluster creation. Choose an instance type based on the number of nodes that your cluster will have. If your cluster will have:

    • 1–20 nodes, then we recommend specifying a large instance type.

    • 21–100 nodes, then we recommend specifying an xlarge instance type.

    • 101–250 nodes, then we recommend specifying a 2xlarge instance type.

    For a list of the available Amazon EC2 instance types, see Compute and storage in AWS Outposts rack features The control plane is not automatically scaled by Amazon EKS.

    OutpostArns []string

    The ARN of the Outpost that you want to use for your local Amazon EKS cluster on Outposts. This argument is a list of arns, but only a single Outpost ARN is supported currently.

    ControlPlanePlacement ClusterOutpostConfigControlPlanePlacement

    An object representing the placement configuration for all the control plane instances of your local Amazon EKS cluster on AWS Outpost. The control_plane_placement configuration block supports the following arguments:

    controlPlaneInstanceType String

    The Amazon EC2 instance type that you want to use for your local Amazon EKS cluster on Outposts. The instance type that you specify is used for all Kubernetes control plane instances. The instance type can't be changed after cluster creation. Choose an instance type based on the number of nodes that your cluster will have. If your cluster will have:

    • 1–20 nodes, then we recommend specifying a large instance type.

    • 21–100 nodes, then we recommend specifying an xlarge instance type.

    • 101–250 nodes, then we recommend specifying a 2xlarge instance type.

    For a list of the available Amazon EC2 instance types, see Compute and storage in AWS Outposts rack features The control plane is not automatically scaled by Amazon EKS.

    outpostArns List<String>

    The ARN of the Outpost that you want to use for your local Amazon EKS cluster on Outposts. This argument is a list of arns, but only a single Outpost ARN is supported currently.

    controlPlanePlacement ClusterOutpostConfigControlPlanePlacement

    An object representing the placement configuration for all the control plane instances of your local Amazon EKS cluster on AWS Outpost. The control_plane_placement configuration block supports the following arguments:

    controlPlaneInstanceType string

    The Amazon EC2 instance type that you want to use for your local Amazon EKS cluster on Outposts. The instance type that you specify is used for all Kubernetes control plane instances. The instance type can't be changed after cluster creation. Choose an instance type based on the number of nodes that your cluster will have. If your cluster will have:

    • 1–20 nodes, then we recommend specifying a large instance type.

    • 21–100 nodes, then we recommend specifying an xlarge instance type.

    • 101–250 nodes, then we recommend specifying a 2xlarge instance type.

    For a list of the available Amazon EC2 instance types, see Compute and storage in AWS Outposts rack features The control plane is not automatically scaled by Amazon EKS.

    outpostArns string[]

    The ARN of the Outpost that you want to use for your local Amazon EKS cluster on Outposts. This argument is a list of arns, but only a single Outpost ARN is supported currently.

    controlPlanePlacement ClusterOutpostConfigControlPlanePlacement

    An object representing the placement configuration for all the control plane instances of your local Amazon EKS cluster on AWS Outpost. The control_plane_placement configuration block supports the following arguments:

    control_plane_instance_type str

    The Amazon EC2 instance type that you want to use for your local Amazon EKS cluster on Outposts. The instance type that you specify is used for all Kubernetes control plane instances. The instance type can't be changed after cluster creation. Choose an instance type based on the number of nodes that your cluster will have. If your cluster will have:

    • 1–20 nodes, then we recommend specifying a large instance type.

    • 21–100 nodes, then we recommend specifying an xlarge instance type.

    • 101–250 nodes, then we recommend specifying a 2xlarge instance type.

    For a list of the available Amazon EC2 instance types, see Compute and storage in AWS Outposts rack features The control plane is not automatically scaled by Amazon EKS.

    outpost_arns Sequence[str]

    The ARN of the Outpost that you want to use for your local Amazon EKS cluster on Outposts. This argument is a list of arns, but only a single Outpost ARN is supported currently.

    control_plane_placement ClusterOutpostConfigControlPlanePlacement

    An object representing the placement configuration for all the control plane instances of your local Amazon EKS cluster on AWS Outpost. The control_plane_placement configuration block supports the following arguments:

    controlPlaneInstanceType String

    The Amazon EC2 instance type that you want to use for your local Amazon EKS cluster on Outposts. The instance type that you specify is used for all Kubernetes control plane instances. The instance type can't be changed after cluster creation. Choose an instance type based on the number of nodes that your cluster will have. If your cluster will have:

    • 1–20 nodes, then we recommend specifying a large instance type.

    • 21–100 nodes, then we recommend specifying an xlarge instance type.

    • 101–250 nodes, then we recommend specifying a 2xlarge instance type.

    For a list of the available Amazon EC2 instance types, see Compute and storage in AWS Outposts rack features The control plane is not automatically scaled by Amazon EKS.

    outpostArns List<String>

    The ARN of the Outpost that you want to use for your local Amazon EKS cluster on Outposts. This argument is a list of arns, but only a single Outpost ARN is supported currently.

    controlPlanePlacement Property Map

    An object representing the placement configuration for all the control plane instances of your local Amazon EKS cluster on AWS Outpost. The control_plane_placement configuration block supports the following arguments:

    ClusterOutpostConfigControlPlanePlacement, ClusterOutpostConfigControlPlanePlacementArgs

    GroupName string

    The name of the placement group for the Kubernetes control plane instances. This setting can't be changed after cluster creation.

    GroupName string

    The name of the placement group for the Kubernetes control plane instances. This setting can't be changed after cluster creation.

    groupName String

    The name of the placement group for the Kubernetes control plane instances. This setting can't be changed after cluster creation.

    groupName string

    The name of the placement group for the Kubernetes control plane instances. This setting can't be changed after cluster creation.

    group_name str

    The name of the placement group for the Kubernetes control plane instances. This setting can't be changed after cluster creation.

    groupName String

    The name of the placement group for the Kubernetes control plane instances. This setting can't be changed after cluster creation.

    ClusterVpcConfig, ClusterVpcConfigArgs

    SubnetIds List<string>

    List of subnet IDs. Must be in at least two different availability zones. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your worker nodes and the Kubernetes control plane.

    ClusterSecurityGroupId string

    Cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control-plane-to-data-plane communication.

    EndpointPrivateAccess bool

    Whether the Amazon EKS private API server endpoint is enabled. Default is false.

    EndpointPublicAccess bool

    Whether the Amazon EKS public API server endpoint is enabled. Default is true.

    PublicAccessCidrs List<string>

    List of CIDR blocks. Indicates which CIDR blocks can access the Amazon EKS public API server endpoint when enabled. EKS defaults this to a list with 0.0.0.0/0. The provider will only perform drift detection of its value when present in a configuration.

    SecurityGroupIds List<string>

    List of security group IDs for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane.

    VpcId string

    ID of the VPC associated with your cluster.

    SubnetIds []string

    List of subnet IDs. Must be in at least two different availability zones. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your worker nodes and the Kubernetes control plane.

    ClusterSecurityGroupId string

    Cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control-plane-to-data-plane communication.

    EndpointPrivateAccess bool

    Whether the Amazon EKS private API server endpoint is enabled. Default is false.

    EndpointPublicAccess bool

    Whether the Amazon EKS public API server endpoint is enabled. Default is true.

    PublicAccessCidrs []string

    List of CIDR blocks. Indicates which CIDR blocks can access the Amazon EKS public API server endpoint when enabled. EKS defaults this to a list with 0.0.0.0/0. The provider will only perform drift detection of its value when present in a configuration.

    SecurityGroupIds []string

    List of security group IDs for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane.

    VpcId string

    ID of the VPC associated with your cluster.

    subnetIds List<String>

    List of subnet IDs. Must be in at least two different availability zones. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your worker nodes and the Kubernetes control plane.

    clusterSecurityGroupId String

    Cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control-plane-to-data-plane communication.

    endpointPrivateAccess Boolean

    Whether the Amazon EKS private API server endpoint is enabled. Default is false.

    endpointPublicAccess Boolean

    Whether the Amazon EKS public API server endpoint is enabled. Default is true.

    publicAccessCidrs List<String>

    List of CIDR blocks. Indicates which CIDR blocks can access the Amazon EKS public API server endpoint when enabled. EKS defaults this to a list with 0.0.0.0/0. The provider will only perform drift detection of its value when present in a configuration.

    securityGroupIds List<String>

    List of security group IDs for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane.

    vpcId String

    ID of the VPC associated with your cluster.

    subnetIds string[]

    List of subnet IDs. Must be in at least two different availability zones. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your worker nodes and the Kubernetes control plane.

    clusterSecurityGroupId string

    Cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control-plane-to-data-plane communication.

    endpointPrivateAccess boolean

    Whether the Amazon EKS private API server endpoint is enabled. Default is false.

    endpointPublicAccess boolean

    Whether the Amazon EKS public API server endpoint is enabled. Default is true.

    publicAccessCidrs string[]

    List of CIDR blocks. Indicates which CIDR blocks can access the Amazon EKS public API server endpoint when enabled. EKS defaults this to a list with 0.0.0.0/0. The provider will only perform drift detection of its value when present in a configuration.

    securityGroupIds string[]

    List of security group IDs for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane.

    vpcId string

    ID of the VPC associated with your cluster.

    subnet_ids Sequence[str]

    List of subnet IDs. Must be in at least two different availability zones. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your worker nodes and the Kubernetes control plane.

    cluster_security_group_id str

    Cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control-plane-to-data-plane communication.

    endpoint_private_access bool

    Whether the Amazon EKS private API server endpoint is enabled. Default is false.

    endpoint_public_access bool

    Whether the Amazon EKS public API server endpoint is enabled. Default is true.

    public_access_cidrs Sequence[str]

    List of CIDR blocks. Indicates which CIDR blocks can access the Amazon EKS public API server endpoint when enabled. EKS defaults this to a list with 0.0.0.0/0. The provider will only perform drift detection of its value when present in a configuration.

    security_group_ids Sequence[str]

    List of security group IDs for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane.

    vpc_id str

    ID of the VPC associated with your cluster.

    subnetIds List<String>

    List of subnet IDs. Must be in at least two different availability zones. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your worker nodes and the Kubernetes control plane.

    clusterSecurityGroupId String

    Cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control-plane-to-data-plane communication.

    endpointPrivateAccess Boolean

    Whether the Amazon EKS private API server endpoint is enabled. Default is false.

    endpointPublicAccess Boolean

    Whether the Amazon EKS public API server endpoint is enabled. Default is true.

    publicAccessCidrs List<String>

    List of CIDR blocks. Indicates which CIDR blocks can access the Amazon EKS public API server endpoint when enabled. EKS defaults this to a list with 0.0.0.0/0. The provider will only perform drift detection of its value when present in a configuration.

    securityGroupIds List<String>

    List of security group IDs for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane.

    vpcId String

    ID of the VPC associated with your cluster.

    Import

    Using pulumi import, import EKS Clusters using the name. For example:

     $ pulumi import aws:eks/cluster:Cluster my_cluster my_cluster
    

    Package Details

    Repository
    AWS Classic pulumi/pulumi-aws
    License
    Apache-2.0
    Notes

    This Pulumi package is based on the aws Terraform Provider.

    aws logo

    Try AWS Native preview for resources not in the classic version.

    AWS Classic v6.10.0 published on Tuesday, Nov 21, 2023 by Pulumi