aws logo
AWS Classic v5.29.0, Feb 1 23

aws.eks.NodeGroup

Manages an EKS Node Group, which can provision and optionally update an Auto Scaling Group of Kubernetes worker nodes compatible with EKS. Additional documentation about this functionality can be found in the EKS User Guide.

Example Usage

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.Eks.NodeGroup("example", new()
    {
        ClusterName = aws_eks_cluster.Example.Name,
        NodeRoleArn = aws_iam_role.Example.Arn,
        SubnetIds = aws_subnet.Example.Select(__item => __item.Id).ToList(),
        ScalingConfig = new Aws.Eks.Inputs.NodeGroupScalingConfigArgs
        {
            DesiredSize = 1,
            MaxSize = 2,
            MinSize = 1,
        },
        UpdateConfig = new Aws.Eks.Inputs.NodeGroupUpdateConfigArgs
        {
            MaxUnavailable = 1,
        },
    }, new CustomResourceOptions
    {
        DependsOn = new[]
        {
            aws_iam_role_policy_attachment.Example_AmazonEKSWorkerNodePolicy,
            aws_iam_role_policy_attachment.Example_AmazonEKS_CNI_Policy,
            aws_iam_role_policy_attachment.Example_AmazonEC2ContainerRegistryReadOnly,
        },
    });

});

Coming soon!

package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.eks.NodeGroup;
import com.pulumi.aws.eks.NodeGroupArgs;
import com.pulumi.aws.eks.inputs.NodeGroupScalingConfigArgs;
import com.pulumi.aws.eks.inputs.NodeGroupUpdateConfigArgs;
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 NodeGroup("example", NodeGroupArgs.builder()        
            .clusterName(aws_eks_cluster.example().name())
            .nodeRoleArn(aws_iam_role.example().arn())
            .subnetIds(aws_subnet.example().stream().map(element -> element.id()).collect(toList()))
            .scalingConfig(NodeGroupScalingConfigArgs.builder()
                .desiredSize(1)
                .maxSize(2)
                .minSize(1)
                .build())
            .updateConfig(NodeGroupUpdateConfigArgs.builder()
                .maxUnavailable(1)
                .build())
            .build(), CustomResourceOptions.builder()
                .dependsOn(                
                    aws_iam_role_policy_attachment.example-AmazonEKSWorkerNodePolicy(),
                    aws_iam_role_policy_attachment.example-AmazonEKS_CNI_Policy(),
                    aws_iam_role_policy_attachment.example-AmazonEC2ContainerRegistryReadOnly())
                .build());

    }
}
import pulumi
import pulumi_aws as aws

example = aws.eks.NodeGroup("example",
    cluster_name=aws_eks_cluster["example"]["name"],
    node_role_arn=aws_iam_role["example"]["arn"],
    subnet_ids=[__item["id"] for __item in aws_subnet["example"]],
    scaling_config=aws.eks.NodeGroupScalingConfigArgs(
        desired_size=1,
        max_size=2,
        min_size=1,
    ),
    update_config=aws.eks.NodeGroupUpdateConfigArgs(
        max_unavailable=1,
    ),
    opts=pulumi.ResourceOptions(depends_on=[
            aws_iam_role_policy_attachment["example-AmazonEKSWorkerNodePolicy"],
            aws_iam_role_policy_attachment["example-AmazonEKS_CNI_Policy"],
            aws_iam_role_policy_attachment["example-AmazonEC2ContainerRegistryReadOnly"],
        ]))
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.eks.NodeGroup("example", {
    clusterName: aws_eks_cluster.example.name,
    nodeRoleArn: aws_iam_role.example.arn,
    subnetIds: aws_subnet.example.map(__item => __item.id),
    scalingConfig: {
        desiredSize: 1,
        maxSize: 2,
        minSize: 1,
    },
    updateConfig: {
        maxUnavailable: 1,
    },
}, {
    dependsOn: [
        aws_iam_role_policy_attachment["example-AmazonEKSWorkerNodePolicy"],
        aws_iam_role_policy_attachment["example-AmazonEKS_CNI_Policy"],
        aws_iam_role_policy_attachment["example-AmazonEC2ContainerRegistryReadOnly"],
    ],
});

Coming soon!

Ignoring Changes to Desired Size

using System.Collections.Generic;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    // ... other configurations ...
    var example = new Aws.Eks.NodeGroup("example", new()
    {
        ScalingConfig = new Aws.Eks.Inputs.NodeGroupScalingConfigArgs
        {
            DesiredSize = 2,
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/eks"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := eks.NewNodeGroup(ctx, "example", &eks.NodeGroupArgs{
			ScalingConfig: &eks.NodeGroupScalingConfigArgs{
				DesiredSize: pulumi.Int(2),
			},
		})
		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.eks.NodeGroup;
import com.pulumi.aws.eks.NodeGroupArgs;
import com.pulumi.aws.eks.inputs.NodeGroupScalingConfigArgs;
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 NodeGroup("example", NodeGroupArgs.builder()        
            .scalingConfig(NodeGroupScalingConfigArgs.builder()
                .desiredSize(2)
                .build())
            .build());

    }
}
import pulumi
import pulumi_aws as aws

# ... other configurations ...
example = aws.eks.NodeGroup("example", scaling_config=aws.eks.NodeGroupScalingConfigArgs(
    desired_size=2,
))
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

// ... other configurations ...
const example = new aws.eks.NodeGroup("example", {scalingConfig: {
    desiredSize: 2,
}});
resources:
  example:
    type: aws:eks:NodeGroup
    properties:
      scalingConfig:
        desiredSize: 2

Example IAM Role for EKS Node Group

using System.Collections.Generic;
using System.Text.Json;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var example = new Aws.Iam.Role("example", new()
    {
        AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary<string, object?>
        {
            ["Statement"] = new[]
            {
                new Dictionary<string, object?>
                {
                    ["Action"] = "sts:AssumeRole",
                    ["Effect"] = "Allow",
                    ["Principal"] = new Dictionary<string, object?>
                    {
                        ["Service"] = "ec2.amazonaws.com",
                    },
                },
            },
            ["Version"] = "2012-10-17",
        }),
    });

    var example_AmazonEKSWorkerNodePolicy = new Aws.Iam.RolePolicyAttachment("example-AmazonEKSWorkerNodePolicy", new()
    {
        PolicyArn = "arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy",
        Role = example.Name,
    });

    var example_AmazonEKSCNIPolicy = new Aws.Iam.RolePolicyAttachment("example-AmazonEKSCNIPolicy", new()
    {
        PolicyArn = "arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy",
        Role = example.Name,
    });

    var example_AmazonEC2ContainerRegistryReadOnly = new Aws.Iam.RolePolicyAttachment("example-AmazonEC2ContainerRegistryReadOnly", new()
    {
        PolicyArn = "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly",
        Role = example.Name,
    });

});
package main

import (
	"encoding/json"

	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/iam"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		tmpJSON0, err := json.Marshal(map[string]interface{}{
			"Statement": []map[string]interface{}{
				map[string]interface{}{
					"Action": "sts:AssumeRole",
					"Effect": "Allow",
					"Principal": map[string]interface{}{
						"Service": "ec2.amazonaws.com",
					},
				},
			},
			"Version": "2012-10-17",
		})
		if err != nil {
			return err
		}
		json0 := string(tmpJSON0)
		example, err := iam.NewRole(ctx, "example", &iam.RoleArgs{
			AssumeRolePolicy: pulumi.String(json0),
		})
		if err != nil {
			return err
		}
		_, err = iam.NewRolePolicyAttachment(ctx, "example-AmazonEKSWorkerNodePolicy", &iam.RolePolicyAttachmentArgs{
			PolicyArn: pulumi.String("arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy"),
			Role:      example.Name,
		})
		if err != nil {
			return err
		}
		_, err = iam.NewRolePolicyAttachment(ctx, "example-AmazonEKSCNIPolicy", &iam.RolePolicyAttachmentArgs{
			PolicyArn: pulumi.String("arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy"),
			Role:      example.Name,
		})
		if err != nil {
			return err
		}
		_, err = iam.NewRolePolicyAttachment(ctx, "example-AmazonEC2ContainerRegistryReadOnly", &iam.RolePolicyAttachmentArgs{
			PolicyArn: pulumi.String("arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"),
			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.Role;
import com.pulumi.aws.iam.RoleArgs;
import com.pulumi.aws.iam.RolePolicyAttachment;
import com.pulumi.aws.iam.RolePolicyAttachmentArgs;
import static com.pulumi.codegen.internal.Serialization.*;
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 Role("example", RoleArgs.builder()        
            .assumeRolePolicy(serializeJson(
                jsonObject(
                    jsonProperty("Statement", jsonArray(jsonObject(
                        jsonProperty("Action", "sts:AssumeRole"),
                        jsonProperty("Effect", "Allow"),
                        jsonProperty("Principal", jsonObject(
                            jsonProperty("Service", "ec2.amazonaws.com")
                        ))
                    ))),
                    jsonProperty("Version", "2012-10-17")
                )))
            .build());

        var example_AmazonEKSWorkerNodePolicy = new RolePolicyAttachment("example-AmazonEKSWorkerNodePolicy", RolePolicyAttachmentArgs.builder()        
            .policyArn("arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy")
            .role(example.name())
            .build());

        var example_AmazonEKSCNIPolicy = new RolePolicyAttachment("example-AmazonEKSCNIPolicy", RolePolicyAttachmentArgs.builder()        
            .policyArn("arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy")
            .role(example.name())
            .build());

        var example_AmazonEC2ContainerRegistryReadOnly = new RolePolicyAttachment("example-AmazonEC2ContainerRegistryReadOnly", RolePolicyAttachmentArgs.builder()        
            .policyArn("arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly")
            .role(example.name())
            .build());

    }
}
import pulumi
import json
import pulumi_aws as aws

example = aws.iam.Role("example", assume_role_policy=json.dumps({
    "Statement": [{
        "Action": "sts:AssumeRole",
        "Effect": "Allow",
        "Principal": {
            "Service": "ec2.amazonaws.com",
        },
    }],
    "Version": "2012-10-17",
}))
example__amazon_eks_worker_node_policy = aws.iam.RolePolicyAttachment("example-AmazonEKSWorkerNodePolicy",
    policy_arn="arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy",
    role=example.name)
example__amazon_ekscni_policy = aws.iam.RolePolicyAttachment("example-AmazonEKSCNIPolicy",
    policy_arn="arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy",
    role=example.name)
example__amazon_ec2_container_registry_read_only = aws.iam.RolePolicyAttachment("example-AmazonEC2ContainerRegistryReadOnly",
    policy_arn="arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly",
    role=example.name)
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.iam.Role("example", {assumeRolePolicy: JSON.stringify({
    Statement: [{
        Action: "sts:AssumeRole",
        Effect: "Allow",
        Principal: {
            Service: "ec2.amazonaws.com",
        },
    }],
    Version: "2012-10-17",
})});
const example_AmazonEKSWorkerNodePolicy = new aws.iam.RolePolicyAttachment("example-AmazonEKSWorkerNodePolicy", {
    policyArn: "arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy",
    role: example.name,
});
const example_AmazonEKSCNIPolicy = new aws.iam.RolePolicyAttachment("example-AmazonEKSCNIPolicy", {
    policyArn: "arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy",
    role: example.name,
});
const example_AmazonEC2ContainerRegistryReadOnly = new aws.iam.RolePolicyAttachment("example-AmazonEC2ContainerRegistryReadOnly", {
    policyArn: "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly",
    role: example.name,
});
resources:
  example:
    type: aws:iam:Role
    properties:
      assumeRolePolicy:
        fn::toJSON:
          Statement:
            - Action: sts:AssumeRole
              Effect: Allow
              Principal:
                Service: ec2.amazonaws.com
          Version: 2012-10-17
  example-AmazonEKSWorkerNodePolicy:
    type: aws:iam:RolePolicyAttachment
    properties:
      policyArn: arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy
      role: ${example.name}
  example-AmazonEKSCNIPolicy:
    type: aws:iam:RolePolicyAttachment
    properties:
      policyArn: arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy
      role: ${example.name}
  example-AmazonEC2ContainerRegistryReadOnly:
    type: aws:iam:RolePolicyAttachment
    properties:
      policyArn: arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly
      role: ${example.name}

Create NodeGroup Resource

new NodeGroup(name: string, args: NodeGroupArgs, opts?: CustomResourceOptions);
@overload
def NodeGroup(resource_name: str,
              opts: Optional[ResourceOptions] = None,
              ami_type: Optional[str] = None,
              capacity_type: Optional[str] = None,
              cluster_name: Optional[str] = None,
              disk_size: Optional[int] = None,
              force_update_version: Optional[bool] = None,
              instance_types: Optional[Sequence[str]] = None,
              labels: Optional[Mapping[str, str]] = None,
              launch_template: Optional[NodeGroupLaunchTemplateArgs] = None,
              node_group_name: Optional[str] = None,
              node_group_name_prefix: Optional[str] = None,
              node_role_arn: Optional[str] = None,
              release_version: Optional[str] = None,
              remote_access: Optional[NodeGroupRemoteAccessArgs] = None,
              scaling_config: Optional[NodeGroupScalingConfigArgs] = None,
              subnet_ids: Optional[Sequence[str]] = None,
              tags: Optional[Mapping[str, str]] = None,
              taints: Optional[Sequence[NodeGroupTaintArgs]] = None,
              update_config: Optional[NodeGroupUpdateConfigArgs] = None,
              version: Optional[str] = None)
@overload
def NodeGroup(resource_name: str,
              args: NodeGroupArgs,
              opts: Optional[ResourceOptions] = None)
func NewNodeGroup(ctx *Context, name string, args NodeGroupArgs, opts ...ResourceOption) (*NodeGroup, error)
public NodeGroup(string name, NodeGroupArgs args, CustomResourceOptions? opts = null)
public NodeGroup(String name, NodeGroupArgs args)
public NodeGroup(String name, NodeGroupArgs args, CustomResourceOptions options)
type: aws:eks:NodeGroup
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

name string
The unique name of the resource.
args NodeGroupArgs
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 NodeGroupArgs
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 NodeGroupArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name string
The unique name of the resource.
args NodeGroupArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name String
The unique name of the resource.
args NodeGroupArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

NodeGroup 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 NodeGroup resource accepts the following input properties:

ClusterName string

Name of the EKS 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\-_]+$).

NodeRoleArn string

