diff --git a/examples/nodegroup-py/__main__.py b/examples/nodegroup-py/__main__.py index 311436b34..5ee6f01ed 100644 --- a/examples/nodegroup-py/__main__.py +++ b/examples/nodegroup-py/__main__.py @@ -152,5 +152,20 @@ opts=pulumi.ResourceOptions(providers={"kubernetes": cluster2_provider}), ) +eks.NodeGroup( + "example-ng-advanced-spot-gp3-py", + cluster=cluster2, + instance_type="t3.medium", + desired_capacity=1, + min_size=1, + max_size=2, + node_root_volume_type="gp3", + spot_price="1", + labels={"preemptible": "true"}, + taints={"special": eks.TaintArgs(value="true", effect="NoSchedule")}, + instance_profile=instance_profile3, + opts=pulumi.ResourceOptions(providers={"kubernetes": cluster2_provider}), +) + # Export the cluster's kubeconfig. pulumi.export("kubeconfig2", cluster2.kubeconfig) diff --git a/provider/cmd/pulumi-gen-eks/main.go b/provider/cmd/pulumi-gen-eks/main.go index 2213bd957..5fa65ee82 100644 --- a/provider/cmd/pulumi-gen-eks/main.go +++ b/provider/cmd/pulumi-gen-eks/main.go @@ -658,7 +658,7 @@ func generateSchema() schema.PackageSpec { }, "authenticationMode": { TypeSpec: schema.TypeSpec{ - Ref: "#/types/eks:index:AuthenticationMode", + Ref: "#/types/eks:index:AuthenticationMode", Plain: true, }, Description: "The authentication mode of the cluster. Valid values are `CONFIG_MAP`, `API` or `API_AND_CONFIG_MAP`.\n\n" + @@ -1587,9 +1587,9 @@ func generateSchema() schema.PackageSpec { }, "eks:index:AccessEntryType": { ObjectTypeSpec: schema.ObjectTypeSpec{ - Type: "string", + Type: "string", Description: "The type of the new access entry. Valid values are STANDARD, FARGATE_LINUX, EC2_LINUX, and EC2_WINDOWS.\n" + - "Defaults to STANDARD which provides the standard workflow. EC2_LINUX and EC2_WINDOWS types disallow users to input a kubernetesGroup, and prevent associating access policies.", + "Defaults to STANDARD which provides the standard workflow. EC2_LINUX and EC2_WINDOWS types disallow users to input a kubernetesGroup, and prevent associating access policies.", }, Enum: []schema.EnumValueSpec{ { @@ -1609,16 +1609,16 @@ func generateSchema() schema.PackageSpec { }, { Name: "EC2Windows", - Value: "EC2_WINDOWS", + Value: "EC2_WINDOWS", Description: "For IAM roles associated with self-managed Windows node groups. Allows the nodes to join the cluster.", }, }, }, "eks:index:AuthenticationMode": { ObjectTypeSpec: schema.ObjectTypeSpec{ - Type: "string", + Type: "string", Description: "The authentication mode of the cluster. Valid values are `CONFIG_MAP`, `API` or `API_AND_CONFIG_MAP`.\n\n" + - "See for more details:\nhttps://docs.aws.amazon.com/eks/latest/userguide/grant-k8s-access.html#set-cam", + "See for more details:\nhttps://docs.aws.amazon.com/eks/latest/userguide/grant-k8s-access.html#set-cam", }, Enum: []schema.EnumValueSpec{ { @@ -1745,6 +1745,26 @@ func nodeGroupProperties(cluster, v2 bool) map[string]schema.PropertySpec { TypeSpec: schema.TypeSpec{Type: "integer"}, Description: "The size in GiB of a cluster node's root volume. Defaults to 20.", }, + "nodeRootVolumeDeleteOnTermination": { + TypeSpec: schema.TypeSpec{Type: "boolean"}, + Description: "Whether the root block device should be deleted on termination of the instance. Defaults to true.", + }, + "nodeRootVolumeEncrypted": { + TypeSpec: schema.TypeSpec{Type: "boolean"}, + Description: "Whether to encrypt a cluster node's root volume. Defaults to false.", + }, + "nodeRootVolumeIops": { + TypeSpec: schema.TypeSpec{Type: "integer"}, + Description: "The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'.", + }, + "nodeRootVolumeThroughput": { + TypeSpec: schema.TypeSpec{Type: "integer"}, + Description: "Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'.", + }, + "nodeRootVolumeType": { + TypeSpec: schema.TypeSpec{Type: "string"}, + Description: "Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'.", + }, "nodeUserData": { TypeSpec: schema.TypeSpec{Type: "string"}, Description: "Extra code to run on node startup. This code will run after the AWS EKS " + diff --git a/provider/cmd/pulumi-resource-eks/schema.json b/provider/cmd/pulumi-resource-eks/schema.json index e2c6f9191..2808d788b 100644 --- a/provider/cmd/pulumi-resource-eks/schema.json +++ b/provider/cmd/pulumi-resource-eks/schema.json @@ -255,10 +255,30 @@ "type": "string", "description": "Public key material for SSH access to worker nodes. See allowed formats at:\nhttps://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html\nIf not provided, no SSH access is enabled on VMs." }, + "nodeRootVolumeDeleteOnTermination": { + "type": "boolean", + "description": "Whether the root block device should be deleted on termination of the instance. Defaults to true." + }, + "nodeRootVolumeEncrypted": { + "type": "boolean", + "description": "Whether to encrypt a cluster node's root volume. Defaults to false." + }, + "nodeRootVolumeIops": { + "type": "integer", + "description": "The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'." + }, "nodeRootVolumeSize": { "type": "integer", "description": "The size in GiB of a cluster node's root volume. Defaults to 20." }, + "nodeRootVolumeThroughput": { + "type": "integer", + "description": "Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'." + }, + "nodeRootVolumeType": { + "type": "string", + "description": "Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'." + }, "nodeSecurityGroup": { "$ref": "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup", "description": "The security group for the worker node group to communicate with the cluster.\n\nThis security group requires specific inbound and outbound rules.\n\nSee for more details:\nhttps://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html\n\nNote: The `nodeSecurityGroup` option and the cluster option`nodeSecurityGroupTags` are mutually exclusive." @@ -1425,10 +1445,30 @@ "type": "string", "description": "Public key material for SSH access to worker nodes. See allowed formats at:\nhttps://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html\nIf not provided, no SSH access is enabled on VMs." }, + "nodeRootVolumeDeleteOnTermination": { + "type": "boolean", + "description": "Whether the root block device should be deleted on termination of the instance. Defaults to true." + }, + "nodeRootVolumeEncrypted": { + "type": "boolean", + "description": "Whether to encrypt a cluster node's root volume. Defaults to false." + }, + "nodeRootVolumeIops": { + "type": "integer", + "description": "The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'." + }, "nodeRootVolumeSize": { "type": "integer", "description": "The size in GiB of a cluster node's root volume. Defaults to 20." }, + "nodeRootVolumeThroughput": { + "type": "integer", + "description": "Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'." + }, + "nodeRootVolumeType": { + "type": "string", + "description": "Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'." + }, "nodeSecurityGroup": { "$ref": "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup", "description": "The security group for the worker node group to communicate with the cluster.\n\nThis security group requires specific inbound and outbound rules.\n\nSee for more details:\nhttps://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html\n\nNote: The `nodeSecurityGroup` option and the cluster option`nodeSecurityGroupTags` are mutually exclusive." @@ -1660,10 +1700,30 @@ "type": "string", "description": "Public key material for SSH access to worker nodes. See allowed formats at:\nhttps://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html\nIf not provided, no SSH access is enabled on VMs." }, + "nodeRootVolumeDeleteOnTermination": { + "type": "boolean", + "description": "Whether the root block device should be deleted on termination of the instance. Defaults to true." + }, + "nodeRootVolumeEncrypted": { + "type": "boolean", + "description": "Whether to encrypt a cluster node's root volume. Defaults to false." + }, + "nodeRootVolumeIops": { + "type": "integer", + "description": "The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'." + }, "nodeRootVolumeSize": { "type": "integer", "description": "The size in GiB of a cluster node's root volume. Defaults to 20." }, + "nodeRootVolumeThroughput": { + "type": "integer", + "description": "Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'." + }, + "nodeRootVolumeType": { + "type": "string", + "description": "Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'." + }, "nodeSecurityGroup": { "$ref": "/aws/v6.18.2/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup", "description": "The security group for the worker node group to communicate with the cluster.\n\nThis security group requires specific inbound and outbound rules.\n\nSee for more details:\nhttps://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html\n\nNote: The `nodeSecurityGroup` option and the cluster option`nodeSecurityGroupTags` are mutually exclusive." diff --git a/sdk/dotnet/Inputs/ClusterNodeGroupOptionsArgs.cs b/sdk/dotnet/Inputs/ClusterNodeGroupOptionsArgs.cs index 11b36c5d6..9899aadae 100644 --- a/sdk/dotnet/Inputs/ClusterNodeGroupOptionsArgs.cs +++ b/sdk/dotnet/Inputs/ClusterNodeGroupOptionsArgs.cs @@ -194,12 +194,42 @@ public Dictionary Labels [Input("nodePublicKey")] public Input? NodePublicKey { get; set; } + /// + /// Whether the root block device should be deleted on termination of the instance. Defaults to true. + /// + [Input("nodeRootVolumeDeleteOnTermination")] + public Input? NodeRootVolumeDeleteOnTermination { get; set; } + + /// + /// Whether to encrypt a cluster node's root volume. Defaults to false. + /// + [Input("nodeRootVolumeEncrypted")] + public Input? NodeRootVolumeEncrypted { get; set; } + + /// + /// The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + /// + [Input("nodeRootVolumeIops")] + public Input? NodeRootVolumeIops { get; set; } + /// /// The size in GiB of a cluster node's root volume. Defaults to 20. /// [Input("nodeRootVolumeSize")] public Input? NodeRootVolumeSize { get; set; } + /// + /// Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + /// + [Input("nodeRootVolumeThroughput")] + public Input? NodeRootVolumeThroughput { get; set; } + + /// + /// Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + /// + [Input("nodeRootVolumeType")] + public Input? NodeRootVolumeType { get; set; } + /// /// The security group for the worker node group to communicate with the cluster. /// diff --git a/sdk/dotnet/NodeGroup.cs b/sdk/dotnet/NodeGroup.cs index 5acb6f137..2bb3e99db 100644 --- a/sdk/dotnet/NodeGroup.cs +++ b/sdk/dotnet/NodeGroup.cs @@ -252,12 +252,42 @@ public Dictionary Labels [Input("nodePublicKey")] public Input? NodePublicKey { get; set; } + /// + /// Whether the root block device should be deleted on termination of the instance. Defaults to true. + /// + [Input("nodeRootVolumeDeleteOnTermination")] + public Input? NodeRootVolumeDeleteOnTermination { get; set; } + + /// + /// Whether to encrypt a cluster node's root volume. Defaults to false. + /// + [Input("nodeRootVolumeEncrypted")] + public Input? NodeRootVolumeEncrypted { get; set; } + + /// + /// The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + /// + [Input("nodeRootVolumeIops")] + public Input? NodeRootVolumeIops { get; set; } + /// /// The size in GiB of a cluster node's root volume. Defaults to 20. /// [Input("nodeRootVolumeSize")] public Input? NodeRootVolumeSize { get; set; } + /// + /// Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + /// + [Input("nodeRootVolumeThroughput")] + public Input? NodeRootVolumeThroughput { get; set; } + + /// + /// Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + /// + [Input("nodeRootVolumeType")] + public Input? NodeRootVolumeType { get; set; } + /// /// The security group for the worker node group to communicate with the cluster. /// diff --git a/sdk/dotnet/NodeGroupV2.cs b/sdk/dotnet/NodeGroupV2.cs index a473636f0..f79f5d561 100644 --- a/sdk/dotnet/NodeGroupV2.cs +++ b/sdk/dotnet/NodeGroupV2.cs @@ -264,12 +264,42 @@ public InputList Launc [Input("nodePublicKey")] public Input? NodePublicKey { get; set; } + /// + /// Whether the root block device should be deleted on termination of the instance. Defaults to true. + /// + [Input("nodeRootVolumeDeleteOnTermination")] + public Input? NodeRootVolumeDeleteOnTermination { get; set; } + + /// + /// Whether to encrypt a cluster node's root volume. Defaults to false. + /// + [Input("nodeRootVolumeEncrypted")] + public Input? NodeRootVolumeEncrypted { get; set; } + + /// + /// The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + /// + [Input("nodeRootVolumeIops")] + public Input? NodeRootVolumeIops { get; set; } + /// /// The size in GiB of a cluster node's root volume. Defaults to 20. /// [Input("nodeRootVolumeSize")] public Input? NodeRootVolumeSize { get; set; } + /// + /// Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + /// + [Input("nodeRootVolumeThroughput")] + public Input? NodeRootVolumeThroughput { get; set; } + + /// + /// Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + /// + [Input("nodeRootVolumeType")] + public Input? NodeRootVolumeType { get; set; } + /// /// The security group for the worker node group to communicate with the cluster. /// diff --git a/sdk/dotnet/Outputs/ClusterNodeGroupOptions.cs b/sdk/dotnet/Outputs/ClusterNodeGroupOptions.cs index e36067e4b..4382d27e5 100644 --- a/sdk/dotnet/Outputs/ClusterNodeGroupOptions.cs +++ b/sdk/dotnet/Outputs/ClusterNodeGroupOptions.cs @@ -132,10 +132,30 @@ public sealed class ClusterNodeGroupOptions /// public readonly string? NodePublicKey; /// + /// Whether the root block device should be deleted on termination of the instance. Defaults to true. + /// + public readonly bool? NodeRootVolumeDeleteOnTermination; + /// + /// Whether to encrypt a cluster node's root volume. Defaults to false. + /// + public readonly bool? NodeRootVolumeEncrypted; + /// + /// The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + /// + public readonly int? NodeRootVolumeIops; + /// /// The size in GiB of a cluster node's root volume. Defaults to 20. /// public readonly int? NodeRootVolumeSize; /// + /// Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + /// + public readonly int? NodeRootVolumeThroughput; + /// + /// Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + /// + public readonly string? NodeRootVolumeType; + /// /// The security group for the worker node group to communicate with the cluster. /// /// This security group requires specific inbound and outbound rules. @@ -217,8 +237,18 @@ private ClusterNodeGroupOptions( string? nodePublicKey, + bool? nodeRootVolumeDeleteOnTermination, + + bool? nodeRootVolumeEncrypted, + + int? nodeRootVolumeIops, + int? nodeRootVolumeSize, + int? nodeRootVolumeThroughput, + + string? nodeRootVolumeType, + Pulumi.Aws.Ec2.SecurityGroup? nodeSecurityGroup, ImmutableArray nodeSubnetIds, @@ -253,7 +283,12 @@ private ClusterNodeGroupOptions( MinSize = minSize; NodeAssociatePublicIpAddress = nodeAssociatePublicIpAddress; NodePublicKey = nodePublicKey; + NodeRootVolumeDeleteOnTermination = nodeRootVolumeDeleteOnTermination; + NodeRootVolumeEncrypted = nodeRootVolumeEncrypted; + NodeRootVolumeIops = nodeRootVolumeIops; NodeRootVolumeSize = nodeRootVolumeSize; + NodeRootVolumeThroughput = nodeRootVolumeThroughput; + NodeRootVolumeType = nodeRootVolumeType; NodeSecurityGroup = nodeSecurityGroup; NodeSubnetIds = nodeSubnetIds; NodeUserData = nodeUserData; diff --git a/sdk/go/eks/nodeGroup.go b/sdk/go/eks/nodeGroup.go index da91f8a3a..0a780448b 100644 --- a/sdk/go/eks/nodeGroup.go +++ b/sdk/go/eks/nodeGroup.go @@ -126,8 +126,18 @@ type nodeGroupArgs struct { // https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html // If not provided, no SSH access is enabled on VMs. NodePublicKey *string `pulumi:"nodePublicKey"` + // Whether the root block device should be deleted on termination of the instance. Defaults to true. + NodeRootVolumeDeleteOnTermination *bool `pulumi:"nodeRootVolumeDeleteOnTermination"` + // Whether to encrypt a cluster node's root volume. Defaults to false. + NodeRootVolumeEncrypted *bool `pulumi:"nodeRootVolumeEncrypted"` + // The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + NodeRootVolumeIops *int `pulumi:"nodeRootVolumeIops"` // The size in GiB of a cluster node's root volume. Defaults to 20. NodeRootVolumeSize *int `pulumi:"nodeRootVolumeSize"` + // Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + NodeRootVolumeThroughput *int `pulumi:"nodeRootVolumeThroughput"` + // Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + NodeRootVolumeType *string `pulumi:"nodeRootVolumeType"` // The security group for the worker node group to communicate with the cluster. // // This security group requires specific inbound and outbound rules. @@ -234,8 +244,18 @@ type NodeGroupArgs struct { // https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html // If not provided, no SSH access is enabled on VMs. NodePublicKey pulumi.StringPtrInput + // Whether the root block device should be deleted on termination of the instance. Defaults to true. + NodeRootVolumeDeleteOnTermination pulumi.BoolPtrInput + // Whether to encrypt a cluster node's root volume. Defaults to false. + NodeRootVolumeEncrypted pulumi.BoolPtrInput + // The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + NodeRootVolumeIops pulumi.IntPtrInput // The size in GiB of a cluster node's root volume. Defaults to 20. NodeRootVolumeSize pulumi.IntPtrInput + // Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + NodeRootVolumeThroughput pulumi.IntPtrInput + // Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + NodeRootVolumeType pulumi.StringPtrInput // The security group for the worker node group to communicate with the cluster. // // This security group requires specific inbound and outbound rules. diff --git a/sdk/go/eks/nodeGroupV2.go b/sdk/go/eks/nodeGroupV2.go index f007b75a9..6e579e98d 100644 --- a/sdk/go/eks/nodeGroupV2.go +++ b/sdk/go/eks/nodeGroupV2.go @@ -128,8 +128,18 @@ type nodeGroupV2Args struct { // https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html // If not provided, no SSH access is enabled on VMs. NodePublicKey *string `pulumi:"nodePublicKey"` + // Whether the root block device should be deleted on termination of the instance. Defaults to true. + NodeRootVolumeDeleteOnTermination *bool `pulumi:"nodeRootVolumeDeleteOnTermination"` + // Whether to encrypt a cluster node's root volume. Defaults to false. + NodeRootVolumeEncrypted *bool `pulumi:"nodeRootVolumeEncrypted"` + // The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + NodeRootVolumeIops *int `pulumi:"nodeRootVolumeIops"` // The size in GiB of a cluster node's root volume. Defaults to 20. NodeRootVolumeSize *int `pulumi:"nodeRootVolumeSize"` + // Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + NodeRootVolumeThroughput *int `pulumi:"nodeRootVolumeThroughput"` + // Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + NodeRootVolumeType *string `pulumi:"nodeRootVolumeType"` // The security group for the worker node group to communicate with the cluster. // // This security group requires specific inbound and outbound rules. @@ -240,8 +250,18 @@ type NodeGroupV2Args struct { // https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html // If not provided, no SSH access is enabled on VMs. NodePublicKey pulumi.StringPtrInput + // Whether the root block device should be deleted on termination of the instance. Defaults to true. + NodeRootVolumeDeleteOnTermination pulumi.BoolPtrInput + // Whether to encrypt a cluster node's root volume. Defaults to false. + NodeRootVolumeEncrypted pulumi.BoolPtrInput + // The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + NodeRootVolumeIops pulumi.IntPtrInput // The size in GiB of a cluster node's root volume. Defaults to 20. NodeRootVolumeSize pulumi.IntPtrInput + // Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + NodeRootVolumeThroughput pulumi.IntPtrInput + // Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + NodeRootVolumeType pulumi.StringPtrInput // The security group for the worker node group to communicate with the cluster. // // This security group requires specific inbound and outbound rules. diff --git a/sdk/go/eks/pulumiTypes.go b/sdk/go/eks/pulumiTypes.go index 98dde0881..ccbfb8e6b 100644 --- a/sdk/go/eks/pulumiTypes.go +++ b/sdk/go/eks/pulumiTypes.go @@ -374,8 +374,18 @@ type ClusterNodeGroupOptions struct { // https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html // If not provided, no SSH access is enabled on VMs. NodePublicKey *string `pulumi:"nodePublicKey"` + // Whether the root block device should be deleted on termination of the instance. Defaults to true. + NodeRootVolumeDeleteOnTermination *bool `pulumi:"nodeRootVolumeDeleteOnTermination"` + // Whether to encrypt a cluster node's root volume. Defaults to false. + NodeRootVolumeEncrypted *bool `pulumi:"nodeRootVolumeEncrypted"` + // The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + NodeRootVolumeIops *int `pulumi:"nodeRootVolumeIops"` // The size in GiB of a cluster node's root volume. Defaults to 20. NodeRootVolumeSize *int `pulumi:"nodeRootVolumeSize"` + // Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + NodeRootVolumeThroughput *int `pulumi:"nodeRootVolumeThroughput"` + // Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + NodeRootVolumeType *string `pulumi:"nodeRootVolumeType"` // The security group for the worker node group to communicate with the cluster. // // This security group requires specific inbound and outbound rules. @@ -491,8 +501,18 @@ type ClusterNodeGroupOptionsArgs struct { // https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html // If not provided, no SSH access is enabled on VMs. NodePublicKey pulumi.StringPtrInput `pulumi:"nodePublicKey"` + // Whether the root block device should be deleted on termination of the instance. Defaults to true. + NodeRootVolumeDeleteOnTermination pulumi.BoolPtrInput `pulumi:"nodeRootVolumeDeleteOnTermination"` + // Whether to encrypt a cluster node's root volume. Defaults to false. + NodeRootVolumeEncrypted pulumi.BoolPtrInput `pulumi:"nodeRootVolumeEncrypted"` + // The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + NodeRootVolumeIops pulumi.IntPtrInput `pulumi:"nodeRootVolumeIops"` // The size in GiB of a cluster node's root volume. Defaults to 20. NodeRootVolumeSize pulumi.IntPtrInput `pulumi:"nodeRootVolumeSize"` + // Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + NodeRootVolumeThroughput pulumi.IntPtrInput `pulumi:"nodeRootVolumeThroughput"` + // Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + NodeRootVolumeType pulumi.StringPtrInput `pulumi:"nodeRootVolumeType"` // The security group for the worker node group to communicate with the cluster. // // This security group requires specific inbound and outbound rules. @@ -733,11 +753,36 @@ func (o ClusterNodeGroupOptionsOutput) NodePublicKey() pulumi.StringPtrOutput { return o.ApplyT(func(v ClusterNodeGroupOptions) *string { return v.NodePublicKey }).(pulumi.StringPtrOutput) } +// Whether the root block device should be deleted on termination of the instance. Defaults to true. +func (o ClusterNodeGroupOptionsOutput) NodeRootVolumeDeleteOnTermination() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ClusterNodeGroupOptions) *bool { return v.NodeRootVolumeDeleteOnTermination }).(pulumi.BoolPtrOutput) +} + +// Whether to encrypt a cluster node's root volume. Defaults to false. +func (o ClusterNodeGroupOptionsOutput) NodeRootVolumeEncrypted() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ClusterNodeGroupOptions) *bool { return v.NodeRootVolumeEncrypted }).(pulumi.BoolPtrOutput) +} + +// The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. +func (o ClusterNodeGroupOptionsOutput) NodeRootVolumeIops() pulumi.IntPtrOutput { + return o.ApplyT(func(v ClusterNodeGroupOptions) *int { return v.NodeRootVolumeIops }).(pulumi.IntPtrOutput) +} + // The size in GiB of a cluster node's root volume. Defaults to 20. func (o ClusterNodeGroupOptionsOutput) NodeRootVolumeSize() pulumi.IntPtrOutput { return o.ApplyT(func(v ClusterNodeGroupOptions) *int { return v.NodeRootVolumeSize }).(pulumi.IntPtrOutput) } +// Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. +func (o ClusterNodeGroupOptionsOutput) NodeRootVolumeThroughput() pulumi.IntPtrOutput { + return o.ApplyT(func(v ClusterNodeGroupOptions) *int { return v.NodeRootVolumeThroughput }).(pulumi.IntPtrOutput) +} + +// Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. +func (o ClusterNodeGroupOptionsOutput) NodeRootVolumeType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ClusterNodeGroupOptions) *string { return v.NodeRootVolumeType }).(pulumi.StringPtrOutput) +} + // The security group for the worker node group to communicate with the cluster. // // This security group requires specific inbound and outbound rules. @@ -1043,6 +1088,36 @@ func (o ClusterNodeGroupOptionsPtrOutput) NodePublicKey() pulumi.StringPtrOutput }).(pulumi.StringPtrOutput) } +// Whether the root block device should be deleted on termination of the instance. Defaults to true. +func (o ClusterNodeGroupOptionsPtrOutput) NodeRootVolumeDeleteOnTermination() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ClusterNodeGroupOptions) *bool { + if v == nil { + return nil + } + return v.NodeRootVolumeDeleteOnTermination + }).(pulumi.BoolPtrOutput) +} + +// Whether to encrypt a cluster node's root volume. Defaults to false. +func (o ClusterNodeGroupOptionsPtrOutput) NodeRootVolumeEncrypted() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ClusterNodeGroupOptions) *bool { + if v == nil { + return nil + } + return v.NodeRootVolumeEncrypted + }).(pulumi.BoolPtrOutput) +} + +// The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. +func (o ClusterNodeGroupOptionsPtrOutput) NodeRootVolumeIops() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ClusterNodeGroupOptions) *int { + if v == nil { + return nil + } + return v.NodeRootVolumeIops + }).(pulumi.IntPtrOutput) +} + // The size in GiB of a cluster node's root volume. Defaults to 20. func (o ClusterNodeGroupOptionsPtrOutput) NodeRootVolumeSize() pulumi.IntPtrOutput { return o.ApplyT(func(v *ClusterNodeGroupOptions) *int { @@ -1053,6 +1128,26 @@ func (o ClusterNodeGroupOptionsPtrOutput) NodeRootVolumeSize() pulumi.IntPtrOutp }).(pulumi.IntPtrOutput) } +// Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. +func (o ClusterNodeGroupOptionsPtrOutput) NodeRootVolumeThroughput() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ClusterNodeGroupOptions) *int { + if v == nil { + return nil + } + return v.NodeRootVolumeThroughput + }).(pulumi.IntPtrOutput) +} + +// Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. +func (o ClusterNodeGroupOptionsPtrOutput) NodeRootVolumeType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterNodeGroupOptions) *string { + if v == nil { + return nil + } + return v.NodeRootVolumeType + }).(pulumi.StringPtrOutput) +} + // The security group for the worker node group to communicate with the cluster. // // This security group requires specific inbound and outbound rules. diff --git a/sdk/java/src/main/java/com/pulumi/eks/NodeGroupArgs.java b/sdk/java/src/main/java/com/pulumi/eks/NodeGroupArgs.java index 8cf979609..73d770752 100644 --- a/sdk/java/src/main/java/com/pulumi/eks/NodeGroupArgs.java +++ b/sdk/java/src/main/java/com/pulumi/eks/NodeGroupArgs.java @@ -411,6 +411,51 @@ public Optional> nodePublicKey() { return Optional.ofNullable(this.nodePublicKey); } + /** + * Whether the root block device should be deleted on termination of the instance. Defaults to true. + * + */ + @Import(name="nodeRootVolumeDeleteOnTermination") + private @Nullable Output nodeRootVolumeDeleteOnTermination; + + /** + * @return Whether the root block device should be deleted on termination of the instance. Defaults to true. + * + */ + public Optional> nodeRootVolumeDeleteOnTermination() { + return Optional.ofNullable(this.nodeRootVolumeDeleteOnTermination); + } + + /** + * Whether to encrypt a cluster node's root volume. Defaults to false. + * + */ + @Import(name="nodeRootVolumeEncrypted") + private @Nullable Output nodeRootVolumeEncrypted; + + /** + * @return Whether to encrypt a cluster node's root volume. Defaults to false. + * + */ + public Optional> nodeRootVolumeEncrypted() { + return Optional.ofNullable(this.nodeRootVolumeEncrypted); + } + + /** + * The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + * + */ + @Import(name="nodeRootVolumeIops") + private @Nullable Output nodeRootVolumeIops; + + /** + * @return The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + * + */ + public Optional> nodeRootVolumeIops() { + return Optional.ofNullable(this.nodeRootVolumeIops); + } + /** * The size in GiB of a cluster node's root volume. Defaults to 20. * @@ -426,6 +471,36 @@ public Optional> nodeRootVolumeSize() { return Optional.ofNullable(this.nodeRootVolumeSize); } + /** + * Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + * + */ + @Import(name="nodeRootVolumeThroughput") + private @Nullable Output nodeRootVolumeThroughput; + + /** + * @return Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + * + */ + public Optional> nodeRootVolumeThroughput() { + return Optional.ofNullable(this.nodeRootVolumeThroughput); + } + + /** + * Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + * + */ + @Import(name="nodeRootVolumeType") + private @Nullable Output nodeRootVolumeType; + + /** + * @return Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + * + */ + public Optional> nodeRootVolumeType() { + return Optional.ofNullable(this.nodeRootVolumeType); + } + /** * The security group for the worker node group to communicate with the cluster. * @@ -577,7 +652,12 @@ private NodeGroupArgs(NodeGroupArgs $) { this.minSize = $.minSize; this.nodeAssociatePublicIpAddress = $.nodeAssociatePublicIpAddress; this.nodePublicKey = $.nodePublicKey; + this.nodeRootVolumeDeleteOnTermination = $.nodeRootVolumeDeleteOnTermination; + this.nodeRootVolumeEncrypted = $.nodeRootVolumeEncrypted; + this.nodeRootVolumeIops = $.nodeRootVolumeIops; this.nodeRootVolumeSize = $.nodeRootVolumeSize; + this.nodeRootVolumeThroughput = $.nodeRootVolumeThroughput; + this.nodeRootVolumeType = $.nodeRootVolumeType; this.nodeSecurityGroup = $.nodeSecurityGroup; this.nodeSubnetIds = $.nodeSubnetIds; this.nodeUserData = $.nodeUserData; @@ -1098,6 +1178,69 @@ public Builder nodePublicKey(String nodePublicKey) { return nodePublicKey(Output.of(nodePublicKey)); } + /** + * @param nodeRootVolumeDeleteOnTermination Whether the root block device should be deleted on termination of the instance. Defaults to true. + * + * @return builder + * + */ + public Builder nodeRootVolumeDeleteOnTermination(@Nullable Output nodeRootVolumeDeleteOnTermination) { + $.nodeRootVolumeDeleteOnTermination = nodeRootVolumeDeleteOnTermination; + return this; + } + + /** + * @param nodeRootVolumeDeleteOnTermination Whether the root block device should be deleted on termination of the instance. Defaults to true. + * + * @return builder + * + */ + public Builder nodeRootVolumeDeleteOnTermination(Boolean nodeRootVolumeDeleteOnTermination) { + return nodeRootVolumeDeleteOnTermination(Output.of(nodeRootVolumeDeleteOnTermination)); + } + + /** + * @param nodeRootVolumeEncrypted Whether to encrypt a cluster node's root volume. Defaults to false. + * + * @return builder + * + */ + public Builder nodeRootVolumeEncrypted(@Nullable Output nodeRootVolumeEncrypted) { + $.nodeRootVolumeEncrypted = nodeRootVolumeEncrypted; + return this; + } + + /** + * @param nodeRootVolumeEncrypted Whether to encrypt a cluster node's root volume. Defaults to false. + * + * @return builder + * + */ + public Builder nodeRootVolumeEncrypted(Boolean nodeRootVolumeEncrypted) { + return nodeRootVolumeEncrypted(Output.of(nodeRootVolumeEncrypted)); + } + + /** + * @param nodeRootVolumeIops The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + * + * @return builder + * + */ + public Builder nodeRootVolumeIops(@Nullable Output nodeRootVolumeIops) { + $.nodeRootVolumeIops = nodeRootVolumeIops; + return this; + } + + /** + * @param nodeRootVolumeIops The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + * + * @return builder + * + */ + public Builder nodeRootVolumeIops(Integer nodeRootVolumeIops) { + return nodeRootVolumeIops(Output.of(nodeRootVolumeIops)); + } + /** * @param nodeRootVolumeSize The size in GiB of a cluster node's root volume. Defaults to 20. * @@ -1119,6 +1262,48 @@ public Builder nodeRootVolumeSize(Integer nodeRootVolumeSize) { return nodeRootVolumeSize(Output.of(nodeRootVolumeSize)); } + /** + * @param nodeRootVolumeThroughput Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + * + * @return builder + * + */ + public Builder nodeRootVolumeThroughput(@Nullable Output nodeRootVolumeThroughput) { + $.nodeRootVolumeThroughput = nodeRootVolumeThroughput; + return this; + } + + /** + * @param nodeRootVolumeThroughput Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + * + * @return builder + * + */ + public Builder nodeRootVolumeThroughput(Integer nodeRootVolumeThroughput) { + return nodeRootVolumeThroughput(Output.of(nodeRootVolumeThroughput)); + } + + /** + * @param nodeRootVolumeType Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + * + * @return builder + * + */ + public Builder nodeRootVolumeType(@Nullable Output nodeRootVolumeType) { + $.nodeRootVolumeType = nodeRootVolumeType; + return this; + } + + /** + * @param nodeRootVolumeType Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + * + * @return builder + * + */ + public Builder nodeRootVolumeType(String nodeRootVolumeType) { + return nodeRootVolumeType(Output.of(nodeRootVolumeType)); + } + /** * @param nodeSecurityGroup The security group for the worker node group to communicate with the cluster. * diff --git a/sdk/java/src/main/java/com/pulumi/eks/NodeGroupV2Args.java b/sdk/java/src/main/java/com/pulumi/eks/NodeGroupV2Args.java index 5b6d5563d..8073cd292 100644 --- a/sdk/java/src/main/java/com/pulumi/eks/NodeGroupV2Args.java +++ b/sdk/java/src/main/java/com/pulumi/eks/NodeGroupV2Args.java @@ -442,6 +442,51 @@ public Optional> nodePublicKey() { return Optional.ofNullable(this.nodePublicKey); } + /** + * Whether the root block device should be deleted on termination of the instance. Defaults to true. + * + */ + @Import(name="nodeRootVolumeDeleteOnTermination") + private @Nullable Output nodeRootVolumeDeleteOnTermination; + + /** + * @return Whether the root block device should be deleted on termination of the instance. Defaults to true. + * + */ + public Optional> nodeRootVolumeDeleteOnTermination() { + return Optional.ofNullable(this.nodeRootVolumeDeleteOnTermination); + } + + /** + * Whether to encrypt a cluster node's root volume. Defaults to false. + * + */ + @Import(name="nodeRootVolumeEncrypted") + private @Nullable Output nodeRootVolumeEncrypted; + + /** + * @return Whether to encrypt a cluster node's root volume. Defaults to false. + * + */ + public Optional> nodeRootVolumeEncrypted() { + return Optional.ofNullable(this.nodeRootVolumeEncrypted); + } + + /** + * The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + * + */ + @Import(name="nodeRootVolumeIops") + private @Nullable Output nodeRootVolumeIops; + + /** + * @return The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + * + */ + public Optional> nodeRootVolumeIops() { + return Optional.ofNullable(this.nodeRootVolumeIops); + } + /** * The size in GiB of a cluster node's root volume. Defaults to 20. * @@ -457,6 +502,36 @@ public Optional> nodeRootVolumeSize() { return Optional.ofNullable(this.nodeRootVolumeSize); } + /** + * Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + * + */ + @Import(name="nodeRootVolumeThroughput") + private @Nullable Output nodeRootVolumeThroughput; + + /** + * @return Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + * + */ + public Optional> nodeRootVolumeThroughput() { + return Optional.ofNullable(this.nodeRootVolumeThroughput); + } + + /** + * Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + * + */ + @Import(name="nodeRootVolumeType") + private @Nullable Output nodeRootVolumeType; + + /** + * @return Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + * + */ + public Optional> nodeRootVolumeType() { + return Optional.ofNullable(this.nodeRootVolumeType); + } + /** * The security group for the worker node group to communicate with the cluster. * @@ -610,7 +685,12 @@ private NodeGroupV2Args(NodeGroupV2Args $) { this.minSize = $.minSize; this.nodeAssociatePublicIpAddress = $.nodeAssociatePublicIpAddress; this.nodePublicKey = $.nodePublicKey; + this.nodeRootVolumeDeleteOnTermination = $.nodeRootVolumeDeleteOnTermination; + this.nodeRootVolumeEncrypted = $.nodeRootVolumeEncrypted; + this.nodeRootVolumeIops = $.nodeRootVolumeIops; this.nodeRootVolumeSize = $.nodeRootVolumeSize; + this.nodeRootVolumeThroughput = $.nodeRootVolumeThroughput; + this.nodeRootVolumeType = $.nodeRootVolumeType; this.nodeSecurityGroup = $.nodeSecurityGroup; this.nodeSubnetIds = $.nodeSubnetIds; this.nodeUserData = $.nodeUserData; @@ -1183,6 +1263,69 @@ public Builder nodePublicKey(String nodePublicKey) { return nodePublicKey(Output.of(nodePublicKey)); } + /** + * @param nodeRootVolumeDeleteOnTermination Whether the root block device should be deleted on termination of the instance. Defaults to true. + * + * @return builder + * + */ + public Builder nodeRootVolumeDeleteOnTermination(@Nullable Output nodeRootVolumeDeleteOnTermination) { + $.nodeRootVolumeDeleteOnTermination = nodeRootVolumeDeleteOnTermination; + return this; + } + + /** + * @param nodeRootVolumeDeleteOnTermination Whether the root block device should be deleted on termination of the instance. Defaults to true. + * + * @return builder + * + */ + public Builder nodeRootVolumeDeleteOnTermination(Boolean nodeRootVolumeDeleteOnTermination) { + return nodeRootVolumeDeleteOnTermination(Output.of(nodeRootVolumeDeleteOnTermination)); + } + + /** + * @param nodeRootVolumeEncrypted Whether to encrypt a cluster node's root volume. Defaults to false. + * + * @return builder + * + */ + public Builder nodeRootVolumeEncrypted(@Nullable Output nodeRootVolumeEncrypted) { + $.nodeRootVolumeEncrypted = nodeRootVolumeEncrypted; + return this; + } + + /** + * @param nodeRootVolumeEncrypted Whether to encrypt a cluster node's root volume. Defaults to false. + * + * @return builder + * + */ + public Builder nodeRootVolumeEncrypted(Boolean nodeRootVolumeEncrypted) { + return nodeRootVolumeEncrypted(Output.of(nodeRootVolumeEncrypted)); + } + + /** + * @param nodeRootVolumeIops The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + * + * @return builder + * + */ + public Builder nodeRootVolumeIops(@Nullable Output nodeRootVolumeIops) { + $.nodeRootVolumeIops = nodeRootVolumeIops; + return this; + } + + /** + * @param nodeRootVolumeIops The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + * + * @return builder + * + */ + public Builder nodeRootVolumeIops(Integer nodeRootVolumeIops) { + return nodeRootVolumeIops(Output.of(nodeRootVolumeIops)); + } + /** * @param nodeRootVolumeSize The size in GiB of a cluster node's root volume. Defaults to 20. * @@ -1204,6 +1347,48 @@ public Builder nodeRootVolumeSize(Integer nodeRootVolumeSize) { return nodeRootVolumeSize(Output.of(nodeRootVolumeSize)); } + /** + * @param nodeRootVolumeThroughput Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + * + * @return builder + * + */ + public Builder nodeRootVolumeThroughput(@Nullable Output nodeRootVolumeThroughput) { + $.nodeRootVolumeThroughput = nodeRootVolumeThroughput; + return this; + } + + /** + * @param nodeRootVolumeThroughput Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + * + * @return builder + * + */ + public Builder nodeRootVolumeThroughput(Integer nodeRootVolumeThroughput) { + return nodeRootVolumeThroughput(Output.of(nodeRootVolumeThroughput)); + } + + /** + * @param nodeRootVolumeType Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + * + * @return builder + * + */ + public Builder nodeRootVolumeType(@Nullable Output nodeRootVolumeType) { + $.nodeRootVolumeType = nodeRootVolumeType; + return this; + } + + /** + * @param nodeRootVolumeType Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + * + * @return builder + * + */ + public Builder nodeRootVolumeType(String nodeRootVolumeType) { + return nodeRootVolumeType(Output.of(nodeRootVolumeType)); + } + /** * @param nodeSecurityGroup The security group for the worker node group to communicate with the cluster. * diff --git a/sdk/java/src/main/java/com/pulumi/eks/inputs/ClusterNodeGroupOptionsArgs.java b/sdk/java/src/main/java/com/pulumi/eks/inputs/ClusterNodeGroupOptionsArgs.java index cfed6e306..bdf9d44e8 100644 --- a/sdk/java/src/main/java/com/pulumi/eks/inputs/ClusterNodeGroupOptionsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/eks/inputs/ClusterNodeGroupOptionsArgs.java @@ -397,6 +397,51 @@ public Optional> nodePublicKey() { return Optional.ofNullable(this.nodePublicKey); } + /** + * Whether the root block device should be deleted on termination of the instance. Defaults to true. + * + */ + @Import(name="nodeRootVolumeDeleteOnTermination") + private @Nullable Output nodeRootVolumeDeleteOnTermination; + + /** + * @return Whether the root block device should be deleted on termination of the instance. Defaults to true. + * + */ + public Optional> nodeRootVolumeDeleteOnTermination() { + return Optional.ofNullable(this.nodeRootVolumeDeleteOnTermination); + } + + /** + * Whether to encrypt a cluster node's root volume. Defaults to false. + * + */ + @Import(name="nodeRootVolumeEncrypted") + private @Nullable Output nodeRootVolumeEncrypted; + + /** + * @return Whether to encrypt a cluster node's root volume. Defaults to false. + * + */ + public Optional> nodeRootVolumeEncrypted() { + return Optional.ofNullable(this.nodeRootVolumeEncrypted); + } + + /** + * The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + * + */ + @Import(name="nodeRootVolumeIops") + private @Nullable Output nodeRootVolumeIops; + + /** + * @return The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + * + */ + public Optional> nodeRootVolumeIops() { + return Optional.ofNullable(this.nodeRootVolumeIops); + } + /** * The size in GiB of a cluster node's root volume. Defaults to 20. * @@ -412,6 +457,36 @@ public Optional> nodeRootVolumeSize() { return Optional.ofNullable(this.nodeRootVolumeSize); } + /** + * Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + * + */ + @Import(name="nodeRootVolumeThroughput") + private @Nullable Output nodeRootVolumeThroughput; + + /** + * @return Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + * + */ + public Optional> nodeRootVolumeThroughput() { + return Optional.ofNullable(this.nodeRootVolumeThroughput); + } + + /** + * Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + * + */ + @Import(name="nodeRootVolumeType") + private @Nullable Output nodeRootVolumeType; + + /** + * @return Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + * + */ + public Optional> nodeRootVolumeType() { + return Optional.ofNullable(this.nodeRootVolumeType); + } + /** * The security group for the worker node group to communicate with the cluster. * @@ -562,7 +637,12 @@ private ClusterNodeGroupOptionsArgs(ClusterNodeGroupOptionsArgs $) { this.minSize = $.minSize; this.nodeAssociatePublicIpAddress = $.nodeAssociatePublicIpAddress; this.nodePublicKey = $.nodePublicKey; + this.nodeRootVolumeDeleteOnTermination = $.nodeRootVolumeDeleteOnTermination; + this.nodeRootVolumeEncrypted = $.nodeRootVolumeEncrypted; + this.nodeRootVolumeIops = $.nodeRootVolumeIops; this.nodeRootVolumeSize = $.nodeRootVolumeSize; + this.nodeRootVolumeThroughput = $.nodeRootVolumeThroughput; + this.nodeRootVolumeType = $.nodeRootVolumeType; this.nodeSecurityGroup = $.nodeSecurityGroup; this.nodeSubnetIds = $.nodeSubnetIds; this.nodeUserData = $.nodeUserData; @@ -1042,6 +1122,69 @@ public Builder nodePublicKey(String nodePublicKey) { return nodePublicKey(Output.of(nodePublicKey)); } + /** + * @param nodeRootVolumeDeleteOnTermination Whether the root block device should be deleted on termination of the instance. Defaults to true. + * + * @return builder + * + */ + public Builder nodeRootVolumeDeleteOnTermination(@Nullable Output nodeRootVolumeDeleteOnTermination) { + $.nodeRootVolumeDeleteOnTermination = nodeRootVolumeDeleteOnTermination; + return this; + } + + /** + * @param nodeRootVolumeDeleteOnTermination Whether the root block device should be deleted on termination of the instance. Defaults to true. + * + * @return builder + * + */ + public Builder nodeRootVolumeDeleteOnTermination(Boolean nodeRootVolumeDeleteOnTermination) { + return nodeRootVolumeDeleteOnTermination(Output.of(nodeRootVolumeDeleteOnTermination)); + } + + /** + * @param nodeRootVolumeEncrypted Whether to encrypt a cluster node's root volume. Defaults to false. + * + * @return builder + * + */ + public Builder nodeRootVolumeEncrypted(@Nullable Output nodeRootVolumeEncrypted) { + $.nodeRootVolumeEncrypted = nodeRootVolumeEncrypted; + return this; + } + + /** + * @param nodeRootVolumeEncrypted Whether to encrypt a cluster node's root volume. Defaults to false. + * + * @return builder + * + */ + public Builder nodeRootVolumeEncrypted(Boolean nodeRootVolumeEncrypted) { + return nodeRootVolumeEncrypted(Output.of(nodeRootVolumeEncrypted)); + } + + /** + * @param nodeRootVolumeIops The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + * + * @return builder + * + */ + public Builder nodeRootVolumeIops(@Nullable Output nodeRootVolumeIops) { + $.nodeRootVolumeIops = nodeRootVolumeIops; + return this; + } + + /** + * @param nodeRootVolumeIops The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + * + * @return builder + * + */ + public Builder nodeRootVolumeIops(Integer nodeRootVolumeIops) { + return nodeRootVolumeIops(Output.of(nodeRootVolumeIops)); + } + /** * @param nodeRootVolumeSize The size in GiB of a cluster node's root volume. Defaults to 20. * @@ -1063,6 +1206,48 @@ public Builder nodeRootVolumeSize(Integer nodeRootVolumeSize) { return nodeRootVolumeSize(Output.of(nodeRootVolumeSize)); } + /** + * @param nodeRootVolumeThroughput Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + * + * @return builder + * + */ + public Builder nodeRootVolumeThroughput(@Nullable Output nodeRootVolumeThroughput) { + $.nodeRootVolumeThroughput = nodeRootVolumeThroughput; + return this; + } + + /** + * @param nodeRootVolumeThroughput Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + * + * @return builder + * + */ + public Builder nodeRootVolumeThroughput(Integer nodeRootVolumeThroughput) { + return nodeRootVolumeThroughput(Output.of(nodeRootVolumeThroughput)); + } + + /** + * @param nodeRootVolumeType Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + * + * @return builder + * + */ + public Builder nodeRootVolumeType(@Nullable Output nodeRootVolumeType) { + $.nodeRootVolumeType = nodeRootVolumeType; + return this; + } + + /** + * @param nodeRootVolumeType Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + * + * @return builder + * + */ + public Builder nodeRootVolumeType(String nodeRootVolumeType) { + return nodeRootVolumeType(Output.of(nodeRootVolumeType)); + } + /** * @param nodeSecurityGroup The security group for the worker node group to communicate with the cluster. * diff --git a/sdk/java/src/main/java/com/pulumi/eks/outputs/ClusterNodeGroupOptions.java b/sdk/java/src/main/java/com/pulumi/eks/outputs/ClusterNodeGroupOptions.java index f27158fb0..24224e4eb 100644 --- a/sdk/java/src/main/java/com/pulumi/eks/outputs/ClusterNodeGroupOptions.java +++ b/sdk/java/src/main/java/com/pulumi/eks/outputs/ClusterNodeGroupOptions.java @@ -154,11 +154,36 @@ public final class ClusterNodeGroupOptions { * */ private @Nullable String nodePublicKey; + /** + * @return Whether the root block device should be deleted on termination of the instance. Defaults to true. + * + */ + private @Nullable Boolean nodeRootVolumeDeleteOnTermination; + /** + * @return Whether to encrypt a cluster node's root volume. Defaults to false. + * + */ + private @Nullable Boolean nodeRootVolumeEncrypted; + /** + * @return The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + * + */ + private @Nullable Integer nodeRootVolumeIops; /** * @return The size in GiB of a cluster node's root volume. Defaults to 20. * */ private @Nullable Integer nodeRootVolumeSize; + /** + * @return Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + * + */ + private @Nullable Integer nodeRootVolumeThroughput; + /** + * @return Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + * + */ + private @Nullable String nodeRootVolumeType; /** * @return The security group for the worker node group to communicate with the cluster. * @@ -382,6 +407,27 @@ public Optional nodeAssociatePublicIpAddress() { public Optional nodePublicKey() { return Optional.ofNullable(this.nodePublicKey); } + /** + * @return Whether the root block device should be deleted on termination of the instance. Defaults to true. + * + */ + public Optional nodeRootVolumeDeleteOnTermination() { + return Optional.ofNullable(this.nodeRootVolumeDeleteOnTermination); + } + /** + * @return Whether to encrypt a cluster node's root volume. Defaults to false. + * + */ + public Optional nodeRootVolumeEncrypted() { + return Optional.ofNullable(this.nodeRootVolumeEncrypted); + } + /** + * @return The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + * + */ + public Optional nodeRootVolumeIops() { + return Optional.ofNullable(this.nodeRootVolumeIops); + } /** * @return The size in GiB of a cluster node's root volume. Defaults to 20. * @@ -389,6 +435,20 @@ public Optional nodePublicKey() { public Optional nodeRootVolumeSize() { return Optional.ofNullable(this.nodeRootVolumeSize); } + /** + * @return Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + * + */ + public Optional nodeRootVolumeThroughput() { + return Optional.ofNullable(this.nodeRootVolumeThroughput); + } + /** + * @return Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + * + */ + public Optional nodeRootVolumeType() { + return Optional.ofNullable(this.nodeRootVolumeType); + } /** * @return The security group for the worker node group to communicate with the cluster. * @@ -479,7 +539,12 @@ public static final class Builder { private @Nullable Integer minSize; private @Nullable Boolean nodeAssociatePublicIpAddress; private @Nullable String nodePublicKey; + private @Nullable Boolean nodeRootVolumeDeleteOnTermination; + private @Nullable Boolean nodeRootVolumeEncrypted; + private @Nullable Integer nodeRootVolumeIops; private @Nullable Integer nodeRootVolumeSize; + private @Nullable Integer nodeRootVolumeThroughput; + private @Nullable String nodeRootVolumeType; private @Nullable SecurityGroup nodeSecurityGroup; private @Nullable List nodeSubnetIds; private @Nullable String nodeUserData; @@ -510,7 +575,12 @@ public Builder(ClusterNodeGroupOptions defaults) { this.minSize = defaults.minSize; this.nodeAssociatePublicIpAddress = defaults.nodeAssociatePublicIpAddress; this.nodePublicKey = defaults.nodePublicKey; + this.nodeRootVolumeDeleteOnTermination = defaults.nodeRootVolumeDeleteOnTermination; + this.nodeRootVolumeEncrypted = defaults.nodeRootVolumeEncrypted; + this.nodeRootVolumeIops = defaults.nodeRootVolumeIops; this.nodeRootVolumeSize = defaults.nodeRootVolumeSize; + this.nodeRootVolumeThroughput = defaults.nodeRootVolumeThroughput; + this.nodeRootVolumeType = defaults.nodeRootVolumeType; this.nodeSecurityGroup = defaults.nodeSecurityGroup; this.nodeSubnetIds = defaults.nodeSubnetIds; this.nodeUserData = defaults.nodeUserData; @@ -624,11 +694,36 @@ public Builder nodePublicKey(@Nullable String nodePublicKey) { return this; } @CustomType.Setter + public Builder nodeRootVolumeDeleteOnTermination(@Nullable Boolean nodeRootVolumeDeleteOnTermination) { + this.nodeRootVolumeDeleteOnTermination = nodeRootVolumeDeleteOnTermination; + return this; + } + @CustomType.Setter + public Builder nodeRootVolumeEncrypted(@Nullable Boolean nodeRootVolumeEncrypted) { + this.nodeRootVolumeEncrypted = nodeRootVolumeEncrypted; + return this; + } + @CustomType.Setter + public Builder nodeRootVolumeIops(@Nullable Integer nodeRootVolumeIops) { + this.nodeRootVolumeIops = nodeRootVolumeIops; + return this; + } + @CustomType.Setter public Builder nodeRootVolumeSize(@Nullable Integer nodeRootVolumeSize) { this.nodeRootVolumeSize = nodeRootVolumeSize; return this; } @CustomType.Setter + public Builder nodeRootVolumeThroughput(@Nullable Integer nodeRootVolumeThroughput) { + this.nodeRootVolumeThroughput = nodeRootVolumeThroughput; + return this; + } + @CustomType.Setter + public Builder nodeRootVolumeType(@Nullable String nodeRootVolumeType) { + this.nodeRootVolumeType = nodeRootVolumeType; + return this; + } + @CustomType.Setter public Builder nodeSecurityGroup(@Nullable SecurityGroup nodeSecurityGroup) { this.nodeSecurityGroup = nodeSecurityGroup; return this; @@ -688,7 +783,12 @@ public ClusterNodeGroupOptions build() { _resultValue.minSize = minSize; _resultValue.nodeAssociatePublicIpAddress = nodeAssociatePublicIpAddress; _resultValue.nodePublicKey = nodePublicKey; + _resultValue.nodeRootVolumeDeleteOnTermination = nodeRootVolumeDeleteOnTermination; + _resultValue.nodeRootVolumeEncrypted = nodeRootVolumeEncrypted; + _resultValue.nodeRootVolumeIops = nodeRootVolumeIops; _resultValue.nodeRootVolumeSize = nodeRootVolumeSize; + _resultValue.nodeRootVolumeThroughput = nodeRootVolumeThroughput; + _resultValue.nodeRootVolumeType = nodeRootVolumeType; _resultValue.nodeSecurityGroup = nodeSecurityGroup; _resultValue.nodeSubnetIds = nodeSubnetIds; _resultValue.nodeUserData = nodeUserData; diff --git a/sdk/python/pulumi_eks/_inputs.py b/sdk/python/pulumi_eks/_inputs.py index fc62cac25..eb4384463 100644 --- a/sdk/python/pulumi_eks/_inputs.py +++ b/sdk/python/pulumi_eks/_inputs.py @@ -200,7 +200,12 @@ def __init__(__self__, *, min_size: Optional[pulumi.Input[int]] = None, node_associate_public_ip_address: Optional[bool] = None, node_public_key: Optional[pulumi.Input[str]] = None, + node_root_volume_delete_on_termination: Optional[pulumi.Input[bool]] = None, + node_root_volume_encrypted: Optional[pulumi.Input[bool]] = None, + node_root_volume_iops: Optional[pulumi.Input[int]] = None, node_root_volume_size: Optional[pulumi.Input[int]] = None, + node_root_volume_throughput: Optional[pulumi.Input[int]] = None, + node_root_volume_type: Optional[pulumi.Input[str]] = None, node_security_group: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroup']] = None, node_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, node_user_data: Optional[pulumi.Input[str]] = None, @@ -265,7 +270,12 @@ def __init__(__self__, *, :param pulumi.Input[str] node_public_key: Public key material for SSH access to worker nodes. See allowed formats at: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html If not provided, no SSH access is enabled on VMs. + :param pulumi.Input[bool] node_root_volume_delete_on_termination: Whether the root block device should be deleted on termination of the instance. Defaults to true. + :param pulumi.Input[bool] node_root_volume_encrypted: Whether to encrypt a cluster node's root volume. Defaults to false. + :param pulumi.Input[int] node_root_volume_iops: The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. :param pulumi.Input[int] node_root_volume_size: The size in GiB of a cluster node's root volume. Defaults to 20. + :param pulumi.Input[int] node_root_volume_throughput: Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + :param pulumi.Input[str] node_root_volume_type: Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. :param pulumi.Input['pulumi_aws.ec2.SecurityGroup'] node_security_group: The security group for the worker node group to communicate with the cluster. This security group requires specific inbound and outbound rules. @@ -325,8 +335,18 @@ def __init__(__self__, *, pulumi.set(__self__, "node_associate_public_ip_address", node_associate_public_ip_address) if node_public_key is not None: pulumi.set(__self__, "node_public_key", node_public_key) + if node_root_volume_delete_on_termination is not None: + pulumi.set(__self__, "node_root_volume_delete_on_termination", node_root_volume_delete_on_termination) + if node_root_volume_encrypted is not None: + pulumi.set(__self__, "node_root_volume_encrypted", node_root_volume_encrypted) + if node_root_volume_iops is not None: + pulumi.set(__self__, "node_root_volume_iops", node_root_volume_iops) if node_root_volume_size is not None: pulumi.set(__self__, "node_root_volume_size", node_root_volume_size) + if node_root_volume_throughput is not None: + pulumi.set(__self__, "node_root_volume_throughput", node_root_volume_throughput) + if node_root_volume_type is not None: + pulumi.set(__self__, "node_root_volume_type", node_root_volume_type) if node_security_group is not None: pulumi.set(__self__, "node_security_group", node_security_group) if node_subnet_ids is not None: @@ -617,6 +637,42 @@ def node_public_key(self) -> Optional[pulumi.Input[str]]: def node_public_key(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "node_public_key", value) + @property + @pulumi.getter(name="nodeRootVolumeDeleteOnTermination") + def node_root_volume_delete_on_termination(self) -> Optional[pulumi.Input[bool]]: + """ + Whether the root block device should be deleted on termination of the instance. Defaults to true. + """ + return pulumi.get(self, "node_root_volume_delete_on_termination") + + @node_root_volume_delete_on_termination.setter + def node_root_volume_delete_on_termination(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "node_root_volume_delete_on_termination", value) + + @property + @pulumi.getter(name="nodeRootVolumeEncrypted") + def node_root_volume_encrypted(self) -> Optional[pulumi.Input[bool]]: + """ + Whether to encrypt a cluster node's root volume. Defaults to false. + """ + return pulumi.get(self, "node_root_volume_encrypted") + + @node_root_volume_encrypted.setter + def node_root_volume_encrypted(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "node_root_volume_encrypted", value) + + @property + @pulumi.getter(name="nodeRootVolumeIops") + def node_root_volume_iops(self) -> Optional[pulumi.Input[int]]: + """ + The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + """ + return pulumi.get(self, "node_root_volume_iops") + + @node_root_volume_iops.setter + def node_root_volume_iops(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "node_root_volume_iops", value) + @property @pulumi.getter(name="nodeRootVolumeSize") def node_root_volume_size(self) -> Optional[pulumi.Input[int]]: @@ -629,6 +685,30 @@ def node_root_volume_size(self) -> Optional[pulumi.Input[int]]: def node_root_volume_size(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "node_root_volume_size", value) + @property + @pulumi.getter(name="nodeRootVolumeThroughput") + def node_root_volume_throughput(self) -> Optional[pulumi.Input[int]]: + """ + Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + """ + return pulumi.get(self, "node_root_volume_throughput") + + @node_root_volume_throughput.setter + def node_root_volume_throughput(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "node_root_volume_throughput", value) + + @property + @pulumi.getter(name="nodeRootVolumeType") + def node_root_volume_type(self) -> Optional[pulumi.Input[str]]: + """ + Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + """ + return pulumi.get(self, "node_root_volume_type") + + @node_root_volume_type.setter + def node_root_volume_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "node_root_volume_type", value) + @property @pulumi.getter(name="nodeSecurityGroup") def node_security_group(self) -> Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]: diff --git a/sdk/python/pulumi_eks/node_group.py b/sdk/python/pulumi_eks/node_group.py index 88154a7f3..592c33bb1 100644 --- a/sdk/python/pulumi_eks/node_group.py +++ b/sdk/python/pulumi_eks/node_group.py @@ -41,7 +41,12 @@ def __init__(__self__, *, min_size: Optional[pulumi.Input[int]] = None, node_associate_public_ip_address: Optional[bool] = None, node_public_key: Optional[pulumi.Input[str]] = None, + node_root_volume_delete_on_termination: Optional[pulumi.Input[bool]] = None, + node_root_volume_encrypted: Optional[pulumi.Input[bool]] = None, + node_root_volume_iops: Optional[pulumi.Input[int]] = None, node_root_volume_size: Optional[pulumi.Input[int]] = None, + node_root_volume_throughput: Optional[pulumi.Input[int]] = None, + node_root_volume_type: Optional[pulumi.Input[str]] = None, node_security_group: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroup']] = None, node_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, node_user_data: Optional[pulumi.Input[str]] = None, @@ -107,7 +112,12 @@ def __init__(__self__, *, :param pulumi.Input[str] node_public_key: Public key material for SSH access to worker nodes. See allowed formats at: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html If not provided, no SSH access is enabled on VMs. + :param pulumi.Input[bool] node_root_volume_delete_on_termination: Whether the root block device should be deleted on termination of the instance. Defaults to true. + :param pulumi.Input[bool] node_root_volume_encrypted: Whether to encrypt a cluster node's root volume. Defaults to false. + :param pulumi.Input[int] node_root_volume_iops: The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. :param pulumi.Input[int] node_root_volume_size: The size in GiB of a cluster node's root volume. Defaults to 20. + :param pulumi.Input[int] node_root_volume_throughput: Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + :param pulumi.Input[str] node_root_volume_type: Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. :param pulumi.Input['pulumi_aws.ec2.SecurityGroup'] node_security_group: The security group for the worker node group to communicate with the cluster. This security group requires specific inbound and outbound rules. @@ -168,8 +178,18 @@ def __init__(__self__, *, pulumi.set(__self__, "node_associate_public_ip_address", node_associate_public_ip_address) if node_public_key is not None: pulumi.set(__self__, "node_public_key", node_public_key) + if node_root_volume_delete_on_termination is not None: + pulumi.set(__self__, "node_root_volume_delete_on_termination", node_root_volume_delete_on_termination) + if node_root_volume_encrypted is not None: + pulumi.set(__self__, "node_root_volume_encrypted", node_root_volume_encrypted) + if node_root_volume_iops is not None: + pulumi.set(__self__, "node_root_volume_iops", node_root_volume_iops) if node_root_volume_size is not None: pulumi.set(__self__, "node_root_volume_size", node_root_volume_size) + if node_root_volume_throughput is not None: + pulumi.set(__self__, "node_root_volume_throughput", node_root_volume_throughput) + if node_root_volume_type is not None: + pulumi.set(__self__, "node_root_volume_type", node_root_volume_type) if node_security_group is not None: pulumi.set(__self__, "node_security_group", node_security_group) if node_subnet_ids is not None: @@ -472,6 +492,42 @@ def node_public_key(self) -> Optional[pulumi.Input[str]]: def node_public_key(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "node_public_key", value) + @property + @pulumi.getter(name="nodeRootVolumeDeleteOnTermination") + def node_root_volume_delete_on_termination(self) -> Optional[pulumi.Input[bool]]: + """ + Whether the root block device should be deleted on termination of the instance. Defaults to true. + """ + return pulumi.get(self, "node_root_volume_delete_on_termination") + + @node_root_volume_delete_on_termination.setter + def node_root_volume_delete_on_termination(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "node_root_volume_delete_on_termination", value) + + @property + @pulumi.getter(name="nodeRootVolumeEncrypted") + def node_root_volume_encrypted(self) -> Optional[pulumi.Input[bool]]: + """ + Whether to encrypt a cluster node's root volume. Defaults to false. + """ + return pulumi.get(self, "node_root_volume_encrypted") + + @node_root_volume_encrypted.setter + def node_root_volume_encrypted(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "node_root_volume_encrypted", value) + + @property + @pulumi.getter(name="nodeRootVolumeIops") + def node_root_volume_iops(self) -> Optional[pulumi.Input[int]]: + """ + The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + """ + return pulumi.get(self, "node_root_volume_iops") + + @node_root_volume_iops.setter + def node_root_volume_iops(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "node_root_volume_iops", value) + @property @pulumi.getter(name="nodeRootVolumeSize") def node_root_volume_size(self) -> Optional[pulumi.Input[int]]: @@ -484,6 +540,30 @@ def node_root_volume_size(self) -> Optional[pulumi.Input[int]]: def node_root_volume_size(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "node_root_volume_size", value) + @property + @pulumi.getter(name="nodeRootVolumeThroughput") + def node_root_volume_throughput(self) -> Optional[pulumi.Input[int]]: + """ + Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + """ + return pulumi.get(self, "node_root_volume_throughput") + + @node_root_volume_throughput.setter + def node_root_volume_throughput(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "node_root_volume_throughput", value) + + @property + @pulumi.getter(name="nodeRootVolumeType") + def node_root_volume_type(self) -> Optional[pulumi.Input[str]]: + """ + Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + """ + return pulumi.get(self, "node_root_volume_type") + + @node_root_volume_type.setter + def node_root_volume_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "node_root_volume_type", value) + @property @pulumi.getter(name="nodeSecurityGroup") def node_security_group(self) -> Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]: @@ -606,7 +686,12 @@ def __init__(__self__, min_size: Optional[pulumi.Input[int]] = None, node_associate_public_ip_address: Optional[bool] = None, node_public_key: Optional[pulumi.Input[str]] = None, + node_root_volume_delete_on_termination: Optional[pulumi.Input[bool]] = None, + node_root_volume_encrypted: Optional[pulumi.Input[bool]] = None, + node_root_volume_iops: Optional[pulumi.Input[int]] = None, node_root_volume_size: Optional[pulumi.Input[int]] = None, + node_root_volume_throughput: Optional[pulumi.Input[int]] = None, + node_root_volume_type: Optional[pulumi.Input[str]] = None, node_security_group: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroup']] = None, node_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, node_user_data: Optional[pulumi.Input[str]] = None, @@ -676,7 +761,12 @@ def __init__(__self__, :param pulumi.Input[str] node_public_key: Public key material for SSH access to worker nodes. See allowed formats at: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html If not provided, no SSH access is enabled on VMs. + :param pulumi.Input[bool] node_root_volume_delete_on_termination: Whether the root block device should be deleted on termination of the instance. Defaults to true. + :param pulumi.Input[bool] node_root_volume_encrypted: Whether to encrypt a cluster node's root volume. Defaults to false. + :param pulumi.Input[int] node_root_volume_iops: The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. :param pulumi.Input[int] node_root_volume_size: The size in GiB of a cluster node's root volume. Defaults to 20. + :param pulumi.Input[int] node_root_volume_throughput: Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + :param pulumi.Input[str] node_root_volume_type: Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. :param pulumi.Input['pulumi_aws.ec2.SecurityGroup'] node_security_group: The security group for the worker node group to communicate with the cluster. This security group requires specific inbound and outbound rules. @@ -741,7 +831,12 @@ def _internal_init(__self__, min_size: Optional[pulumi.Input[int]] = None, node_associate_public_ip_address: Optional[bool] = None, node_public_key: Optional[pulumi.Input[str]] = None, + node_root_volume_delete_on_termination: Optional[pulumi.Input[bool]] = None, + node_root_volume_encrypted: Optional[pulumi.Input[bool]] = None, + node_root_volume_iops: Optional[pulumi.Input[int]] = None, node_root_volume_size: Optional[pulumi.Input[int]] = None, + node_root_volume_throughput: Optional[pulumi.Input[int]] = None, + node_root_volume_type: Optional[pulumi.Input[str]] = None, node_security_group: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroup']] = None, node_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, node_user_data: Optional[pulumi.Input[str]] = None, @@ -783,7 +878,12 @@ def _internal_init(__self__, __props__.__dict__["min_size"] = min_size __props__.__dict__["node_associate_public_ip_address"] = node_associate_public_ip_address __props__.__dict__["node_public_key"] = node_public_key + __props__.__dict__["node_root_volume_delete_on_termination"] = node_root_volume_delete_on_termination + __props__.__dict__["node_root_volume_encrypted"] = node_root_volume_encrypted + __props__.__dict__["node_root_volume_iops"] = node_root_volume_iops __props__.__dict__["node_root_volume_size"] = node_root_volume_size + __props__.__dict__["node_root_volume_throughput"] = node_root_volume_throughput + __props__.__dict__["node_root_volume_type"] = node_root_volume_type __props__.__dict__["node_security_group"] = node_security_group __props__.__dict__["node_subnet_ids"] = node_subnet_ids __props__.__dict__["node_user_data"] = node_user_data diff --git a/sdk/python/pulumi_eks/node_group_v2.py b/sdk/python/pulumi_eks/node_group_v2.py index 21b3595ad..a8e868bcc 100644 --- a/sdk/python/pulumi_eks/node_group_v2.py +++ b/sdk/python/pulumi_eks/node_group_v2.py @@ -43,7 +43,12 @@ def __init__(__self__, *, min_size: Optional[pulumi.Input[int]] = None, node_associate_public_ip_address: Optional[bool] = None, node_public_key: Optional[pulumi.Input[str]] = None, + node_root_volume_delete_on_termination: Optional[pulumi.Input[bool]] = None, + node_root_volume_encrypted: Optional[pulumi.Input[bool]] = None, + node_root_volume_iops: Optional[pulumi.Input[int]] = None, node_root_volume_size: Optional[pulumi.Input[int]] = None, + node_root_volume_throughput: Optional[pulumi.Input[int]] = None, + node_root_volume_type: Optional[pulumi.Input[str]] = None, node_security_group: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroup']] = None, node_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, node_user_data: Optional[pulumi.Input[str]] = None, @@ -111,7 +116,12 @@ def __init__(__self__, *, :param pulumi.Input[str] node_public_key: Public key material for SSH access to worker nodes. See allowed formats at: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html If not provided, no SSH access is enabled on VMs. + :param pulumi.Input[bool] node_root_volume_delete_on_termination: Whether the root block device should be deleted on termination of the instance. Defaults to true. + :param pulumi.Input[bool] node_root_volume_encrypted: Whether to encrypt a cluster node's root volume. Defaults to false. + :param pulumi.Input[int] node_root_volume_iops: The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. :param pulumi.Input[int] node_root_volume_size: The size in GiB of a cluster node's root volume. Defaults to 20. + :param pulumi.Input[int] node_root_volume_throughput: Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + :param pulumi.Input[str] node_root_volume_type: Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. :param pulumi.Input['pulumi_aws.ec2.SecurityGroup'] node_security_group: The security group for the worker node group to communicate with the cluster. This security group requires specific inbound and outbound rules. @@ -176,8 +186,18 @@ def __init__(__self__, *, pulumi.set(__self__, "node_associate_public_ip_address", node_associate_public_ip_address) if node_public_key is not None: pulumi.set(__self__, "node_public_key", node_public_key) + if node_root_volume_delete_on_termination is not None: + pulumi.set(__self__, "node_root_volume_delete_on_termination", node_root_volume_delete_on_termination) + if node_root_volume_encrypted is not None: + pulumi.set(__self__, "node_root_volume_encrypted", node_root_volume_encrypted) + if node_root_volume_iops is not None: + pulumi.set(__self__, "node_root_volume_iops", node_root_volume_iops) if node_root_volume_size is not None: pulumi.set(__self__, "node_root_volume_size", node_root_volume_size) + if node_root_volume_throughput is not None: + pulumi.set(__self__, "node_root_volume_throughput", node_root_volume_throughput) + if node_root_volume_type is not None: + pulumi.set(__self__, "node_root_volume_type", node_root_volume_type) if node_security_group is not None: pulumi.set(__self__, "node_security_group", node_security_group) if node_subnet_ids is not None: @@ -504,6 +524,42 @@ def node_public_key(self) -> Optional[pulumi.Input[str]]: def node_public_key(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "node_public_key", value) + @property + @pulumi.getter(name="nodeRootVolumeDeleteOnTermination") + def node_root_volume_delete_on_termination(self) -> Optional[pulumi.Input[bool]]: + """ + Whether the root block device should be deleted on termination of the instance. Defaults to true. + """ + return pulumi.get(self, "node_root_volume_delete_on_termination") + + @node_root_volume_delete_on_termination.setter + def node_root_volume_delete_on_termination(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "node_root_volume_delete_on_termination", value) + + @property + @pulumi.getter(name="nodeRootVolumeEncrypted") + def node_root_volume_encrypted(self) -> Optional[pulumi.Input[bool]]: + """ + Whether to encrypt a cluster node's root volume. Defaults to false. + """ + return pulumi.get(self, "node_root_volume_encrypted") + + @node_root_volume_encrypted.setter + def node_root_volume_encrypted(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "node_root_volume_encrypted", value) + + @property + @pulumi.getter(name="nodeRootVolumeIops") + def node_root_volume_iops(self) -> Optional[pulumi.Input[int]]: + """ + The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + """ + return pulumi.get(self, "node_root_volume_iops") + + @node_root_volume_iops.setter + def node_root_volume_iops(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "node_root_volume_iops", value) + @property @pulumi.getter(name="nodeRootVolumeSize") def node_root_volume_size(self) -> Optional[pulumi.Input[int]]: @@ -516,6 +572,30 @@ def node_root_volume_size(self) -> Optional[pulumi.Input[int]]: def node_root_volume_size(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "node_root_volume_size", value) + @property + @pulumi.getter(name="nodeRootVolumeThroughput") + def node_root_volume_throughput(self) -> Optional[pulumi.Input[int]]: + """ + Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + """ + return pulumi.get(self, "node_root_volume_throughput") + + @node_root_volume_throughput.setter + def node_root_volume_throughput(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "node_root_volume_throughput", value) + + @property + @pulumi.getter(name="nodeRootVolumeType") + def node_root_volume_type(self) -> Optional[pulumi.Input[str]]: + """ + Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + """ + return pulumi.get(self, "node_root_volume_type") + + @node_root_volume_type.setter + def node_root_volume_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "node_root_volume_type", value) + @property @pulumi.getter(name="nodeSecurityGroup") def node_security_group(self) -> Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]: @@ -640,7 +720,12 @@ def __init__(__self__, min_size: Optional[pulumi.Input[int]] = None, node_associate_public_ip_address: Optional[bool] = None, node_public_key: Optional[pulumi.Input[str]] = None, + node_root_volume_delete_on_termination: Optional[pulumi.Input[bool]] = None, + node_root_volume_encrypted: Optional[pulumi.Input[bool]] = None, + node_root_volume_iops: Optional[pulumi.Input[int]] = None, node_root_volume_size: Optional[pulumi.Input[int]] = None, + node_root_volume_throughput: Optional[pulumi.Input[int]] = None, + node_root_volume_type: Optional[pulumi.Input[str]] = None, node_security_group: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroup']] = None, node_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, node_user_data: Optional[pulumi.Input[str]] = None, @@ -712,7 +797,12 @@ def __init__(__self__, :param pulumi.Input[str] node_public_key: Public key material for SSH access to worker nodes. See allowed formats at: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html If not provided, no SSH access is enabled on VMs. + :param pulumi.Input[bool] node_root_volume_delete_on_termination: Whether the root block device should be deleted on termination of the instance. Defaults to true. + :param pulumi.Input[bool] node_root_volume_encrypted: Whether to encrypt a cluster node's root volume. Defaults to false. + :param pulumi.Input[int] node_root_volume_iops: The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. :param pulumi.Input[int] node_root_volume_size: The size in GiB of a cluster node's root volume. Defaults to 20. + :param pulumi.Input[int] node_root_volume_throughput: Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + :param pulumi.Input[str] node_root_volume_type: Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. :param pulumi.Input['pulumi_aws.ec2.SecurityGroup'] node_security_group: The security group for the worker node group to communicate with the cluster. This security group requires specific inbound and outbound rules. @@ -779,7 +869,12 @@ def _internal_init(__self__, min_size: Optional[pulumi.Input[int]] = None, node_associate_public_ip_address: Optional[bool] = None, node_public_key: Optional[pulumi.Input[str]] = None, + node_root_volume_delete_on_termination: Optional[pulumi.Input[bool]] = None, + node_root_volume_encrypted: Optional[pulumi.Input[bool]] = None, + node_root_volume_iops: Optional[pulumi.Input[int]] = None, node_root_volume_size: Optional[pulumi.Input[int]] = None, + node_root_volume_throughput: Optional[pulumi.Input[int]] = None, + node_root_volume_type: Optional[pulumi.Input[str]] = None, node_security_group: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroup']] = None, node_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, node_user_data: Optional[pulumi.Input[str]] = None, @@ -823,7 +918,12 @@ def _internal_init(__self__, __props__.__dict__["min_size"] = min_size __props__.__dict__["node_associate_public_ip_address"] = node_associate_public_ip_address __props__.__dict__["node_public_key"] = node_public_key + __props__.__dict__["node_root_volume_delete_on_termination"] = node_root_volume_delete_on_termination + __props__.__dict__["node_root_volume_encrypted"] = node_root_volume_encrypted + __props__.__dict__["node_root_volume_iops"] = node_root_volume_iops __props__.__dict__["node_root_volume_size"] = node_root_volume_size + __props__.__dict__["node_root_volume_throughput"] = node_root_volume_throughput + __props__.__dict__["node_root_volume_type"] = node_root_volume_type __props__.__dict__["node_security_group"] = node_security_group __props__.__dict__["node_subnet_ids"] = node_subnet_ids __props__.__dict__["node_user_data"] = node_user_data diff --git a/sdk/python/pulumi_eks/outputs.py b/sdk/python/pulumi_eks/outputs.py index b9d69cf27..e29153e5a 100644 --- a/sdk/python/pulumi_eks/outputs.py +++ b/sdk/python/pulumi_eks/outputs.py @@ -236,8 +236,18 @@ def __key_warning(key: str): suggest = "node_associate_public_ip_address" elif key == "nodePublicKey": suggest = "node_public_key" + elif key == "nodeRootVolumeDeleteOnTermination": + suggest = "node_root_volume_delete_on_termination" + elif key == "nodeRootVolumeEncrypted": + suggest = "node_root_volume_encrypted" + elif key == "nodeRootVolumeIops": + suggest = "node_root_volume_iops" elif key == "nodeRootVolumeSize": suggest = "node_root_volume_size" + elif key == "nodeRootVolumeThroughput": + suggest = "node_root_volume_throughput" + elif key == "nodeRootVolumeType": + suggest = "node_root_volume_type" elif key == "nodeSecurityGroup": suggest = "node_security_group" elif key == "nodeSubnetIds": @@ -281,7 +291,12 @@ def __init__(__self__, *, min_size: Optional[int] = None, node_associate_public_ip_address: Optional[bool] = None, node_public_key: Optional[str] = None, + node_root_volume_delete_on_termination: Optional[bool] = None, + node_root_volume_encrypted: Optional[bool] = None, + node_root_volume_iops: Optional[int] = None, node_root_volume_size: Optional[int] = None, + node_root_volume_throughput: Optional[int] = None, + node_root_volume_type: Optional[str] = None, node_security_group: Optional['pulumi_aws.ec2.SecurityGroup'] = None, node_subnet_ids: Optional[Sequence[str]] = None, node_user_data: Optional[str] = None, @@ -346,7 +361,12 @@ def __init__(__self__, *, :param str node_public_key: Public key material for SSH access to worker nodes. See allowed formats at: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html If not provided, no SSH access is enabled on VMs. + :param bool node_root_volume_delete_on_termination: Whether the root block device should be deleted on termination of the instance. Defaults to true. + :param bool node_root_volume_encrypted: Whether to encrypt a cluster node's root volume. Defaults to false. + :param int node_root_volume_iops: The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. :param int node_root_volume_size: The size in GiB of a cluster node's root volume. Defaults to 20. + :param int node_root_volume_throughput: Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + :param str node_root_volume_type: Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. :param 'pulumi_aws.ec2.SecurityGroup' node_security_group: The security group for the worker node group to communicate with the cluster. This security group requires specific inbound and outbound rules. @@ -406,8 +426,18 @@ def __init__(__self__, *, pulumi.set(__self__, "node_associate_public_ip_address", node_associate_public_ip_address) if node_public_key is not None: pulumi.set(__self__, "node_public_key", node_public_key) + if node_root_volume_delete_on_termination is not None: + pulumi.set(__self__, "node_root_volume_delete_on_termination", node_root_volume_delete_on_termination) + if node_root_volume_encrypted is not None: + pulumi.set(__self__, "node_root_volume_encrypted", node_root_volume_encrypted) + if node_root_volume_iops is not None: + pulumi.set(__self__, "node_root_volume_iops", node_root_volume_iops) if node_root_volume_size is not None: pulumi.set(__self__, "node_root_volume_size", node_root_volume_size) + if node_root_volume_throughput is not None: + pulumi.set(__self__, "node_root_volume_throughput", node_root_volume_throughput) + if node_root_volume_type is not None: + pulumi.set(__self__, "node_root_volume_type", node_root_volume_type) if node_security_group is not None: pulumi.set(__self__, "node_security_group", node_security_group) if node_subnet_ids is not None: @@ -618,6 +648,30 @@ def node_public_key(self) -> Optional[str]: """ return pulumi.get(self, "node_public_key") + @property + @pulumi.getter(name="nodeRootVolumeDeleteOnTermination") + def node_root_volume_delete_on_termination(self) -> Optional[bool]: + """ + Whether the root block device should be deleted on termination of the instance. Defaults to true. + """ + return pulumi.get(self, "node_root_volume_delete_on_termination") + + @property + @pulumi.getter(name="nodeRootVolumeEncrypted") + def node_root_volume_encrypted(self) -> Optional[bool]: + """ + Whether to encrypt a cluster node's root volume. Defaults to false. + """ + return pulumi.get(self, "node_root_volume_encrypted") + + @property + @pulumi.getter(name="nodeRootVolumeIops") + def node_root_volume_iops(self) -> Optional[int]: + """ + The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'. + """ + return pulumi.get(self, "node_root_volume_iops") + @property @pulumi.getter(name="nodeRootVolumeSize") def node_root_volume_size(self) -> Optional[int]: @@ -626,6 +680,22 @@ def node_root_volume_size(self) -> Optional[int]: """ return pulumi.get(self, "node_root_volume_size") + @property + @pulumi.getter(name="nodeRootVolumeThroughput") + def node_root_volume_throughput(self) -> Optional[int]: + """ + Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'. + """ + return pulumi.get(self, "node_root_volume_throughput") + + @property + @pulumi.getter(name="nodeRootVolumeType") + def node_root_volume_type(self) -> Optional[str]: + """ + Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'. + """ + return pulumi.get(self, "node_root_volume_type") + @property @pulumi.getter(name="nodeSecurityGroup") def node_security_group(self) -> Optional['pulumi_aws.ec2.SecurityGroup']: