AWS Native is in preview. AWS Classic is fully supported.
aws-native.eks.Nodegroup
Explore with Pulumi AI
AWS Native is in preview. AWS Classic is fully supported.
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:
- Cluster
Name string - Name of the cluster to create the node group in.
- Node
Role 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.
- Ami
Type string - The AMI type for your node group.
- Capacity
Type string - 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 boolEnabled - Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue.
- Instance
Types 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.
- Launch
Template Pulumi.Aws Native. Eks. Inputs. Nodegroup Launch Template Specification - An object representing a node group's launch template specification.
- Nodegroup
Name string - The unique name to give your node group.
- Release
Version string - The AMI version of the Amazon EKS-optimized AMI to use with your node group.
- Remote
Access Pulumi.Aws Native. Eks. Inputs. Nodegroup Remote Access - The remote access (SSH) configuration to use with your node group.
- Scaling
Config Pulumi.Aws Native. Eks. Inputs. Nodegroup Scaling Config - The scaling configuration details for the Auto Scaling group that is created for your node group.
- 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.
Aws Native. Eks. Inputs. Nodegroup Taint> - The Kubernetes taints to be applied to the nodes in the node group when they are created.
- Update
Config Pulumi.Aws Native. Eks. Inputs. Nodegroup Update Config - The node group update configuration.
- Version string
- The Kubernetes version to use for your managed nodes.
- Cluster
Name string - Name of the cluster to create the node group in.
- Node
Role 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.
- Ami
Type string - The AMI type for your node group.
- Capacity
Type string - 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 boolEnabled - Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue.
- Instance
Types []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.
- Launch
Template NodegroupLaunch Template Specification Args - An object representing a node group's launch template specification.
- Nodegroup
Name string - The unique name to give your node group.
- Release
Version string - The AMI version of the Amazon EKS-optimized AMI to use with your node group.
- Remote
Access NodegroupRemote Access Args - The remote access (SSH) configuration to use with your node group.
- Scaling
Config NodegroupScaling Config Args - The scaling configuration details for the Auto Scaling group that is created for your node group.
- 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
[]Nodegroup
Taint Args - The Kubernetes taints to be applied to the nodes in the node group when they are created.
- Update
Config NodegroupUpdate Config Args - The node group update configuration.
- Version string
- The Kubernetes version to use for your managed nodes.
- cluster
Name String - Name of the cluster to create the node group in.
- node
Role 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.
- ami
Type String - The AMI type for your node group.
- capacity
Type String - The capacity type of your managed node group.
- disk
Size Integer - The root device disk size (in GiB) for your node group instances.
- force
Update BooleanEnabled - Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue.
- instance
Types 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.
- launch
Template NodegroupLaunch Template Specification - An object representing a node group's launch template specification.
- nodegroup
Name String - The unique name to give your node group.
- release
Version String - The AMI version of the Amazon EKS-optimized AMI to use with your node group.
- remote
Access NodegroupRemote Access - The remote access (SSH) configuration to use with your node group.
- scaling
Config NodegroupScaling Config - The scaling configuration details for the Auto Scaling group that is created for your node group.
- 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<Nodegroup
Taint> - The Kubernetes taints to be applied to the nodes in the node group when they are created.
- update
Config NodegroupUpdate Config - The node group update configuration.
- version String
- The Kubernetes version to use for your managed nodes.
- cluster
Name string - Name of the cluster to create the node group in.
- node
Role 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.
- ami
Type string - The AMI type for your node group.
- capacity
Type string - The capacity type of your managed node group.
- disk
Size number - The root device disk size (in GiB) for your node group instances.
- force
Update booleanEnabled - Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue.
- instance
Types 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.
- launch
Template NodegroupLaunch Template Specification - An object representing a node group's launch template specification.
- nodegroup
Name string - The unique name to give your node group.
- release
Version string - The AMI version of the Amazon EKS-optimized AMI to use with your node group.
- remote
Access NodegroupRemote Access - The remote access (SSH) configuration to use with your node group.
- scaling
Config NodegroupScaling Config - The scaling configuration details for the Auto Scaling group that is created for your node group.
- {[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
Nodegroup
Taint[] - The Kubernetes taints to be applied to the nodes in the node group when they are created.
- update
Config NodegroupUpdate Config - 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_ boolenabled - 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 NodegroupLaunch Template Specification Args - 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 NodegroupRemote Access Args - The remote access (SSH) configuration to use with your node group.
- scaling_
config NodegroupScaling Config Args - The scaling configuration details for the Auto Scaling group that is created for your node group.
- 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[Nodegroup
Taint Args] - The Kubernetes taints to be applied to the nodes in the node group when they are created.
- update_
config NodegroupUpdate Config Args - The node group update configuration.
- version str
- The Kubernetes version to use for your managed nodes.
- cluster
Name String - Name of the cluster to create the node group in.
- node
Role 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.
- ami
Type String - The AMI type for your node group.
- capacity
Type String - The capacity type of your managed node group.
- disk
Size Number - The root device disk size (in GiB) for your node group instances.
- force
Update BooleanEnabled - Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue.
- instance
Types 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.
- launch
Template Property Map - An object representing a node group's launch template specification.
- nodegroup
Name String - The unique name to give your node group.
- release
Version String - The AMI version of the Amazon EKS-optimized AMI to use with your node group.
- remote
Access Property Map - The remote access (SSH) configuration to use with your node group.
- scaling
Config Property Map - The scaling configuration details for the Auto Scaling group that is created for your node group.
- 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.
- update
Config 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:
Supporting Types
NodegroupLaunchTemplateSpecification, NodegroupLaunchTemplateSpecificationArgs
NodegroupRemoteAccess, NodegroupRemoteAccessArgs
- Ec2Ssh
Key string - Source
Security List<string>Groups
- Ec2Ssh
Key string - Source
Security []stringGroups
- ec2Ssh
Key String - source
Security List<String>Groups
- ec2Ssh
Key string - source
Security string[]Groups
- ec2_
ssh_ strkey - source_
security_ Sequence[str]groups
- ec2Ssh
Key String - source
Security List<String>Groups
NodegroupScalingConfig, NodegroupScalingConfigArgs
- Desired
Size int - Max
Size int - Min
Size int
- Desired
Size int - Max
Size int - Min
Size int
- desired
Size Integer - max
Size Integer - min
Size Integer
- desired
Size number - max
Size number - min
Size number
- desired_
size int - max_
size int - min_
size int
- desired
Size Number - max
Size Number - min
Size Number
NodegroupTaint, NodegroupTaintArgs
NodegroupUpdateConfig, NodegroupUpdateConfigArgs
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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 is in preview. AWS Classic is fully supported.