Amazon Resource Name (ARN) of the IAM Role that provides permissions for the EKS Node Group.

ScalingConfig Pulumi.Aws.Eks.Inputs.NodeGroupScalingConfigArgs

Configuration block with scaling settings. Detailed below.

SubnetIds List<string>

Identifiers of EC2 Subnets to associate with the EKS Node Group. These subnets must have the following resource tag: kubernetes.io/cluster/CLUSTER_NAME (where CLUSTER_NAME is replaced with the name of the EKS Cluster).

AmiType string

Type of Amazon Machine Image (AMI) associated with the EKS Node Group. See the AWS documentation for valid values. This provider will only perform drift detection if a configuration value is provided.

CapacityType string

Type of capacity associated with the EKS Node Group. Valid values: ON_DEMAND, SPOT. This provider will only perform drift detection if a configuration value is provided.

DiskSize int

Disk size in GiB for worker nodes. Defaults to 50 for Windows, 20 all other node groups. The provider will only perform drift detection if a configuration value is provided.

ForceUpdateVersion bool

Force version update if existing pods are unable to be drained due to a pod disruption budget issue.

InstanceTypes List<string>

List of instance types associated with the EKS Node Group. Defaults to ["t3.medium"]. The provider will only perform drift detection if a configuration value is provided.

Labels Dictionary<string, string>

Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.

LaunchTemplate Pulumi.Aws.Eks.Inputs.NodeGroupLaunchTemplateArgs

Configuration block with Launch Template settings. Detailed below.

NodeGroupName string

Name of the EKS Node Group. If omitted, the provider will assign a random, unique name. Conflicts with node_group_name_prefix.

NodeGroupNamePrefix string

Creates a unique name beginning with the specified prefix. Conflicts with node_group_name.

ReleaseVersion string

AMI version of the EKS Node Group. Defaults to latest version for Kubernetes version.

RemoteAccess Pulumi.Aws.Eks.Inputs.NodeGroupRemoteAccessArgs

Configuration block with remote access settings. Detailed below.

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.

Taints List<Pulumi.Aws.Eks.Inputs.NodeGroupTaintArgs>

The Kubernetes taints to be applied to the nodes in the node group. Maximum of 50 taints per node group. Detailed below.

UpdateConfig Pulumi.Aws.Eks.Inputs.NodeGroupUpdateConfigArgs
Version string

Kubernetes version. Defaults to EKS Cluster Kubernetes version. The provider will only perform drift detection if a configuration value is provided.

ClusterName string

Name of the EKS 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\-_]+$).

NodeRoleArn string

Amazon Resource Name (ARN) of the IAM Role that provides permissions for the EKS Node Group.

ScalingConfig NodeGroupScalingConfigArgs

Configuration block with scaling settings. Detailed below.

SubnetIds []string

Identifiers of EC2 Subnets to associate with the EKS Node Group. These subnets must have the following resource tag: kubernetes.io/cluster/CLUSTER_NAME (where CLUSTER_NAME is replaced with the name of the EKS Cluster).

AmiType string

Type of Amazon Machine Image (AMI) associated with the EKS Node Group. See the AWS documentation for valid values. This provider will only perform drift detection if a configuration value is provided.

CapacityType string

Type of capacity associated with the EKS Node Group. Valid values: ON_DEMAND, SPOT. This provider will only perform drift detection if a configuration value is provided.

DiskSize int

Disk size in GiB for worker nodes. Defaults to 50 for Windows, 20 all other node groups. The provider will only perform drift detection if a configuration value is provided.

ForceUpdateVersion bool

Force version update if existing pods are unable to be drained due to a pod disruption budget issue.

InstanceTypes []string

List of instance types associated with the EKS Node Group. Defaults to ["t3.medium"]. The provider will only perform drift detection if a configuration value is provided.

Labels map[string]string

Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.

LaunchTemplate NodeGroupLaunchTemplateArgs

Configuration block with Launch Template settings. Detailed below.

NodeGroupName string

Name of the EKS Node Group. If omitted, the provider will assign a random, unique name. Conflicts with node_group_name_prefix.

NodeGroupNamePrefix string

Creates a unique name beginning with the specified prefix. Conflicts with node_group_name.

ReleaseVersion string

AMI version of the EKS Node Group. Defaults to latest version for Kubernetes version.

RemoteAccess NodeGroupRemoteAccessArgs

Configuration block with remote access settings. Detailed below.

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.

Taints []NodeGroupTaintArgs

The Kubernetes taints to be applied to the nodes in the node group. Maximum of 50 taints per node group. Detailed below.

UpdateConfig NodeGroupUpdateConfigArgs
Version string

Kubernetes version. Defaults to EKS Cluster Kubernetes version. The provider will only perform drift detection if a configuration value is provided.

clusterName String

Name of the EKS 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\-_]+$).

nodeRoleArn String

Amazon Resource Name (ARN) of the IAM Role that provides permissions for the EKS Node Group.

scalingConfig NodeGroupScalingConfigArgs

Configuration block with scaling settings. Detailed below.

subnetIds List<String>

Identifiers of EC2 Subnets to associate with the EKS Node Group. These subnets must have the following resource tag: kubernetes.io/cluster/CLUSTER_NAME (where CLUSTER_NAME is replaced with the name of the EKS Cluster).

amiType String

Type of Amazon Machine Image (AMI) associated with the EKS Node Group. See the AWS documentation for valid values. This provider will only perform drift detection if a configuration value is provided.

capacityType String

Type of capacity associated with the EKS Node Group. Valid values: ON_DEMAND, SPOT. This provider will only perform drift detection if a configuration value is provided.

diskSize Integer

Disk size in GiB for worker nodes. Defaults to 50 for Windows, 20 all other node groups. The provider will only perform drift detection if a configuration value is provided.

forceUpdateVersion Boolean

Force version update if existing pods are unable to be drained due to a pod disruption budget issue.

instanceTypes List<String>

List of instance types associated with the EKS Node Group. Defaults to ["t3.medium"]. The provider will only perform drift detection if a configuration value is provided.

labels Map<String,String>

Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.

launchTemplate NodeGroupLaunchTemplateArgs

Configuration block with Launch Template settings. Detailed below.

nodeGroupName String

Name of the EKS Node Group. If omitted, the provider will assign a random, unique name. Conflicts with node_group_name_prefix.

nodeGroupNamePrefix String

Creates a unique name beginning with the specified prefix. Conflicts with node_group_name.

releaseVersion String

AMI version of the EKS Node Group. Defaults to latest version for Kubernetes version.

remoteAccess NodeGroupRemoteAccessArgs

Configuration block with remote access settings. Detailed below.

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.

taints List<NodeGroupTaintArgs>

The Kubernetes taints to be applied to the nodes in the node group. Maximum of 50 taints per node group. Detailed below.

updateConfig NodeGroupUpdateConfigArgs
version String

Kubernetes version. Defaults to EKS Cluster Kubernetes version. The provider will only perform drift detection if a configuration value is provided.

clusterName string

Name of the EKS 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\-_]+$).

nodeRoleArn string

Amazon Resource Name (ARN) of the IAM Role that provides permissions for the EKS Node Group.

scalingConfig NodeGroupScalingConfigArgs

Configuration block with scaling settings. Detailed below.

subnetIds string[]

Identifiers of EC2 Subnets to associate with the EKS Node Group. These subnets must have the following resource tag: kubernetes.io/cluster/CLUSTER_NAME (where CLUSTER_NAME is replaced with the name of the EKS Cluster).

