AWS Native

v0.43.0 published on Thursday, Dec 1, 2022 by Pulumi

Nodegroup

Resource schema for AWS::EKS::Nodegroup

Example Usage

Example

using System.Collections.Generic;
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.Any{
				Key1: "Value1",
				Key2: "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 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.Any{
				Key1: "Value1",
				Key2: "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

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_enabled: Optional[bool] = None,
              instance_types: Optional[Sequence[str]] = None,
              labels: Optional[Any] = None,
              launch_template: Optional[NodegroupLaunchTemplateSpecificationArgs] = None,
              node_role: Optional[str] = None,
              nodegroup_name: Optional[str] = None,
              release_version: Optional[str] = None,
              remote_access: Optional[NodegroupRemoteAccessArgs] = None,
              scaling_config: Optional[NodegroupScalingConfigArgs] = None,
              subnets: Optional[Sequence[str]] = None,
              tags: Optional[Any] = 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-native: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 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 object

The Kubernetes labels to be applied to the nodes in the node group when they are created.

LaunchTemplate Pulumi.AwsNative.EKS.Inputs.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 Pulumi.AwsNative.EKS.Inputs.NodegroupRemoteAccessArgs

The remote access (SSH) configuration to use with your node group.

ScalingConfig Pulumi.AwsNative.EKS.Inputs.NodegroupScalingConfigArgs

The scaling configuration details for the Auto Scaling group that is created for your node group.

Tags object

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.NodegroupTaintArgs>

The Kubernetes taints to be applied to the nodes in the node group when they are created.

UpdateConfig Pulumi.AwsNative.EKS.Inputs.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 []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 interface{}

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 interface{}

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 Object

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 Object

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<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 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 any

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 any

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.

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 Any

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 Any

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 Any

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 Any

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
Id string

The provider-assigned unique ID for this managed resource.

Arn string
Id string

The provider-assigned unique ID for this managed resource.

arn String
id String

The provider-assigned unique ID for this managed resource.

arn string
id string

The provider-assigned unique ID for this managed resource.

arn str
id str

The provider-assigned unique ID for this managed resource.

arn String
id String

The provider-assigned unique ID for this managed resource.

Supporting Types

NodegroupLaunchTemplateSpecification

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

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

NodegroupScalingConfig

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

NodegroupTaint

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

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
https://github.com/pulumi/pulumi-aws-native
License
Apache-2.0