1. Packages
  2. AWS Native
  3. API Docs
  4. eks
  5. Nodegroup

AWS Native is in preview. AWS Classic is fully supported.

AWS Native v0.102.0 published on Tuesday, Apr 16, 2024 by Pulumi

aws-native.eks.Nodegroup

Explore with Pulumi AI

aws-native logo

AWS Native is in preview. AWS Classic is fully supported.

AWS Native v0.102.0 published on Tuesday, Apr 16, 2024 by Pulumi

    Resource schema for AWS::EKS::Nodegroup

    Example Usage

    Example

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AwsNative = Pulumi.AwsNative;
    
    return await Deployment.RunAsync(() => 
    {
        var eksNodegroup = new AwsNative.Eks.Nodegroup("eksNodegroup", new()
        {
            ClusterName = "prod",
            NodeRole = "arn:aws:iam::012345678910:role/eksInstanceRole",
            ScalingConfig = new AwsNative.Eks.Inputs.NodegroupScalingConfigArgs
            {
                MinSize = 3,
                DesiredSize = 5,
                MaxSize = 7,
            },
            Labels = 
            {
                { "key1", "Value1" },
                { "key2", "Value2" },
            },
            Subnets = new[]
            {
                "subnet-6782e71e",
                "subnet-e7e761ac",
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws-native/sdk/go/aws/eks"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := eks.NewNodegroup(ctx, "eksNodegroup", &eks.NodegroupArgs{
    			ClusterName: pulumi.String("prod"),
    			NodeRole:    pulumi.String("arn:aws:iam::012345678910:role/eksInstanceRole"),
    			ScalingConfig: &eks.NodegroupScalingConfigArgs{
    				MinSize:     pulumi.Int(3),
    				DesiredSize: pulumi.Int(5),
    				MaxSize:     pulumi.Int(7),
    			},
    			Labels: pulumi.StringMap{
    				"key1": pulumi.String("Value1"),
    				"key2": pulumi.String("Value2"),
    			},
    			Subnets: pulumi.StringArray{
    				pulumi.String("subnet-6782e71e"),
    				pulumi.String("subnet-e7e761ac"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    

    Coming soon!

    import pulumi
    import pulumi_aws_native as aws_native
    
    eks_nodegroup = aws_native.eks.Nodegroup("eksNodegroup",
        cluster_name="prod",
        node_role="arn:aws:iam::012345678910:role/eksInstanceRole",
        scaling_config=aws_native.eks.NodegroupScalingConfigArgs(
            min_size=3,
            desired_size=5,
            max_size=7,
        ),
        labels={
            "key1": "Value1",
            "key2": "Value2",
        },
        subnets=[
            "subnet-6782e71e",
            "subnet-e7e761ac",
        ])
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws_native from "@pulumi/aws-native";
    
    const eksNodegroup = new aws_native.eks.Nodegroup("eksNodegroup", {
        clusterName: "prod",
        nodeRole: "arn:aws:iam::012345678910:role/eksInstanceRole",
        scalingConfig: {
            minSize: 3,
            desiredSize: 5,
            maxSize: 7,
        },
        labels: {
            key1: "Value1",
            key2: "Value2",
        },
        subnets: [
            "subnet-6782e71e",
            "subnet-e7e761ac",
        ],
    });
    

    Coming soon!

    Example

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AwsNative = Pulumi.AwsNative;
    
    return await Deployment.RunAsync(() => 
    {
        var eksNodegroup = new AwsNative.Eks.Nodegroup("eksNodegroup", new()
        {
            ClusterName = "prod",
            NodeRole = "arn:aws:iam::012345678910:role/eksInstanceRole",
            ScalingConfig = new AwsNative.Eks.Inputs.NodegroupScalingConfigArgs
            {
                MinSize = 3,
                DesiredSize = 5,
                MaxSize = 7,
            },
            Labels = 
            {
                { "key1", "Value1" },
                { "key2", "Value2" },
            },
            Subnets = new[]
            {
                "subnet-6782e71e",
                "subnet-e7e761ac",
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws-native/sdk/go/aws/eks"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := eks.NewNodegroup(ctx, "eksNodegroup", &eks.NodegroupArgs{
    			ClusterName: pulumi.String("prod"),
    			NodeRole:    pulumi.String("arn:aws:iam::012345678910:role/eksInstanceRole"),
    			ScalingConfig: &eks.NodegroupScalingConfigArgs{
    				MinSize:     pulumi.Int(3),
    				DesiredSize: pulumi.Int(5),
    				MaxSize:     pulumi.Int(7),
    			},
    			Labels: pulumi.StringMap{
    				"key1": pulumi.String("Value1"),
    				"key2": pulumi.String("Value2"),
    			},
    			Subnets: pulumi.StringArray{
    				pulumi.String("subnet-6782e71e"),
    				pulumi.String("subnet-e7e761ac"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    

    Coming soon!

    import pulumi
    import pulumi_aws_native as aws_native
    
    eks_nodegroup = aws_native.eks.Nodegroup("eksNodegroup",
        cluster_name="prod",
        node_role="arn:aws:iam::012345678910:role/eksInstanceRole",
        scaling_config=aws_native.eks.NodegroupScalingConfigArgs(
            min_size=3,
            desired_size=5,
            max_size=7,
        ),
        labels={
            "key1": "Value1",
            "key2": "Value2",
        },
        subnets=[
            "subnet-6782e71e",
            "subnet-e7e761ac",
        ])
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws_native from "@pulumi/aws-native";
    
    const eksNodegroup = new aws_native.eks.Nodegroup("eksNodegroup", {
        clusterName: "prod",
        nodeRole: "arn:aws:iam::012345678910:role/eksInstanceRole",
        scalingConfig: {
            minSize: 3,
            desiredSize: 5,
            maxSize: 7,
        },
        labels: {
            key1: "Value1",
            key2: "Value2",
        },
        subnets: [
            "subnet-6782e71e",
            "subnet-e7e761ac",
        ],
    });
    

    Coming soon!

    Create Nodegroup Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Nodegroup(name: string, args: NodegroupArgs, opts?: CustomResourceOptions);
    @overload
    def Nodegroup(resource_name: str,
                  args: NodegroupArgs,
                  opts: Optional[ResourceOptions] = None)
    
    @overload
    def Nodegroup(resource_name: str,
                  opts: Optional[ResourceOptions] = None,
                  node_role: Optional[str] = None,
                  subnets: Optional[Sequence[str]] = None,
                  cluster_name: Optional[str] = None,
                  force_update_enabled: Optional[bool] = None,
                  release_version: Optional[str] = None,
                  instance_types: Optional[Sequence[str]] = None,
                  labels: Optional[Mapping[str, str]] = None,
                  launch_template: Optional[NodegroupLaunchTemplateSpecificationArgs] = None,
                  disk_size: Optional[int] = None,
                  nodegroup_name: Optional[str] = None,
                  ami_type: Optional[str] = None,
                  remote_access: Optional[NodegroupRemoteAccessArgs] = None,
                  scaling_config: Optional[NodegroupScalingConfigArgs] = None,
                  capacity_type: Optional[str] = None,
                  tags: Optional[Mapping[str, str]] = None,
                  taints: Optional[Sequence[NodegroupTaintArgs]] = None,
                  update_config: Optional[NodegroupUpdateConfigArgs] = None,
                  version: Optional[str] = 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-native:eks:Nodegroup
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    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.

    Example

    The following reference example uses placeholder values for all input properties.

    Coming soon!
    
    Coming soon!
    
    Coming soon!
    
    Coming soon!
    
    const nodegroupResource = new aws_native.eks.Nodegroup("nodegroupResource", {
        nodeRole: "string",
        subnets: ["string"],
        clusterName: "string",
        forceUpdateEnabled: false,
        releaseVersion: "string",
        instanceTypes: ["string"],
        labels: {
            string: "string",
        },
        launchTemplate: {
            id: "string",
            name: "string",
            version: "string",
        },
        diskSize: 0,
        nodegroupName: "string",
        amiType: "string",
        remoteAccess: {
            ec2SshKey: "string",
            sourceSecurityGroups: ["string"],
        },
        scalingConfig: {
            desiredSize: 0,
            maxSize: 0,
            minSize: 0,
        },
        capacityType: "string",
        tags: {
            string: "string",
        },
        taints: [{
            effect: "string",
            key: "string",
            value: "string",
        }],
        updateConfig: {
            maxUnavailable: 0,
            maxUnavailablePercentage: 0,
        },
        version: "string",
    });
    
    Coming soon!
    

    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 cluster to create the node group in.
    NodeRole string
    The Amazon Resource Name (ARN) of the IAM role to associate with your node group.
    Subnets List<string>
    The subnets to use for the Auto Scaling group that is created for your node group.
    AmiType string
    The AMI type for your node group.
    CapacityType string
    The capacity type of your managed node group.
    DiskSize int
    The root device disk size (in GiB) for your node group instances.
    ForceUpdateEnabled bool
    Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue.
    InstanceTypes List<string>
    Specify the instance types for a node group.
    Labels Dictionary<string, string>
    The Kubernetes labels to be applied to the nodes in the node group when they are created.
    LaunchTemplate Pulumi.AwsNative.Eks.Inputs.NodegroupLaunchTemplateSpecification
    An object representing a node group's launch template specification.
    NodegroupName string
    The unique name to give your node group.
    ReleaseVersion string
    The AMI version of the Amazon EKS-optimized AMI to use with your node group.
    RemoteAccess Pulumi.AwsNative.Eks.Inputs.NodegroupRemoteAccess
    The remote access (SSH) configuration to use with your node group.
    ScalingConfig Pulumi.AwsNative.Eks.Inputs.NodegroupScalingConfig
    The scaling configuration details for the Auto Scaling group that is created for your node group.
    Tags Dictionary<string, string>
    The metadata, as key-value pairs, to apply to the node group to assist with categorization and organization. Follows same schema as Labels for consistency.
    Taints List<Pulumi.AwsNative.Eks.Inputs.NodegroupTaint>
    The Kubernetes taints to be applied to the nodes in the node group when they are created.
    UpdateConfig Pulumi.AwsNative.Eks.Inputs.NodegroupUpdateConfig
    The node group update configuration.
    Version string
    The Kubernetes version to use for your managed nodes.
    ClusterName string
    Name of the cluster to create the node group in.
    NodeRole string
    The Amazon Resource Name (ARN) of the IAM role to associate with your node group.
    Subnets []string
    The subnets to use for the Auto Scaling group that is created for your node group.
    AmiType string
    The AMI type for your node group.
    CapacityType string
    The capacity type of your managed node group.
    DiskSize int
    The root device disk size (in GiB) for your node group instances.
    ForceUpdateEnabled bool
    Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue.
    InstanceTypes []string
    Specify the instance types for a node group.
    Labels map[string]string
    The Kubernetes labels to be applied to the nodes in the node group when they are created.
    LaunchTemplate NodegroupLaunchTemplateSpecificationArgs
    An object representing a node group's launch template specification.
    NodegroupName string
    The unique name to give your node group.
    ReleaseVersion string
    The AMI version of the Amazon EKS-optimized AMI to use with your node group.
    RemoteAccess NodegroupRemoteAccessArgs
    The remote access (SSH) configuration to use with your node group.
    ScalingConfig NodegroupScalingConfigArgs
    The scaling configuration details for the Auto Scaling group that is created for your node group.
    Tags map[string]string
    The metadata, as key-value pairs, to apply to the node group to assist with categorization and organization. Follows same schema as Labels for consistency.
    Taints []NodegroupTaintArgs
    The Kubernetes taints to be applied to the nodes in the node group when they are created.
    UpdateConfig NodegroupUpdateConfigArgs
    The node group update configuration.
    Version string
    The Kubernetes version to use for your managed nodes.
    clusterName String
    Name of the cluster to create the node group in.
    nodeRole String
    The Amazon Resource Name (ARN) of the IAM role to associate with your node group.
    subnets List<String>
    The subnets to use for the Auto Scaling group that is created for your node group.
    amiType String
    The AMI type for your node group.
    capacityType String
    The capacity type of your managed node group.
    diskSize Integer
    The root device disk size (in GiB) for your node group instances.
    forceUpdateEnabled Boolean
    Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue.
    instanceTypes List<String>
    Specify the instance types for a node group.
    labels Map<String,String>
    The Kubernetes labels to be applied to the nodes in the node group when they are created.
    launchTemplate NodegroupLaunchTemplateSpecification
    An object representing a node group's launch template specification.
    nodegroupName String
    The unique name to give your node group.
    releaseVersion String
    The AMI version of the Amazon EKS-optimized AMI to use with your node group.
    remoteAccess NodegroupRemoteAccess
    The remote access (SSH) configuration to use with your node group.
    scalingConfig NodegroupScalingConfig
    The scaling configuration details for the Auto Scaling group that is created for your node group.
    tags Map<String,String>
    The metadata, as key-value pairs, to apply to the node group to assist with categorization and organization. Follows same schema as Labels for consistency.
    taints List<NodegroupTaint>
    The Kubernetes taints to be applied to the nodes in the node group when they are created.
    updateConfig NodegroupUpdateConfig
    The node group update configuration.
    version String
    The Kubernetes version to use for your managed nodes.
    clusterName string
    Name of the cluster to create the node group in.
    nodeRole string
    The Amazon Resource Name (ARN) of the IAM role to associate with your node group.
    subnets string[]
    The subnets to use for the Auto Scaling group that is created for your node group.
    amiType string
    The AMI type for your node group.
    capacityType string
    The capacity type of your managed node group.
    diskSize number
    The root device disk size (in GiB) for your node group instances.
    forceUpdateEnabled boolean
    Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue.
    instanceTypes string[]
    Specify the instance types for a node group.
    labels {[key: string]: string}
    The Kubernetes labels to be applied to the nodes in the node group when they are created.
    launchTemplate NodegroupLaunchTemplateSpecification
    An object representing a node group's launch template specification.
    nodegroupName string
    The unique name to give your node group.
    releaseVersion string
    The AMI version of the Amazon EKS-optimized AMI to use with your node group.
    remoteAccess NodegroupRemoteAccess
    The remote access (SSH) configuration to use with your node group.
    scalingConfig NodegroupScalingConfig
    The scaling configuration details for the Auto Scaling group that is created for your node group.
    tags {[key: string]: string}
    The metadata, as key-value pairs, to apply to the node group to assist with categorization and organization. Follows same schema as Labels for consistency.
    taints NodegroupTaint[]
    The Kubernetes taints to be applied to the nodes in the node group when they are created.
    updateConfig NodegroupUpdateConfig
    The node group update configuration.
    version string
    The Kubernetes version to use for your managed nodes.
    cluster_name str
    Name of the cluster to create the node group in.
    node_role str
    The Amazon Resource Name (ARN) of the IAM role to associate with your node group.
    subnets Sequence[str]
    The subnets to use for the Auto Scaling group that is created for your node group.
    ami_type str
    The AMI type for your node group.
    capacity_type str
    The capacity type of your managed node group.
    disk_size int
    The root device disk size (in GiB) for your node group instances.
    force_update_enabled bool
    Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue.
    instance_types Sequence[str]
    Specify the instance types for a node group.
    labels Mapping[str, str]
    The Kubernetes labels to be applied to the nodes in the node group when they are created.
    launch_template NodegroupLaunchTemplateSpecificationArgs
    An object representing a node group's launch template specification.
    nodegroup_name str
    The unique name to give your node group.
    release_version str
    The AMI version of the Amazon EKS-optimized AMI to use with your node group.
    remote_access NodegroupRemoteAccessArgs
    The remote access (SSH) configuration to use with your node group.
    scaling_config NodegroupScalingConfigArgs
    The scaling configuration details for the Auto Scaling group that is created for your node group.
    tags Mapping[str, str]
    The metadata, as key-value pairs, to apply to the node group to assist with categorization and organization. Follows same schema as Labels for consistency.
    taints Sequence[NodegroupTaintArgs]
    The Kubernetes taints to be applied to the nodes in the node group when they are created.
    update_config NodegroupUpdateConfigArgs
    The node group update configuration.
    version str
    The Kubernetes version to use for your managed nodes.
    clusterName String
    Name of the cluster to create the node group in.
    nodeRole String
    The Amazon Resource Name (ARN) of the IAM role to associate with your node group.
    subnets List<String>
    The subnets to use for the Auto Scaling group that is created for your node group.
    amiType String
    The AMI type for your node group.
    capacityType String
    The capacity type of your managed node group.
    diskSize Number
    The root device disk size (in GiB) for your node group instances.
    forceUpdateEnabled Boolean
    Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue.
    instanceTypes List<String>
    Specify the instance types for a node group.
    labels Map<String>
    The Kubernetes labels to be applied to the nodes in the node group when they are created.
    launchTemplate Property Map
    An object representing a node group's launch template specification.
    nodegroupName String
    The unique name to give your node group.
    releaseVersion String
    The AMI version of the Amazon EKS-optimized AMI to use with your node group.
    remoteAccess Property Map
    The remote access (SSH) configuration to use with your node group.
    scalingConfig Property Map
    The scaling configuration details for the Auto Scaling group that is created for your node group.
    tags Map<String>
    The metadata, as key-value pairs, to apply to the node group to assist with categorization and organization. Follows same schema as Labels for consistency.
    taints List<Property Map>
    The Kubernetes taints to be applied to the nodes in the node group when they are created.
    updateConfig Property Map
    The node group update configuration.
    version String
    The Kubernetes version to use for your managed nodes.

    Outputs

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

    Arn string
    AwsId string
    Id string
    The provider-assigned unique ID for this managed resource.
    Arn string
    AwsId string
    Id string
    The provider-assigned unique ID for this managed resource.
    arn String
    awsId String
    id String
    The provider-assigned unique ID for this managed resource.
    arn string
    awsId string
    id string
    The provider-assigned unique ID for this managed resource.
    arn str
    aws_id str
    id str
    The provider-assigned unique ID for this managed resource.
    arn String
    awsId String
    id String
    The provider-assigned unique ID for this managed resource.

    Supporting Types

    NodegroupLaunchTemplateSpecification, NodegroupLaunchTemplateSpecificationArgs

    Id string
    Name string
    Version string
    Id string
    Name string
    Version string
    id String
    name String
    version String
    id string
    name string
    version string
    id str
    name str
    version str
    id String
    name String
    version String

    NodegroupRemoteAccess, NodegroupRemoteAccessArgs

    Ec2SshKey string
    SourceSecurityGroups List<string>
    ec2SshKey String
    sourceSecurityGroups List<String>
    ec2SshKey String
    sourceSecurityGroups List<String>

    NodegroupScalingConfig, NodegroupScalingConfigArgs

    desiredSize Integer
    maxSize Integer
    minSize Integer
    desiredSize number
    maxSize number
    minSize number
    desiredSize Number
    maxSize Number
    minSize Number

    NodegroupTaint, NodegroupTaintArgs

    Effect string
    Key string
    Value string
    Effect string
    Key string
    Value string
    effect String
    key String
    value String
    effect string
    key string
    value string
    effect str
    key str
    value str
    effect String
    key String
    value String

    NodegroupUpdateConfig, NodegroupUpdateConfigArgs

    MaxUnavailable double
    The maximum number of nodes unavailable at once during a version update. Nodes will be updated in parallel. This value or maxUnavailablePercentage is required to have a value.The maximum number is 100.
    MaxUnavailablePercentage double
    The maximum percentage of nodes unavailable during a version update. This percentage of nodes will be updated in parallel, up to 100 nodes at once. This value or maxUnavailable is required to have a value.
    MaxUnavailable float64
    The maximum number of nodes unavailable at once during a version update. Nodes will be updated in parallel. This value or maxUnavailablePercentage is required to have a value.The maximum number is 100.
    MaxUnavailablePercentage float64
    The maximum percentage of nodes unavailable during a version update. This percentage of nodes will be updated in parallel, up to 100 nodes at once. This value or maxUnavailable is required to have a value.
    maxUnavailable Double
    The maximum number of nodes unavailable at once during a version update. Nodes will be updated in parallel. This value or maxUnavailablePercentage is required to have a value.The maximum number is 100.
    maxUnavailablePercentage Double
    The maximum percentage of nodes unavailable during a version update. This percentage of nodes will be updated in parallel, up to 100 nodes at once. This value or maxUnavailable is required to have a value.
    maxUnavailable number
    The maximum number of nodes unavailable at once during a version update. Nodes will be updated in parallel. This value or maxUnavailablePercentage is required to have a value.The maximum number is 100.
    maxUnavailablePercentage number
    The maximum percentage of nodes unavailable during a version update. This percentage of nodes will be updated in parallel, up to 100 nodes at once. This value or maxUnavailable is required to have a value.
    max_unavailable float
    The maximum number of nodes unavailable at once during a version update. Nodes will be updated in parallel. This value or maxUnavailablePercentage is required to have a value.The maximum number is 100.
    max_unavailable_percentage float
    The maximum percentage of nodes unavailable during a version update. This percentage of nodes will be updated in parallel, up to 100 nodes at once. This value or maxUnavailable is required to have a value.
    maxUnavailable Number
    The maximum number of nodes unavailable at once during a version update. Nodes will be updated in parallel. This value or maxUnavailablePercentage is required to have a value.The maximum number is 100.
    maxUnavailablePercentage Number
    The maximum percentage of nodes unavailable during a version update. This percentage of nodes will be updated in parallel, up to 100 nodes at once. This value or maxUnavailable is required to have a value.

    Package Details

    Repository
    AWS Native pulumi/pulumi-aws-native
    License
    Apache-2.0
    aws-native logo

    AWS Native is in preview. AWS Classic is fully supported.

    AWS Native v0.102.0 published on Tuesday, Apr 16, 2024 by Pulumi