amiType string

Type of Amazon Machine Image (AMI) associated with the EKS Node Group. See the AWS documentation for valid values. This provider will only perform drift detection if a configuration value is provided.

capacityType string

Type of capacity associated with the EKS Node Group. Valid values: ON_DEMAND, SPOT. This provider will only perform drift detection if a configuration value is provided.

diskSize number

Disk size in GiB for worker nodes. Defaults to 50 for Windows, 20 all other node groups. The provider will only perform drift detection if a configuration value is provided.

forceUpdateVersion boolean

Force version update if existing pods are unable to be drained due to a pod disruption budget issue.

instanceTypes string[]

List of instance types associated with the EKS Node Group. Defaults to ["t3.medium"]. The provider will only perform drift detection if a configuration value is provided.

labels {[key: string]: string}

Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.

launchTemplate NodeGroupLaunchTemplateArgs

Configuration block with Launch Template settings. Detailed below.

nodeGroupName string

Name of the EKS Node Group. If omitted, the provider will assign a random, unique name. Conflicts with node_group_name_prefix.

nodeGroupNamePrefix string

Creates a unique name beginning with the specified prefix. Conflicts with node_group_name.

releaseVersion string

AMI version of the EKS Node Group. Defaults to latest version for Kubernetes version.

remoteAccess NodeGroupRemoteAccessArgs

Configuration block with remote access settings. Detailed below.

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.

taints NodeGroupTaintArgs[]

The Kubernetes taints to be applied to the nodes in the node group. Maximum of 50 taints per node group. Detailed below.

updateConfig NodeGroupUpdateConfigArgs
version string

Kubernetes version. Defaults to EKS Cluster Kubernetes version. The provider will only perform drift detection if a configuration value is provided.

cluster_name str

Name of the EKS 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\-_]+$).

node_role_arn str

Amazon Resource Name (ARN) of the IAM Role that provides permissions for the EKS Node Group.

scaling_config NodeGroupScalingConfigArgs

Configuration block with scaling settings. Detailed below.

subnet_ids Sequence[str]

Identifiers of EC2 Subnets to associate with the EKS Node Group. These subnets must have the following resource tag: kubernetes.io/cluster/CLUSTER_NAME (where CLUSTER_NAME is replaced with the name of the EKS Cluster).

ami_type str

Type of Amazon Machine Image (AMI) associated with the EKS Node Group. See the AWS documentation for valid values. This provider will only perform drift detection if a configuration value is provided.

capacity_type str

Type of capacity associated with the EKS Node Group. Valid values: ON_DEMAND, SPOT. This provider will only perform drift detection if a configuration value is provided.

disk_size int

Disk size in GiB for worker nodes. Defaults to 50 for Windows, 20 all other node groups. The provider will only perform drift detection if a configuration value is provided.

force_update_version bool

Force version update if existing pods are unable to be drained due to a pod disruption budget issue.

instance_types Sequence[str]

List of instance types associated with the EKS Node Group. Defaults to ["t3.medium"]. The provider will only perform drift detection if a configuration value is provided.

labels Mapping[str, str]

Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.

launch_template NodeGroupLaunchTemplateArgs

Configuration block with Launch Template settings. Detailed below.

node_group_name str

Name of the EKS Node Group. If omitted, the provider will assign a random, unique name. Conflicts with node_group_name_prefix.

node_group_name_prefix str

Creates a unique name beginning with the specified prefix. Conflicts with node_group_name.

release_version str

AMI version of the EKS Node Group. Defaults to latest version for Kubernetes version.

remote_access NodeGroupRemoteAccessArgs

Configuration block with remote access settings. Detailed below.

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.

taints Sequence[NodeGroupTaintArgs]

The Kubernetes taints to be applied to the nodes in the node group. Maximum of 50 taints per node group. Detailed below.

update_config NodeGroupUpdateConfigArgs
version str

Kubernetes version. Defaults to EKS Cluster Kubernetes version. The provider will only perform drift detection if a configuration value is provided.

clusterName String

Name of the EKS 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\-_]+$).

nodeRoleArn String

Amazon Resource Name (ARN) of the IAM Role that provides permissions for the EKS Node Group.

scalingConfig Property Map

Configuration block with scaling settings. Detailed below.

subnetIds List<String>

Identifiers of EC2 Subnets to associate with the EKS Node Group. These subnets must have the following resource tag: kubernetes.io/cluster/CLUSTER_NAME (where CLUSTER_NAME is replaced with the name of the EKS Cluster).

amiType String

Type of Amazon Machine Image (AMI) associated with the EKS Node Group. See the AWS documentation for valid values. This provider will only perform drift detection if a configuration value is provided.

capacityType String

Type of capacity associated with the EKS Node Group. Valid values: ON_DEMAND, SPOT. This provider will only perform drift detection if a configuration value is provided.

diskSize Number

Disk size in GiB for worker nodes. Defaults to 50 for Windows, 20 all other node groups. The provider will only perform drift detection if a configuration value is provided.

forceUpdateVersion Boolean

Force version update if existing pods are unable to be drained due to a pod disruption budget issue.

instanceTypes List<String>

List of instance types associated with the EKS Node Group. Defaults to ["t3.medium"]. The provider will only perform drift detection if a configuration value is provided.

labels Map<String>

Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.

launchTemplate Property Map

Configuration block with Launch Template settings. Detailed below.

nodeGroupName String

Name of the EKS Node Group. If omitted, the provider will assign a random, unique name. Conflicts with node_group_name_prefix.

nodeGroupNamePrefix String

Creates a unique name beginning with the specified prefix. Conflicts with node_group_name.

releaseVersion String

AMI version of the EKS Node Group. Defaults to latest version for Kubernetes version.

remoteAccess Property Map

Configuration block with remote access settings. Detailed below.

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.

taints List<Property Map>

The Kubernetes taints to be applied to the nodes in the node group. Maximum of 50 taints per node group. Detailed below.

updateConfig Property Map
version String

Kubernetes version. Defaults to EKS Cluster Kubernetes version. The provider will only perform drift detection if a configuration value is provided.

Outputs

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

Arn string

Amazon Resource Name (ARN) of the EKS Node Group.

Id string

The provider-assigned unique ID for this managed resource.

Resources List<Pulumi.Aws.Eks.Outputs.NodeGroupResource>

List of objects containing information about underlying resources.

Status string

Status of the EKS Node Group.

TagsAll Dictionary<string, string>

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

Arn string

Amazon Resource Name (ARN) of the EKS Node Group.

Id string

The provider-assigned unique ID for this managed resource.

Resources []NodeGroupResource

List of objects containing information about underlying resources.

Status string

Status of the EKS Node Group.

TagsAll map[string]string

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

arn String

Amazon Resource Name (ARN) of the EKS Node Group.

id String

The provider-assigned unique ID for this managed resource.

resources List<NodeGroupResource>

List of objects containing information about underlying resources.

status String

Status of the EKS Node Group.

tagsAll Map<String,String>

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

arn string

Amazon Resource Name (ARN) of the EKS Node Group.

id string

The provider-assigned unique ID for this managed resource.

resources NodeGroupResource[]

List of objects containing information about underlying resources.

status string

Status of the EKS Node Group.

tagsAll {[key: string]: string}

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

arn str

Amazon Resource Name (ARN) of the EKS Node Group.

id str

The provider-assigned unique ID for this managed resource.

resources Sequence[NodeGroupResource]

List of objects containing information about underlying resources.

status str

Status of the EKS Node Group.

tags_all Mapping[str, str]

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

arn String

Amazon Resource Name (ARN) of the EKS Node Group.

id String

The provider-assigned unique ID for this managed resource.

resources List<Property Map>

List of objects containing information about underlying resources.

status String

Status of the EKS Node Group.

tagsAll Map<String>

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

Look up Existing NodeGroup Resource

Get an existing NodeGroup 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?: NodeGroupState, opts?: CustomResourceOptions): NodeGroup
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        ami_type: Optional[str] = None,
        arn: Optional[str] = None,
        capacity_type: Optional[str] = None,
        cluster_name: Optional[str] = None,
        disk_size: Optional[int] = None,
        force_update_version: Optional[bool] = None,
        instance_types: Optional[Sequence[str]] = None,
        labels: Optional[Mapping[str, str]] = None,
        launch_template: Optional[NodeGroupLaunchTemplateArgs] = None,
        node_group_name: Optional[str] = None,
        node_group_name_prefix: Optional[str] = None,
        node_role_arn: Optional[str] = None,
        release_version: Optional[str] = None,
        remote_access: Optional[NodeGroupRemoteAccessArgs] = None,
        resources: Optional[Sequence[NodeGroupResourceArgs]] = None,
        scaling_config: Optional[NodeGroupScalingConfigArgs] = None,
        status: Optional[str] = None,
        subnet_ids: Optional[Sequence[str]] = None,
        tags: Optional[Mapping[str, str]] = None,
        tags_all: Optional[Mapping[str, str]] = None,
        taints: Optional[Sequence[NodeGroupTaintArgs]] = None,
        update_config: Optional[NodeGroupUpdateConfigArgs] = None,
        version: Optional[str] = None) -> NodeGroup
func GetNodeGroup(ctx *Context, name string, id IDInput, state *NodeGroupState, opts ...ResourceOption) (*NodeGroup, error)
public static NodeGroup Get(string name, Input<string> id, NodeGroupState? state, CustomResourceOptions? opts = null)
public static NodeGroup get(String name, Output<String> id, NodeGroupState 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:
AmiType string

Type of Amazon Machine Image (AMI) associated with the EKS Node Group. See the AWS documentation for valid values. This provider will only perform drift detection if a configuration value is provided.

Arn string

Amazon Resource Name (ARN) of the EKS Node Group.

CapacityType string

Type of capacity associated with the EKS Node Group. Valid values: ON_DEMAND, SPOT. This provider will only perform drift detection if a configuration value is provided.

ClusterName string

Name of the EKS 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\-_]+$).

DiskSize int

Disk size in GiB for worker nodes. Defaults to 50 for Windows, 20 all other node groups. The provider will only perform drift detection if a configuration value is provided.

ForceUpdateVersion bool

Force version update if existing pods are unable to be drained due to a pod disruption budget issue.

InstanceTypes List<string>

List of instance types associated with the EKS Node Group. Defaults to ["t3.medium"]. The provider will only perform drift detection if a configuration value is provided.

Labels Dictionary<string, string>

Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.

LaunchTemplate Pulumi.Aws.Eks.Inputs.NodeGroupLaunchTemplateArgs

Configuration block with Launch Template settings. Detailed below.

NodeGroupName string

Name of the EKS Node Group. If omitted, the provider will assign a random, unique name. Conflicts with node_group_name_prefix.

NodeGroupNamePrefix string

Creates a unique name beginning with the specified prefix. Conflicts with node_group_name.

NodeRoleArn string

Amazon Resource Name (ARN) of the IAM Role that provides permissions for the EKS Node Group.

ReleaseVersion string

AMI version of the EKS Node Group. Defaults to latest version for Kubernetes version.

RemoteAccess Pulumi.Aws.Eks.Inputs.NodeGroupRemoteAccessArgs

Configuration block with remote access settings. Detailed below.

Resources List<Pulumi.Aws.Eks.Inputs.NodeGroupResourceArgs>

List of objects containing information about underlying resources.

ScalingConfig Pulumi.Aws.Eks.Inputs.NodeGroupScalingConfigArgs

Configuration block with scaling settings. Detailed below.

Status string

Status of the EKS Node Group.

SubnetIds List<string>

Identifiers of EC2 Subnets to associate with the EKS Node Group. These subnets must have the following resource tag: kubernetes.io/cluster/CLUSTER_NAME (where CLUSTER_NAME is replaced with the name of the EKS Cluster).

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>

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

Taints List<Pulumi.Aws.Eks.Inputs.NodeGroupTaintArgs>

The Kubernetes taints to be applied to the nodes in the node group. Maximum of 50 taints per node group. Detailed below.

UpdateConfig Pulumi.Aws.Eks.Inputs.NodeGroupUpdateConfigArgs
Version string

Kubernetes version. Defaults to EKS Cluster Kubernetes version. The provider will only perform drift detection if a configuration value is provided.

AmiType string

Type of Amazon Machine Image (AMI) associated with the EKS Node Group. See the AWS documentation for valid values. This provider will only perform drift detection if a configuration value is provided.

Arn string

Amazon Resource Name (ARN) of the EKS Node Group.

CapacityType string

Type of capacity associated with the EKS Node Group. Valid values: ON_DEMAND, SPOT. This provider will only perform drift detection if a configuration value is provided.

ClusterName string

Name of the EKS 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\-_]+$).

DiskSize int

Disk size in GiB for worker nodes. Defaults to 50 for Windows, 20 all other node groups. The provider will only perform drift detection if a configuration value is provided.

ForceUpdateVersion bool

Force version update if existing pods are unable to be drained due to a pod disruption budget issue.

InstanceTypes []string

List of instance types associated with the EKS Node Group. Defaults to ["t3.medium"]. The provider will only perform drift detection if a configuration value is provided.

Labels map[string]string

Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.

LaunchTemplate NodeGroupLaunchTemplateArgs

Configuration block with Launch Template settings. Detailed below.

NodeGroupName string

Name of the EKS Node Group. If omitted, the provider will assign a random, unique name. Conflicts with node_group_name_prefix.

NodeGroupNamePrefix string

Creates a unique name beginning with the specified prefix. Conflicts with node_group_name.

NodeRoleArn string

Amazon Resource Name (ARN) of the IAM Role that provides permissions for the EKS Node Group.

ReleaseVersion string

AMI version of the EKS Node Group. Defaults to latest version for Kubernetes version.

RemoteAccess NodeGroupRemoteAccessArgs

Configuration block with remote access settings. Detailed below.

Resources []NodeGroupResourceArgs

List of objects containing information about underlying resources.

ScalingConfig NodeGroupScalingConfigArgs

Configuration block with scaling settings. Detailed below.

Status string

Status of the EKS Node Group.

SubnetIds []string

Identifiers of EC2 Subnets to associate with the EKS Node Group. These subnets must have the following resource tag: kubernetes.io/cluster/CLUSTER_NAME (where CLUSTER_NAME is replaced with the name of the EKS Cluster).

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

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

Taints []NodeGroupTaintArgs

The Kubernetes taints to be applied to the nodes in the node group. Maximum of 50 taints per node group. Detailed below.

UpdateConfig NodeGroupUpdateConfigArgs
Version string

Kubernetes version. Defaults to EKS Cluster Kubernetes version. The provider will only perform drift detection if a configuration value is provided.

amiType String

Type of Amazon Machine Image (AMI) associated with the EKS Node Group. See the AWS documentation for valid values. This provider will only perform drift detection if a configuration value is provided.

arn String

Amazon Resource Name (ARN) of the EKS Node Group.

capacityType String

Type of capacity associated with the EKS Node Group. Valid values: ON_DEMAND, SPOT. This provider will only perform drift detection if a configuration value is provided.

clusterName String

Name of the EKS 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\-_]+$).

diskSize Integer

Disk size in GiB for worker nodes. Defaults to 50 for Windows, 20 all other node groups. The provider will only perform drift detection if a configuration value is provided.

forceUpdateVersion Boolean

Force version update if existing pods are unable to be drained due to a pod disruption budget issue.

instanceTypes List<String>

List of instance types associated with the EKS Node Group. Defaults to ["t3.medium"]. The provider will only perform drift detection if a configuration value is provided.

labels Map<String,String>

Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.

launchTemplate NodeGroupLaunchTemplateArgs

Configuration block with Launch Template settings. Detailed below.

nodeGroupName String

Name of the EKS Node Group. If omitted, the provider will assign a random, unique name. Conflicts with node_group_name_prefix.

nodeGroupNamePrefix String

Creates a unique name beginning with the specified prefix. Conflicts with node_group_name.

nodeRoleArn String

Amazon Resource Name (ARN) of the IAM Role that provides permissions for the EKS Node Group.

releaseVersion String

AMI version of the EKS Node Group. Defaults to latest version for Kubernetes version.

remoteAccess NodeGroupRemoteAccessArgs

Configuration block with remote access settings. Detailed below.

resources List<NodeGroupResourceArgs>

List of objects containing information about underlying resources.

scalingConfig NodeGroupScalingConfigArgs

Configuration block with scaling settings. Detailed below.

status String

Status of the EKS Node Group.

subnetIds List<String>

Identifiers of EC2 Subnets to associate with the EKS Node Group. These subnets must have the following resource tag: kubernetes.io/cluster/CLUSTER_NAME (where CLUSTER_NAME is replaced with the name of the EKS Cluster).

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>

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

taints List<NodeGroupTaintArgs>

The Kubernetes taints to be applied to the nodes in the node group. Maximum of 50 taints per node group. Detailed below.

updateConfig NodeGroupUpdateConfigArgs
version String

Kubernetes version. Defaults to EKS Cluster Kubernetes version. The provider will only perform drift detection if a configuration value is provided.

amiType string

Type of Amazon Machine Image (AMI) associated with the EKS Node Group. See the AWS documentation for valid values. This provider will only perform drift detection if a configuration value is provided.

arn string

Amazon Resource Name (ARN) of the EKS Node Group.

capacityType string

Type of capacity associated with the EKS Node Group. Valid values: ON_DEMAND, SPOT. This provider will only perform drift detection if a configuration value is provided.

clusterName string

Name of the EKS 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\-_]+$).

diskSize number

Disk size in GiB for worker nodes. Defaults to 50 for Windows, 20 all other node groups. The provider will only perform drift detection if a configuration value is provided.

forceUpdateVersion boolean

Force version update if existing pods are unable to be drained due to a pod disruption budget issue.

instanceTypes string[]

List of instance types associated with the EKS Node Group. Defaults to ["t3.medium"]. The provider will only perform drift detection if a configuration value is provided.

labels {[key: string]: string}

Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.

launchTemplate NodeGroupLaunchTemplateArgs

Configuration block with Launch Template settings. Detailed below.

nodeGroupName string

Name of the EKS Node Group. If omitted, the provider will assign a random, unique name. Conflicts with node_group_name_prefix.

nodeGroupNamePrefix string

Creates a unique name beginning with the specified prefix. Conflicts with node_group_name.

nodeRoleArn string

Amazon Resource Name (ARN) of the IAM Role that provides permissions for the EKS Node Group.

releaseVersion string

AMI version of the EKS Node Group. Defaults to latest version for Kubernetes version.

remoteAccess NodeGroupRemoteAccessArgs

Configuration block with remote access settings. Detailed below.

resources NodeGroupResourceArgs[]

List of objects containing information about underlying resources.

scalingConfig NodeGroupScalingConfigArgs

Configuration block with scaling settings. Detailed below.

status string

Status of the EKS Node Group.

subnetIds string[]

Identifiers of EC2 Subnets to associate with the EKS Node Group. These subnets must have the following resource tag: kubernetes.io/cluster/CLUSTER_NAME (where CLUSTER_NAME is replaced with the name of the EKS Cluster).

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}

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

taints NodeGroupTaintArgs[]

The Kubernetes taints to be applied to the nodes in the node group. Maximum of 50 taints per node group. Detailed below.

updateConfig NodeGroupUpdateConfigArgs
version string

Kubernetes version. Defaults to EKS Cluster Kubernetes version. The provider will only perform drift detection if a configuration value is provided.

ami_type str

Type of Amazon Machine Image (AMI) associated with the EKS Node Group. See the AWS documentation for valid values. This provider will only perform drift detection if a configuration value is provided.

arn str

Amazon Resource Name (ARN) of the EKS Node Group.

capacity_type str

Type of capacity associated with the EKS Node Group. Valid values: ON_DEMAND, SPOT. This provider will only perform drift detection if a configuration value is provided.

cluster_name str

Name of the EKS 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\-_]+$).

disk_size int

Disk size in GiB for worker nodes. Defaults to 50 for Windows, 20 all other node groups. The provider will only perform drift detection if a configuration value is provided.

force_update_version bool

Force version update if existing pods are unable to be drained due to a pod disruption budget issue.

instance_types Sequence[str]

List of instance types associated with the EKS Node Group. Defaults to ["t3.medium"]. The provider will only perform drift detection if a configuration value is provided.

labels Mapping[str, str]

Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.

launch_template NodeGroupLaunchTemplateArgs

Configuration block with Launch Template settings. Detailed below.

node_group_name str

Name of the EKS Node Group. If omitted, the provider will assign a random, unique name. Conflicts with node_group_name_prefix.

node_group_name_prefix str

Creates a unique name beginning with the specified prefix. Conflicts with node_group_name.

node_role_arn str

Amazon Resource Name (ARN) of the IAM Role that provides permissions for the EKS Node Group.

release_version str

AMI version of the EKS Node Group. Defaults to latest version for Kubernetes version.

remote_access NodeGroupRemoteAccessArgs

Configuration block with remote access settings. Detailed below.

resources Sequence[NodeGroupResourceArgs]

List of objects containing information about underlying resources.

scaling_config NodeGroupScalingConfigArgs

Configuration block with scaling settings. Detailed below.

status str

Status of the EKS Node Group.

subnet_ids Sequence[str]

Identifiers of EC2 Subnets to associate with the EKS Node Group. These subnets must have the following resource tag: kubernetes.io/cluster/CLUSTER_NAME (where CLUSTER_NAME is replaced with the name of the EKS Cluster).

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]

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

taints Sequence[NodeGroupTaintArgs]

The Kubernetes taints to be applied to the nodes in the node group. Maximum of 50 taints per node group. Detailed below.

update_config NodeGroupUpdateConfigArgs
version str

Kubernetes version. Defaults to EKS Cluster Kubernetes version. The provider will only perform drift detection if a configuration value is provided.

amiType String

Type of Amazon Machine Image (AMI) associated with the EKS Node Group. See the AWS documentation for valid values. This provider will only perform drift detection if a configuration value is provided.

arn String

Amazon Resource Name (ARN) of the EKS Node Group.

capacityType String

Type of capacity associated with the EKS Node Group. Valid values: ON_DEMAND, SPOT. This provider will only perform drift detection if a configuration value is provided.

clusterName String

Name of the EKS 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\-_]+$).

diskSize Number

Disk size in GiB for worker nodes. Defaults to 50 for Windows, 20 all other node groups. The provider will only perform drift detection if a configuration value is provided.

forceUpdateVersion Boolean

Force version update if existing pods are unable to be drained due to a pod disruption budget issue.

instanceTypes List<String>

List of instance types associated with the EKS Node Group. Defaults to ["t3.medium"]. The provider will only perform drift detection if a configuration value is provided.

labels Map<String>

Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.

launchTemplate Property Map

Configuration block with Launch Template settings. Detailed below.

nodeGroupName String

Name of the EKS Node Group. If omitted, the provider will assign a random, unique name. Conflicts with node_group_name_prefix.

nodeGroupNamePrefix String

Creates a unique name beginning with the specified prefix. Conflicts with node_group_name.

nodeRoleArn String

Amazon Resource Name (ARN) of the IAM Role that provides permissions for the EKS Node Group.

releaseVersion String

AMI version of the EKS Node Group. Defaults to latest version for Kubernetes version.

remoteAccess Property Map

Configuration block with remote access settings. Detailed below.

resources List<Property Map>

List of objects containing information about underlying resources.

scalingConfig Property Map

Configuration block with scaling settings. Detailed below.

status String

Status of the EKS Node Group.

subnetIds List<String>

Identifiers of EC2 Subnets to associate with the EKS Node Group. These subnets must have the following resource tag: kubernetes.io/cluster/CLUSTER_NAME (where CLUSTER_NAME is replaced with the name of the EKS Cluster).

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>

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

taints List<Property Map>

The Kubernetes taints to be applied to the nodes in the node group. Maximum of 50 taints per node group. Detailed below.

updateConfig Property Map
version String

Kubernetes version. Defaults to EKS Cluster Kubernetes version. The provider will only perform drift detection if a configuration value is provided.

Supporting Types

NodeGroupLaunchTemplate

Version string

EC2 Launch Template version number. While the API accepts values like $Default and $Latest, the API will convert the value to the associated version number (e.g., 1) on read and the provider will show a difference on next plan. Using the default_version or latest_version attribute of the aws.ec2.LaunchTemplate resource or data source is recommended for this argument.

Id string

Identifier of the EC2 Launch Template. Conflicts with name.

Name string

Name of the EC2 Launch Template. Conflicts with id.

Version string

EC2 Launch Template version number. While the API accepts values like $Default and $Latest, the API will convert the value to the associated version number (e.g., 1) on read and the provider will show a difference on next plan. Using the default_version or latest_version attribute of the aws.ec2.LaunchTemplate resource or data source is recommended for this argument.

Id string

Identifier of the EC2 Launch Template. Conflicts with name.

Name string

Name of the EC2 Launch Template. Conflicts with id.

version String

EC2 Launch Template version number. While the API accepts values like $Default and $Latest, the API will convert the value to the associated version number (e.g., 1) on read and the provider will show a difference on next plan. Using the default_version or latest_version attribute of the aws.ec2.LaunchTemplate resource or data source is recommended for this argument.

id String

Identifier of the EC2 Launch Template. Conflicts with name.

name String

Name of the EC2 Launch Template. Conflicts with id.

version string

EC2 Launch Template version number. While the API accepts values like $Default and $Latest, the API will convert the value to the associated version number (e.g., 1) on read and the provider will show a difference on next plan. Using the default_version or latest_version attribute of the aws.ec2.LaunchTemplate resource or data source is recommended for this argument.

id string

Identifier of the EC2 Launch Template. Conflicts with name.

name string

Name of the EC2 Launch Template. Conflicts with id.

version str

EC2 Launch Template version number. While the API accepts values like $Default and $Latest, the API will convert the value to the associated version number (e.g., 1) on read and the provider will show a difference on next plan. Using the default_version or latest_version attribute of the aws.ec2.LaunchTemplate resource or data source is recommended for this argument.

id str

Identifier of the EC2 Launch Template. Conflicts with name.

name str

Name of the EC2 Launch Template. Conflicts with id.

version String

EC2 Launch Template version number. While the API accepts values like $Default and $Latest, the API will convert the value to the associated version number (e.g., 1) on read and the provider will show a difference on next plan. Using the default_version or latest_version attribute of the aws.ec2.LaunchTemplate resource or data source is recommended for this argument.

id String

Identifier of the EC2 Launch Template. Conflicts with name.

name String

Name of the EC2 Launch Template. Conflicts with id.

NodeGroupRemoteAccess

Ec2SshKey string

EC2 Key Pair name that provides access for remote communication with the worker nodes in the EKS Node Group. If you specify this configuration, but do not specify source_security_group_ids when you create an EKS Node Group, either port 3389 for Windows, or port 22 for all other operating systems is opened on the worker nodes to the Internet (0.0.0.0/0). For Windows nodes, this will allow you to use RDP, for all others this allows you to SSH into the worker nodes.

SourceSecurityGroupIds List<string>

Set of EC2 Security Group IDs to allow SSH access (port 22) from on the worker nodes. If you specify ec2_ssh_key, but do not specify this configuration when you create an EKS Node Group, port 22 on the worker nodes is opened to the Internet (0.0.0.0/0).

Ec2SshKey string

EC2 Key Pair name that provides access for remote communication with the worker nodes in the EKS Node Group. If you specify this configuration, but do not specify source_security_group_ids when you create an EKS Node Group, either port 3389 for Windows, or port 22 for all other operating systems is opened on the worker nodes to the Internet (0.0.0.0/0). For Windows nodes, this will allow you to use RDP, for all others this allows you to SSH into the worker nodes.

SourceSecurityGroupIds []string

Set of EC2 Security Group IDs to allow SSH access (port 22) from on the worker nodes. If you specify ec2_ssh_key, but do not specify this configuration when you create an EKS Node Group, port 22 on the worker nodes is opened to the Internet (0.0.0.0/0).

ec2SshKey String

EC2 Key Pair name that provides access for remote communication with the worker nodes in the EKS Node Group. If you specify this configuration, but do not specify source_security_group_ids when you create an EKS Node Group, either port 3389 for Windows, or port 22 for all other operating systems is opened on the worker nodes to the Internet (0.0.0.0/0). For Windows nodes, this will allow you to use RDP, for all others this allows you to SSH into the worker nodes.

sourceSecurityGroupIds List<String>

Set of EC2 Security Group IDs to allow SSH access (port 22) from on the worker nodes. If you specify ec2_ssh_key, but do not specify this configuration when you create an EKS Node Group, port 22 on the worker nodes is opened to the Internet (0.0.0.0/0).

ec2SshKey string

EC2 Key Pair name that provides access for remote communication with the worker nodes in the EKS Node Group. If you specify this configuration, but do not specify source_security_group_ids when you create an EKS Node Group, either port 3389 for Windows, or port 22 for all other operating systems is opened on the worker nodes to the Internet (0.0.0.0/0). For Windows nodes, this will allow you to use RDP, for all others this allows you to SSH into the worker nodes.

sourceSecurityGroupIds string[]

Set of EC2 Security Group IDs to allow SSH access (port 22) from on the worker nodes. If you specify ec2_ssh_key, but do not specify this configuration when you create an EKS Node Group, port 22 on the worker nodes is opened to the Internet (0.0.0.0/0).

ec2_ssh_key str

EC2 Key Pair name that provides access for remote communication with the worker nodes in the EKS Node Group. If you specify this configuration, but do not specify source_security_group_ids when you create an EKS Node Group, either port 3389 for Windows, or port 22 for all other operating systems is opened on the worker nodes to the Internet (0.0.0.0/0). For Windows nodes, this will allow you to use RDP, for all others this allows you to SSH into the worker nodes.

source_security_group_ids Sequence[str]

Set of EC2 Security Group IDs to allow SSH access (port 22) from on the worker nodes. If you specify ec2_ssh_key, but do not specify this configuration when you create an EKS Node Group, port 22 on the worker nodes is opened to the Internet (0.0.0.0/0).

ec2SshKey String

EC2 Key Pair name that provides access for remote communication with the worker nodes in the EKS Node Group. If you specify this configuration, but do not specify source_security_group_ids when you create an EKS Node Group, either port 3389 for Windows, or port 22 for all other operating systems is opened on the worker nodes to the Internet (0.0.0.0/0). For Windows nodes, this will allow you to use RDP, for all others this allows you to SSH into the worker nodes.

sourceSecurityGroupIds List<String>

Set of EC2 Security Group IDs to allow SSH access (port 22) from on the worker nodes. If you specify ec2_ssh_key, but do not specify this configuration when you create an EKS Node Group, port 22 on the worker nodes is opened to the Internet (0.0.0.0/0).

NodeGroupResource

AutoscalingGroups List<Pulumi.Aws.Eks.Inputs.NodeGroupResourceAutoscalingGroup>

List of objects containing information about AutoScaling Groups.

RemoteAccessSecurityGroupId string

Identifier of the remote access EC2 Security Group.

AutoscalingGroups []NodeGroupResourceAutoscalingGroup

List of objects containing information about AutoScaling Groups.

RemoteAccessSecurityGroupId string

Identifier of the remote access EC2 Security Group.

autoscalingGroups List<NodeGroupResourceAutoscalingGroup>

List of objects containing information about AutoScaling Groups.

remoteAccessSecurityGroupId String

Identifier of the remote access EC2 Security Group.

autoscalingGroups NodeGroupResourceAutoscalingGroup[]

List of objects containing information about AutoScaling Groups.

remoteAccessSecurityGroupId string

Identifier of the remote access EC2 Security Group.

autoscaling_groups Sequence[NodeGroupResourceAutoscalingGroup]

List of objects containing information about AutoScaling Groups.

remote_access_security_group_id str

Identifier of the remote access EC2 Security Group.

autoscalingGroups List<Property Map>

List of objects containing information about AutoScaling Groups.

remoteAccessSecurityGroupId String

Identifier of the remote access EC2 Security Group.

NodeGroupResourceAutoscalingGroup

Name string

Name of the EC2 Launch Template. Conflicts with id.

Name string

Name of the EC2 Launch Template. Conflicts with id.

name String

Name of the EC2 Launch Template. Conflicts with id.

name string

Name of the EC2 Launch Template. Conflicts with id.

name str

Name of the EC2 Launch Template. Conflicts with id.

name String

Name of the EC2 Launch Template. Conflicts with id.

NodeGroupScalingConfig

DesiredSize int

Desired number of worker nodes.

MaxSize int

Maximum number of worker nodes.

MinSize int

Minimum number of worker nodes.

DesiredSize int

Desired number of worker nodes.

MaxSize int

Maximum number of worker nodes.

MinSize int

Minimum number of worker nodes.

desiredSize Integer

Desired number of worker nodes.

maxSize Integer

Maximum number of worker nodes.

minSize Integer

Minimum number of worker nodes.

desiredSize number

Desired number of worker nodes.

maxSize number

Maximum number of worker nodes.

minSize number

Minimum number of worker nodes.

desired_size int

Desired number of worker nodes.

max_size int

Maximum number of worker nodes.

min_size int

Minimum number of worker nodes.

desiredSize Number

Desired number of worker nodes.

maxSize Number

Maximum number of worker nodes.

minSize Number

Minimum number of worker nodes.

NodeGroupTaint

Effect string

The effect of the taint. Valid values: NO_SCHEDULE, NO_EXECUTE, PREFER_NO_SCHEDULE.

Key string

The key of the taint. Maximum length of 63.

Value string

The value of the taint. Maximum length of 63.

Effect string

The effect of the taint. Valid values: NO_SCHEDULE, NO_EXECUTE, PREFER_NO_SCHEDULE.

Key string

The key of the taint. Maximum length of 63.

Value string

The value of the taint. Maximum length of 63.

effect String

The effect of the taint. Valid values: NO_SCHEDULE, NO_EXECUTE, PREFER_NO_SCHEDULE.

key String

The key of the taint. Maximum length of 63.

value String

The value of the taint. Maximum length of 63.

effect string

The effect of the taint. Valid values: NO_SCHEDULE, NO_EXECUTE, PREFER_NO_SCHEDULE.

key string

The key of the taint. Maximum length of 63.

value string

The value of the taint. Maximum length of 63.

effect str

The effect of the taint. Valid values: NO_SCHEDULE, NO_EXECUTE, PREFER_NO_SCHEDULE.

key str

The key of the taint. Maximum length of 63.

value str

The value of the taint. Maximum length of 63.

effect String

The effect of the taint. Valid values: NO_SCHEDULE, NO_EXECUTE, PREFER_NO_SCHEDULE.

key String

The key of the taint. Maximum length of 63.

value String

The value of the taint. Maximum length of 63.

NodeGroupUpdateConfig

MaxUnavailable int

Desired max number of unavailable worker nodes during node group update.

MaxUnavailablePercentage int

Desired max percentage of unavailable worker nodes during node group update.

MaxUnavailable int

Desired max number of unavailable worker nodes during node group update.

MaxUnavailablePercentage int

Desired max percentage of unavailable worker nodes during node group update.

maxUnavailable Integer

Desired max number of unavailable worker nodes during node group update.

maxUnavailablePercentage Integer

Desired max percentage of unavailable worker nodes during node group update.

maxUnavailable number

Desired max number of unavailable worker nodes during node group update.

maxUnavailablePercentage number

Desired max percentage of unavailable worker nodes during node group update.

max_unavailable int

Desired max number of unavailable worker nodes during node group update.

max_unavailable_percentage int

Desired max percentage of unavailable worker nodes during node group update.

maxUnavailable Number

Desired max number of unavailable worker nodes during node group update.

maxUnavailablePercentage Number

Desired max percentage of unavailable worker nodes during node group update.

Import

EKS Node Groups can be imported using the cluster_name and node_group_name separated by a colon (:), e.g.,

 $ pulumi import aws:eks/nodeGroup:NodeGroup my_node_group my_cluster:my_node_group

Package Details

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

This Pulumi package is based on the aws Terraform Provider.