diff --git a/examples/cluster-go/step1/main.go b/examples/cluster-go/step1/main.go index 861653f1..34c150c7 100644 --- a/examples/cluster-go/step1/main.go +++ b/examples/cluster-go/step1/main.go @@ -36,9 +36,10 @@ func main() { // https://github.com/pulumi/pulumi-eks/pull/813 cluster3, err := eks.NewCluster(ctx, "example-cluster-3", &eks.ClusterArgs{ NodeGroupOptions: &eks.ClusterNodeGroupOptionsArgs{ - DesiredCapacity: pulumi.IntPtr(2), - MinSize: pulumi.IntPtr(2), - MaxSize: pulumi.IntPtr(2), + DesiredCapacity: pulumi.IntPtr(2), + MinSize: pulumi.IntPtr(2), + MaxSize: pulumi.IntPtr(2), + EnableDetailedMonitoring: pulumi.Bool(false), }, }) if err != nil { diff --git a/examples/cluster-go/step2/main.go b/examples/cluster-go/step2/main.go index caa1bbb2..87b667b2 100644 --- a/examples/cluster-go/step2/main.go +++ b/examples/cluster-go/step2/main.go @@ -37,9 +37,10 @@ func main() { // https://github.com/pulumi/pulumi-eks/pull/813 cluster3, err := eks.NewCluster(ctx, "example-cluster-3", &eks.ClusterArgs{ NodeGroupOptions: &eks.ClusterNodeGroupOptionsArgs{ - DesiredCapacity: pulumi.IntPtr(2), - MinSize: pulumi.IntPtr(2), - MaxSize: pulumi.IntPtr(2), + DesiredCapacity: pulumi.IntPtr(2), + MinSize: pulumi.IntPtr(2), + MaxSize: pulumi.IntPtr(2), + EnableDetailedMonitoring: pulumi.Bool(false), }, }) if err != nil { diff --git a/examples/cluster/index.ts b/examples/cluster/index.ts index 38dddb32..4a0dacc1 100644 --- a/examples/cluster/index.ts +++ b/examples/cluster/index.ts @@ -37,6 +37,7 @@ const cluster3 = new eks.Cluster(`${projectName}-3`, { minSize: 1, maxSize: 1, instanceType: "t3.small", + enableDetailedMonitoring: false, } }) diff --git a/nodejs/eks/nodegroup.ts b/nodejs/eks/nodegroup.ts index 2c256649..b7e8a8e1 100644 --- a/nodejs/eks/nodegroup.ts +++ b/nodejs/eks/nodegroup.ts @@ -271,6 +271,17 @@ export interface NodeGroupBaseOptions { * `autoScalingGroupTags` or `cloudFormationTags`, but not both. */ cloudFormationTags?: InputTags; + + /** + * Enables/disables detailed monitoring of the EC2 instances. + * + * With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + * When enabled, you can also get aggregated data across groups of similar instances. + * + * Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + * For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + */ + enableDetailedMonitoring?: pulumi.Input; } /** @@ -795,6 +806,7 @@ ${customUserData} deleteOnTermination: args.nodeRootVolumeDeleteOnTermination ?? true, }, userData: args.nodeUserDataOverride || userdata, + enableMonitoring: args.enableDetailedMonitoring, }, { parent, provider }, ); @@ -1219,6 +1231,9 @@ ${customUserData} metadataOptions: args.metadataOptions, userData: userdata, tagSpecifications: args.launchTemplateTagSpecifications, + monitoring: { + enabled: args.enableDetailedMonitoring, + }, }, { parent, provider }, ); diff --git a/provider/cmd/pulumi-gen-eks/main.go b/provider/cmd/pulumi-gen-eks/main.go index a8af2a42..3daf6b8b 100644 --- a/provider/cmd/pulumi-gen-eks/main.go +++ b/provider/cmd/pulumi-gen-eks/main.go @@ -1640,6 +1640,16 @@ func nodeGroupProperties(cluster, v2 bool) map[string]schema.PropertySpec { "should either supply the tag in `autoScalingGroupTags` or `cloudFormationTags`, but not " + "both.", }, + "enableDetailedMonitoring": { + TypeSpec: schema.TypeSpec{ + Type: "boolean", + }, + Description: "Enables/disables detailed monitoring of the EC2 instances.\n\n" + + "With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals.\n" + + "When enabled, you can also get aggregated data across groups of similar instances.\n\n" + + "Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage.\n" + + "For more information, see \"Paid tier\" and \"Example 1 - EC2 Detailed Monitoring\" here https://aws.amazon.com/cloudwatch/pricing/.", + }, } if cluster { diff --git a/provider/cmd/pulumi-resource-eks/schema.json b/provider/cmd/pulumi-resource-eks/schema.json index 5f2ab79e..b44cc85b 100644 --- a/provider/cmd/pulumi-resource-eks/schema.json +++ b/provider/cmd/pulumi-resource-eks/schema.json @@ -84,6 +84,10 @@ "type": "integer", "description": "The number of worker nodes that should be running in the cluster. Defaults to 2." }, + "enableDetailedMonitoring": { + "type": "boolean", + "description": "Enables/disables detailed monitoring of the EC2 instances.\n\nWith detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals.\nWhen enabled, you can also get aggregated data across groups of similar instances.\n\nNote: You are charged per metric that is sent to CloudWatch. You are not charged for data storage.\nFor more information, see \"Paid tier\" and \"Example 1 - EC2 Detailed Monitoring\" here https://aws.amazon.com/cloudwatch/pricing/." + }, "encryptRootBlockDevice": { "type": "boolean", "description": "Encrypt the root block device of the nodes in the node group." @@ -1159,6 +1163,10 @@ "type": "integer", "description": "The number of worker nodes that should be running in the cluster. Defaults to 2." }, + "enableDetailedMonitoring": { + "type": "boolean", + "description": "Enables/disables detailed monitoring of the EC2 instances.\n\nWith detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals.\nWhen enabled, you can also get aggregated data across groups of similar instances.\n\nNote: You are charged per metric that is sent to CloudWatch. You are not charged for data storage.\nFor more information, see \"Paid tier\" and \"Example 1 - EC2 Detailed Monitoring\" here https://aws.amazon.com/cloudwatch/pricing/." + }, "encryptRootBlockDevice": { "type": "boolean", "description": "Encrypt the root block device of the nodes in the node group." @@ -1379,6 +1387,10 @@ "type": "integer", "description": "The number of worker nodes that should be running in the cluster. Defaults to 2." }, + "enableDetailedMonitoring": { + "type": "boolean", + "description": "Enables/disables detailed monitoring of the EC2 instances.\n\nWith detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals.\nWhen enabled, you can also get aggregated data across groups of similar instances.\n\nNote: You are charged per metric that is sent to CloudWatch. You are not charged for data storage.\nFor more information, see \"Paid tier\" and \"Example 1 - EC2 Detailed Monitoring\" here https://aws.amazon.com/cloudwatch/pricing/." + }, "encryptRootBlockDevice": { "type": "boolean", "description": "Encrypt the root block device of the nodes in the node group." diff --git a/sdk/dotnet/Inputs/ClusterNodeGroupOptionsArgs.cs b/sdk/dotnet/Inputs/ClusterNodeGroupOptionsArgs.cs index 74600d3f..11b36c5d 100644 --- a/sdk/dotnet/Inputs/ClusterNodeGroupOptionsArgs.cs +++ b/sdk/dotnet/Inputs/ClusterNodeGroupOptionsArgs.cs @@ -86,6 +86,18 @@ public InputMap CloudFormationTags [Input("desiredCapacity")] public Input? DesiredCapacity { get; set; } + /// + /// Enables/disables detailed monitoring of the EC2 instances. + /// + /// With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + /// When enabled, you can also get aggregated data across groups of similar instances. + /// + /// Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + /// For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + /// + [Input("enableDetailedMonitoring")] + public Input? EnableDetailedMonitoring { get; set; } + /// /// Encrypt the root block device of the nodes in the node group. /// diff --git a/sdk/dotnet/NodeGroup.cs b/sdk/dotnet/NodeGroup.cs index cb55c7c6..5acb6f13 100644 --- a/sdk/dotnet/NodeGroup.cs +++ b/sdk/dotnet/NodeGroup.cs @@ -144,6 +144,18 @@ public InputMap CloudFormationTags [Input("desiredCapacity")] public Input? DesiredCapacity { get; set; } + /// + /// Enables/disables detailed monitoring of the EC2 instances. + /// + /// With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + /// When enabled, you can also get aggregated data across groups of similar instances. + /// + /// Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + /// For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + /// + [Input("enableDetailedMonitoring")] + public Input? EnableDetailedMonitoring { get; set; } + /// /// Encrypt the root block device of the nodes in the node group. /// diff --git a/sdk/dotnet/NodeGroupV2.cs b/sdk/dotnet/NodeGroupV2.cs index fbc75c3e..a473636f 100644 --- a/sdk/dotnet/NodeGroupV2.cs +++ b/sdk/dotnet/NodeGroupV2.cs @@ -138,6 +138,18 @@ public InputMap CloudFormationTags [Input("desiredCapacity")] public Input? DesiredCapacity { get; set; } + /// + /// Enables/disables detailed monitoring of the EC2 instances. + /// + /// With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + /// When enabled, you can also get aggregated data across groups of similar instances. + /// + /// Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + /// For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + /// + [Input("enableDetailedMonitoring")] + public Input? EnableDetailedMonitoring { get; set; } + /// /// Encrypt the root block device of the nodes in the node group. /// diff --git a/sdk/dotnet/Outputs/ClusterNodeGroupOptions.cs b/sdk/dotnet/Outputs/ClusterNodeGroupOptions.cs index a9498321..e36067e4 100644 --- a/sdk/dotnet/Outputs/ClusterNodeGroupOptions.cs +++ b/sdk/dotnet/Outputs/ClusterNodeGroupOptions.cs @@ -62,6 +62,16 @@ public sealed class ClusterNodeGroupOptions /// public readonly int? DesiredCapacity; /// + /// Enables/disables detailed monitoring of the EC2 instances. + /// + /// With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + /// When enabled, you can also get aggregated data across groups of similar instances. + /// + /// Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + /// For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + /// + public readonly bool? EnableDetailedMonitoring; + /// /// Encrypt the root block device of the nodes in the node group. /// public readonly bool? EncryptRootBlockDevice; @@ -181,6 +191,8 @@ public sealed class ClusterNodeGroupOptions int? desiredCapacity, + bool? enableDetailedMonitoring, + bool? encryptRootBlockDevice, ImmutableArray extraNodeSecurityGroups, @@ -228,6 +240,7 @@ public sealed class ClusterNodeGroupOptions CloudFormationTags = cloudFormationTags; ClusterIngressRule = clusterIngressRule; DesiredCapacity = desiredCapacity; + EnableDetailedMonitoring = enableDetailedMonitoring; EncryptRootBlockDevice = encryptRootBlockDevice; ExtraNodeSecurityGroups = extraNodeSecurityGroups; Gpu = gpu; diff --git a/sdk/go/eks/nodeGroup.go b/sdk/go/eks/nodeGroup.go index 3c56c190..da91f8a3 100644 --- a/sdk/go/eks/nodeGroup.go +++ b/sdk/go/eks/nodeGroup.go @@ -82,6 +82,14 @@ type nodeGroupArgs struct { ClusterIngressRule *ec2.SecurityGroupRule `pulumi:"clusterIngressRule"` // The number of worker nodes that should be running in the cluster. Defaults to 2. DesiredCapacity *int `pulumi:"desiredCapacity"` + // Enables/disables detailed monitoring of the EC2 instances. + // + // With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + // When enabled, you can also get aggregated data across groups of similar instances. + // + // Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + // For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + EnableDetailedMonitoring *bool `pulumi:"enableDetailedMonitoring"` // Encrypt the root block device of the nodes in the node group. EncryptRootBlockDevice *bool `pulumi:"encryptRootBlockDevice"` // Extra security groups to attach on all nodes in this worker node group. @@ -182,6 +190,14 @@ type NodeGroupArgs struct { ClusterIngressRule ec2.SecurityGroupRuleInput // The number of worker nodes that should be running in the cluster. Defaults to 2. DesiredCapacity pulumi.IntPtrInput + // Enables/disables detailed monitoring of the EC2 instances. + // + // With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + // When enabled, you can also get aggregated data across groups of similar instances. + // + // Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + // For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + EnableDetailedMonitoring pulumi.BoolPtrInput // Encrypt the root block device of the nodes in the node group. EncryptRootBlockDevice pulumi.BoolPtrInput // Extra security groups to attach on all nodes in this worker node group. diff --git a/sdk/go/eks/nodeGroupV2.go b/sdk/go/eks/nodeGroupV2.go index 9ab6f0b0..f007b75a 100644 --- a/sdk/go/eks/nodeGroupV2.go +++ b/sdk/go/eks/nodeGroupV2.go @@ -80,6 +80,14 @@ type nodeGroupV2Args struct { ClusterIngressRule *ec2.SecurityGroupRule `pulumi:"clusterIngressRule"` // The number of worker nodes that should be running in the cluster. Defaults to 2. DesiredCapacity *int `pulumi:"desiredCapacity"` + // Enables/disables detailed monitoring of the EC2 instances. + // + // With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + // When enabled, you can also get aggregated data across groups of similar instances. + // + // Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + // For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + EnableDetailedMonitoring *bool `pulumi:"enableDetailedMonitoring"` // Encrypt the root block device of the nodes in the node group. EncryptRootBlockDevice *bool `pulumi:"encryptRootBlockDevice"` // Extra security groups to attach on all nodes in this worker node group. @@ -184,6 +192,14 @@ type NodeGroupV2Args struct { ClusterIngressRule ec2.SecurityGroupRuleInput // The number of worker nodes that should be running in the cluster. Defaults to 2. DesiredCapacity pulumi.IntPtrInput + // Enables/disables detailed monitoring of the EC2 instances. + // + // With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + // When enabled, you can also get aggregated data across groups of similar instances. + // + // Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + // For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + EnableDetailedMonitoring pulumi.BoolPtrInput // Encrypt the root block device of the nodes in the node group. EncryptRootBlockDevice pulumi.BoolPtrInput // Extra security groups to attach on all nodes in this worker node group. diff --git a/sdk/go/eks/pulumiTypes.go b/sdk/go/eks/pulumiTypes.go index 7dc71473..b99cd2e5 100644 --- a/sdk/go/eks/pulumiTypes.go +++ b/sdk/go/eks/pulumiTypes.go @@ -55,6 +55,14 @@ type ClusterNodeGroupOptions struct { ClusterIngressRule *ec2.SecurityGroupRule `pulumi:"clusterIngressRule"` // The number of worker nodes that should be running in the cluster. Defaults to 2. DesiredCapacity *int `pulumi:"desiredCapacity"` + // Enables/disables detailed monitoring of the EC2 instances. + // + // With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + // When enabled, you can also get aggregated data across groups of similar instances. + // + // Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + // For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + EnableDetailedMonitoring *bool `pulumi:"enableDetailedMonitoring"` // Encrypt the root block device of the nodes in the node group. EncryptRootBlockDevice *bool `pulumi:"encryptRootBlockDevice"` // Extra security groups to attach on all nodes in this worker node group. @@ -164,6 +172,14 @@ type ClusterNodeGroupOptionsArgs struct { ClusterIngressRule ec2.SecurityGroupRuleInput `pulumi:"clusterIngressRule"` // The number of worker nodes that should be running in the cluster. Defaults to 2. DesiredCapacity pulumi.IntPtrInput `pulumi:"desiredCapacity"` + // Enables/disables detailed monitoring of the EC2 instances. + // + // With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + // When enabled, you can also get aggregated data across groups of similar instances. + // + // Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + // For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + EnableDetailedMonitoring pulumi.BoolPtrInput `pulumi:"enableDetailedMonitoring"` // Encrypt the root block device of the nodes in the node group. EncryptRootBlockDevice pulumi.BoolPtrInput `pulumi:"encryptRootBlockDevice"` // Extra security groups to attach on all nodes in this worker node group. @@ -359,6 +375,17 @@ func (o ClusterNodeGroupOptionsOutput) DesiredCapacity() pulumi.IntPtrOutput { return o.ApplyT(func(v ClusterNodeGroupOptions) *int { return v.DesiredCapacity }).(pulumi.IntPtrOutput) } +// Enables/disables detailed monitoring of the EC2 instances. +// +// With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. +// When enabled, you can also get aggregated data across groups of similar instances. +// +// Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. +// For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. +func (o ClusterNodeGroupOptionsOutput) EnableDetailedMonitoring() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ClusterNodeGroupOptions) *bool { return v.EnableDetailedMonitoring }).(pulumi.BoolPtrOutput) +} + // Encrypt the root block device of the nodes in the node group. func (o ClusterNodeGroupOptionsOutput) EncryptRootBlockDevice() pulumi.BoolPtrOutput { return o.ApplyT(func(v ClusterNodeGroupOptions) *bool { return v.EncryptRootBlockDevice }).(pulumi.BoolPtrOutput) @@ -593,6 +620,22 @@ func (o ClusterNodeGroupOptionsPtrOutput) DesiredCapacity() pulumi.IntPtrOutput }).(pulumi.IntPtrOutput) } +// Enables/disables detailed monitoring of the EC2 instances. +// +// With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. +// When enabled, you can also get aggregated data across groups of similar instances. +// +// Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. +// For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. +func (o ClusterNodeGroupOptionsPtrOutput) EnableDetailedMonitoring() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ClusterNodeGroupOptions) *bool { + if v == nil { + return nil + } + return v.EnableDetailedMonitoring + }).(pulumi.BoolPtrOutput) +} + // Encrypt the root block device of the nodes in the node group. func (o ClusterNodeGroupOptionsPtrOutput) EncryptRootBlockDevice() pulumi.BoolPtrOutput { return o.ApplyT(func(v *ClusterNodeGroupOptions) *bool { 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 4a56f8b6..8cf97960 100644 --- a/sdk/java/src/main/java/com/pulumi/eks/NodeGroupArgs.java +++ b/sdk/java/src/main/java/com/pulumi/eks/NodeGroupArgs.java @@ -180,6 +180,33 @@ public Optional> desiredCapacity() { return Optional.ofNullable(this.desiredCapacity); } + /** + * Enables/disables detailed monitoring of the EC2 instances. + * + * With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + * When enabled, you can also get aggregated data across groups of similar instances. + * + * Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + * For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + * + */ + @Import(name="enableDetailedMonitoring") + private @Nullable Output enableDetailedMonitoring; + + /** + * @return Enables/disables detailed monitoring of the EC2 instances. + * + * With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + * When enabled, you can also get aggregated data across groups of similar instances. + * + * Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + * For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + * + */ + public Optional> enableDetailedMonitoring() { + return Optional.ofNullable(this.enableDetailedMonitoring); + } + /** * Encrypt the root block device of the nodes in the node group. * @@ -537,6 +564,7 @@ private NodeGroupArgs(NodeGroupArgs $) { this.cluster = $.cluster; this.clusterIngressRule = $.clusterIngressRule; this.desiredCapacity = $.desiredCapacity; + this.enableDetailedMonitoring = $.enableDetailedMonitoring; this.encryptRootBlockDevice = $.encryptRootBlockDevice; this.extraNodeSecurityGroups = $.extraNodeSecurityGroups; this.gpu = $.gpu; @@ -789,6 +817,39 @@ public Builder desiredCapacity(Integer desiredCapacity) { return desiredCapacity(Output.of(desiredCapacity)); } + /** + * @param enableDetailedMonitoring Enables/disables detailed monitoring of the EC2 instances. + * + * With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + * When enabled, you can also get aggregated data across groups of similar instances. + * + * Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + * For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + * + * @return builder + * + */ + public Builder enableDetailedMonitoring(@Nullable Output enableDetailedMonitoring) { + $.enableDetailedMonitoring = enableDetailedMonitoring; + return this; + } + + /** + * @param enableDetailedMonitoring Enables/disables detailed monitoring of the EC2 instances. + * + * With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + * When enabled, you can also get aggregated data across groups of similar instances. + * + * Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + * For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + * + * @return builder + * + */ + public Builder enableDetailedMonitoring(Boolean enableDetailedMonitoring) { + return enableDetailedMonitoring(Output.of(enableDetailedMonitoring)); + } + /** * @param encryptRootBlockDevice Encrypt the root block device of the nodes in the node group. * 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 9ad0ac2c..5b6d5563 100644 --- a/sdk/java/src/main/java/com/pulumi/eks/NodeGroupV2Args.java +++ b/sdk/java/src/main/java/com/pulumi/eks/NodeGroupV2Args.java @@ -181,6 +181,33 @@ public Optional> desiredCapacity() { return Optional.ofNullable(this.desiredCapacity); } + /** + * Enables/disables detailed monitoring of the EC2 instances. + * + * With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + * When enabled, you can also get aggregated data across groups of similar instances. + * + * Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + * For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + * + */ + @Import(name="enableDetailedMonitoring") + private @Nullable Output enableDetailedMonitoring; + + /** + * @return Enables/disables detailed monitoring of the EC2 instances. + * + * With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + * When enabled, you can also get aggregated data across groups of similar instances. + * + * Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + * For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + * + */ + public Optional> enableDetailedMonitoring() { + return Optional.ofNullable(this.enableDetailedMonitoring); + } + /** * Encrypt the root block device of the nodes in the node group. * @@ -568,6 +595,7 @@ private NodeGroupV2Args(NodeGroupV2Args $) { this.cluster = $.cluster; this.clusterIngressRule = $.clusterIngressRule; this.desiredCapacity = $.desiredCapacity; + this.enableDetailedMonitoring = $.enableDetailedMonitoring; this.encryptRootBlockDevice = $.encryptRootBlockDevice; this.extraNodeSecurityGroups = $.extraNodeSecurityGroups; this.gpu = $.gpu; @@ -822,6 +850,39 @@ public Builder desiredCapacity(Integer desiredCapacity) { return desiredCapacity(Output.of(desiredCapacity)); } + /** + * @param enableDetailedMonitoring Enables/disables detailed monitoring of the EC2 instances. + * + * With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + * When enabled, you can also get aggregated data across groups of similar instances. + * + * Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + * For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + * + * @return builder + * + */ + public Builder enableDetailedMonitoring(@Nullable Output enableDetailedMonitoring) { + $.enableDetailedMonitoring = enableDetailedMonitoring; + return this; + } + + /** + * @param enableDetailedMonitoring Enables/disables detailed monitoring of the EC2 instances. + * + * With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + * When enabled, you can also get aggregated data across groups of similar instances. + * + * Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + * For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + * + * @return builder + * + */ + public Builder enableDetailedMonitoring(Boolean enableDetailedMonitoring) { + return enableDetailedMonitoring(Output.of(enableDetailedMonitoring)); + } + /** * @param encryptRootBlockDevice Encrypt the root block device of the nodes in the node group. * 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 ec4670c6..cfed6e30 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 @@ -166,6 +166,33 @@ public Optional> desiredCapacity() { return Optional.ofNullable(this.desiredCapacity); } + /** + * Enables/disables detailed monitoring of the EC2 instances. + * + * With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + * When enabled, you can also get aggregated data across groups of similar instances. + * + * Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + * For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + * + */ + @Import(name="enableDetailedMonitoring") + private @Nullable Output enableDetailedMonitoring; + + /** + * @return Enables/disables detailed monitoring of the EC2 instances. + * + * With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + * When enabled, you can also get aggregated data across groups of similar instances. + * + * Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + * For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + * + */ + public Optional> enableDetailedMonitoring() { + return Optional.ofNullable(this.enableDetailedMonitoring); + } + /** * Encrypt the root block device of the nodes in the node group. * @@ -522,6 +549,7 @@ private ClusterNodeGroupOptionsArgs(ClusterNodeGroupOptionsArgs $) { this.cloudFormationTags = $.cloudFormationTags; this.clusterIngressRule = $.clusterIngressRule; this.desiredCapacity = $.desiredCapacity; + this.enableDetailedMonitoring = $.enableDetailedMonitoring; this.encryptRootBlockDevice = $.encryptRootBlockDevice; this.extraNodeSecurityGroups = $.extraNodeSecurityGroups; this.gpu = $.gpu; @@ -733,6 +761,39 @@ public Builder desiredCapacity(Integer desiredCapacity) { return desiredCapacity(Output.of(desiredCapacity)); } + /** + * @param enableDetailedMonitoring Enables/disables detailed monitoring of the EC2 instances. + * + * With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + * When enabled, you can also get aggregated data across groups of similar instances. + * + * Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + * For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + * + * @return builder + * + */ + public Builder enableDetailedMonitoring(@Nullable Output enableDetailedMonitoring) { + $.enableDetailedMonitoring = enableDetailedMonitoring; + return this; + } + + /** + * @param enableDetailedMonitoring Enables/disables detailed monitoring of the EC2 instances. + * + * With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + * When enabled, you can also get aggregated data across groups of similar instances. + * + * Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + * For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + * + * @return builder + * + */ + public Builder enableDetailedMonitoring(Boolean enableDetailedMonitoring) { + return enableDetailedMonitoring(Output.of(enableDetailedMonitoring)); + } + /** * @param encryptRootBlockDevice Encrypt the root block device of the nodes in the node group. * 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 71ce3ad7..f27158fb 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 @@ -71,6 +71,17 @@ public final class ClusterNodeGroupOptions { * */ private @Nullable Integer desiredCapacity; + /** + * @return Enables/disables detailed monitoring of the EC2 instances. + * + * With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + * When enabled, you can also get aggregated data across groups of similar instances. + * + * Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + * For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + * + */ + private @Nullable Boolean enableDetailedMonitoring; /** * @return Encrypt the root block device of the nodes in the node group. * @@ -262,6 +273,19 @@ public Optional clusterIngressRule() { public Optional desiredCapacity() { return Optional.ofNullable(this.desiredCapacity); } + /** + * @return Enables/disables detailed monitoring of the EC2 instances. + * + * With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + * When enabled, you can also get aggregated data across groups of similar instances. + * + * Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + * For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + * + */ + public Optional enableDetailedMonitoring() { + return Optional.ofNullable(this.enableDetailedMonitoring); + } /** * @return Encrypt the root block device of the nodes in the node group. * @@ -442,6 +466,7 @@ public static final class Builder { private @Nullable Map cloudFormationTags; private @Nullable SecurityGroupRule clusterIngressRule; private @Nullable Integer desiredCapacity; + private @Nullable Boolean enableDetailedMonitoring; private @Nullable Boolean encryptRootBlockDevice; private @Nullable List extraNodeSecurityGroups; private @Nullable Boolean gpu; @@ -472,6 +497,7 @@ public Builder(ClusterNodeGroupOptions defaults) { this.cloudFormationTags = defaults.cloudFormationTags; this.clusterIngressRule = defaults.clusterIngressRule; this.desiredCapacity = defaults.desiredCapacity; + this.enableDetailedMonitoring = defaults.enableDetailedMonitoring; this.encryptRootBlockDevice = defaults.encryptRootBlockDevice; this.extraNodeSecurityGroups = defaults.extraNodeSecurityGroups; this.gpu = defaults.gpu; @@ -530,6 +556,11 @@ public Builder desiredCapacity(@Nullable Integer desiredCapacity) { return this; } @CustomType.Setter + public Builder enableDetailedMonitoring(@Nullable Boolean enableDetailedMonitoring) { + this.enableDetailedMonitoring = enableDetailedMonitoring; + return this; + } + @CustomType.Setter public Builder encryptRootBlockDevice(@Nullable Boolean encryptRootBlockDevice) { this.encryptRootBlockDevice = encryptRootBlockDevice; return this; @@ -644,6 +675,7 @@ public ClusterNodeGroupOptions build() { _resultValue.cloudFormationTags = cloudFormationTags; _resultValue.clusterIngressRule = clusterIngressRule; _resultValue.desiredCapacity = desiredCapacity; + _resultValue.enableDetailedMonitoring = enableDetailedMonitoring; _resultValue.encryptRootBlockDevice = encryptRootBlockDevice; _resultValue.extraNodeSecurityGroups = extraNodeSecurityGroups; _resultValue.gpu = gpu; diff --git a/sdk/python/pulumi_eks/_inputs.py b/sdk/python/pulumi_eks/_inputs.py index 538a6a53..59653586 100644 --- a/sdk/python/pulumi_eks/_inputs.py +++ b/sdk/python/pulumi_eks/_inputs.py @@ -35,6 +35,7 @@ def __init__(__self__, *, cloud_formation_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, cluster_ingress_rule: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroupRule']] = None, desired_capacity: Optional[pulumi.Input[int]] = None, + enable_detailed_monitoring: Optional[pulumi.Input[bool]] = None, encrypt_root_block_device: Optional[pulumi.Input[bool]] = None, extra_node_security_groups: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]]] = None, gpu: Optional[pulumi.Input[bool]] = None, @@ -81,6 +82,13 @@ def __init__(__self__, *, Note: Given the inheritance of auto-generated CF tags and `cloudFormationTags`, you should either supply the tag in `autoScalingGroupTags` or `cloudFormationTags`, but not both. :param pulumi.Input['pulumi_aws.ec2.SecurityGroupRule'] cluster_ingress_rule: The ingress rule that gives node group access. :param pulumi.Input[int] desired_capacity: The number of worker nodes that should be running in the cluster. Defaults to 2. + :param pulumi.Input[bool] enable_detailed_monitoring: Enables/disables detailed monitoring of the EC2 instances. + + With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + When enabled, you can also get aggregated data across groups of similar instances. + + Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. :param pulumi.Input[bool] encrypt_root_block_device: Encrypt the root block device of the nodes in the node group. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]] extra_node_security_groups: Extra security groups to attach on all nodes in this worker node group. @@ -139,6 +147,8 @@ def __init__(__self__, *, pulumi.set(__self__, "cluster_ingress_rule", cluster_ingress_rule) if desired_capacity is not None: pulumi.set(__self__, "desired_capacity", desired_capacity) + if enable_detailed_monitoring is not None: + pulumi.set(__self__, "enable_detailed_monitoring", enable_detailed_monitoring) if encrypt_root_block_device is not None: pulumi.set(__self__, "encrypt_root_block_device", encrypt_root_block_device) if extra_node_security_groups is not None: @@ -281,6 +291,24 @@ def desired_capacity(self) -> Optional[pulumi.Input[int]]: def desired_capacity(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "desired_capacity", value) + @property + @pulumi.getter(name="enableDetailedMonitoring") + def enable_detailed_monitoring(self) -> Optional[pulumi.Input[bool]]: + """ + Enables/disables detailed monitoring of the EC2 instances. + + With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + When enabled, you can also get aggregated data across groups of similar instances. + + Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + """ + return pulumi.get(self, "enable_detailed_monitoring") + + @enable_detailed_monitoring.setter + def enable_detailed_monitoring(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enable_detailed_monitoring", value) + @property @pulumi.getter(name="encryptRootBlockDevice") def encrypt_root_block_device(self) -> Optional[pulumi.Input[bool]]: diff --git a/sdk/python/pulumi_eks/node_group.py b/sdk/python/pulumi_eks/node_group.py index 54e47468..884ea8c6 100644 --- a/sdk/python/pulumi_eks/node_group.py +++ b/sdk/python/pulumi_eks/node_group.py @@ -27,6 +27,7 @@ def __init__(__self__, *, cloud_formation_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, cluster_ingress_rule: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroupRule']] = None, desired_capacity: Optional[pulumi.Input[int]] = None, + enable_detailed_monitoring: Optional[pulumi.Input[bool]] = None, encrypt_root_block_device: Optional[pulumi.Input[bool]] = None, extra_node_security_groups: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]]] = None, gpu: Optional[pulumi.Input[bool]] = None, @@ -74,6 +75,13 @@ def __init__(__self__, *, Note: Given the inheritance of auto-generated CF tags and `cloudFormationTags`, you should either supply the tag in `autoScalingGroupTags` or `cloudFormationTags`, but not both. :param pulumi.Input['pulumi_aws.ec2.SecurityGroupRule'] cluster_ingress_rule: The ingress rule that gives node group access. :param pulumi.Input[int] desired_capacity: The number of worker nodes that should be running in the cluster. Defaults to 2. + :param pulumi.Input[bool] enable_detailed_monitoring: Enables/disables detailed monitoring of the EC2 instances. + + With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + When enabled, you can also get aggregated data across groups of similar instances. + + Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. :param pulumi.Input[bool] encrypt_root_block_device: Encrypt the root block device of the nodes in the node group. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]] extra_node_security_groups: Extra security groups to attach on all nodes in this worker node group. @@ -133,6 +141,8 @@ def __init__(__self__, *, pulumi.set(__self__, "cluster_ingress_rule", cluster_ingress_rule) if desired_capacity is not None: pulumi.set(__self__, "desired_capacity", desired_capacity) + if enable_detailed_monitoring is not None: + pulumi.set(__self__, "enable_detailed_monitoring", enable_detailed_monitoring) if encrypt_root_block_device is not None: pulumi.set(__self__, "encrypt_root_block_device", encrypt_root_block_device) if extra_node_security_groups is not None: @@ -287,6 +297,24 @@ def desired_capacity(self) -> Optional[pulumi.Input[int]]: def desired_capacity(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "desired_capacity", value) + @property + @pulumi.getter(name="enableDetailedMonitoring") + def enable_detailed_monitoring(self) -> Optional[pulumi.Input[bool]]: + """ + Enables/disables detailed monitoring of the EC2 instances. + + With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + When enabled, you can also get aggregated data across groups of similar instances. + + Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + """ + return pulumi.get(self, "enable_detailed_monitoring") + + @enable_detailed_monitoring.setter + def enable_detailed_monitoring(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enable_detailed_monitoring", value) + @property @pulumi.getter(name="encryptRootBlockDevice") def encrypt_root_block_device(self) -> Optional[pulumi.Input[bool]]: @@ -564,6 +592,7 @@ def __init__(__self__, cluster: Optional[pulumi.Input[Union['Cluster', pulumi.InputType['CoreDataArgs']]]] = None, cluster_ingress_rule: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroupRule']] = None, desired_capacity: Optional[pulumi.Input[int]] = None, + enable_detailed_monitoring: Optional[pulumi.Input[bool]] = None, encrypt_root_block_device: Optional[pulumi.Input[bool]] = None, extra_node_security_groups: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]]] = None, gpu: Optional[pulumi.Input[bool]] = None, @@ -615,6 +644,13 @@ def __init__(__self__, :param pulumi.Input[Union['Cluster', pulumi.InputType['CoreDataArgs']]] cluster: The target EKS cluster. :param pulumi.Input['pulumi_aws.ec2.SecurityGroupRule'] cluster_ingress_rule: The ingress rule that gives node group access. :param pulumi.Input[int] desired_capacity: The number of worker nodes that should be running in the cluster. Defaults to 2. + :param pulumi.Input[bool] enable_detailed_monitoring: Enables/disables detailed monitoring of the EC2 instances. + + With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + When enabled, you can also get aggregated data across groups of similar instances. + + Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. :param pulumi.Input[bool] encrypt_root_block_device: Encrypt the root block device of the nodes in the node group. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]] extra_node_security_groups: Extra security groups to attach on all nodes in this worker node group. @@ -691,6 +727,7 @@ def _internal_init(__self__, cluster: Optional[pulumi.Input[Union['Cluster', pulumi.InputType['CoreDataArgs']]]] = None, cluster_ingress_rule: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroupRule']] = None, desired_capacity: Optional[pulumi.Input[int]] = None, + enable_detailed_monitoring: Optional[pulumi.Input[bool]] = None, encrypt_root_block_device: Optional[pulumi.Input[bool]] = None, extra_node_security_groups: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]]] = None, gpu: Optional[pulumi.Input[bool]] = None, @@ -732,6 +769,7 @@ def _internal_init(__self__, __props__.__dict__["cluster"] = cluster __props__.__dict__["cluster_ingress_rule"] = cluster_ingress_rule __props__.__dict__["desired_capacity"] = desired_capacity + __props__.__dict__["enable_detailed_monitoring"] = enable_detailed_monitoring __props__.__dict__["encrypt_root_block_device"] = encrypt_root_block_device __props__.__dict__["extra_node_security_groups"] = extra_node_security_groups __props__.__dict__["gpu"] = gpu diff --git a/sdk/python/pulumi_eks/node_group_v2.py b/sdk/python/pulumi_eks/node_group_v2.py index efd8e230..17562b16 100644 --- a/sdk/python/pulumi_eks/node_group_v2.py +++ b/sdk/python/pulumi_eks/node_group_v2.py @@ -27,6 +27,7 @@ def __init__(__self__, *, cloud_formation_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, cluster_ingress_rule: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroupRule']] = None, desired_capacity: Optional[pulumi.Input[int]] = None, + enable_detailed_monitoring: Optional[pulumi.Input[bool]] = None, encrypt_root_block_device: Optional[pulumi.Input[bool]] = None, extra_node_security_groups: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]]] = None, gpu: Optional[pulumi.Input[bool]] = None, @@ -76,6 +77,13 @@ def __init__(__self__, *, Note: Given the inheritance of auto-generated CF tags and `cloudFormationTags`, you should either supply the tag in `autoScalingGroupTags` or `cloudFormationTags`, but not both. :param pulumi.Input['pulumi_aws.ec2.SecurityGroupRule'] cluster_ingress_rule: The ingress rule that gives node group access. :param pulumi.Input[int] desired_capacity: The number of worker nodes that should be running in the cluster. Defaults to 2. + :param pulumi.Input[bool] enable_detailed_monitoring: Enables/disables detailed monitoring of the EC2 instances. + + With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + When enabled, you can also get aggregated data across groups of similar instances. + + Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. :param pulumi.Input[bool] encrypt_root_block_device: Encrypt the root block device of the nodes in the node group. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]] extra_node_security_groups: Extra security groups to attach on all nodes in this worker node group. @@ -137,6 +145,8 @@ def __init__(__self__, *, pulumi.set(__self__, "cluster_ingress_rule", cluster_ingress_rule) if desired_capacity is not None: pulumi.set(__self__, "desired_capacity", desired_capacity) + if enable_detailed_monitoring is not None: + pulumi.set(__self__, "enable_detailed_monitoring", enable_detailed_monitoring) if encrypt_root_block_device is not None: pulumi.set(__self__, "encrypt_root_block_device", encrypt_root_block_device) if extra_node_security_groups is not None: @@ -295,6 +305,24 @@ def desired_capacity(self) -> Optional[pulumi.Input[int]]: def desired_capacity(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "desired_capacity", value) + @property + @pulumi.getter(name="enableDetailedMonitoring") + def enable_detailed_monitoring(self) -> Optional[pulumi.Input[bool]]: + """ + Enables/disables detailed monitoring of the EC2 instances. + + With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + When enabled, you can also get aggregated data across groups of similar instances. + + Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + """ + return pulumi.get(self, "enable_detailed_monitoring") + + @enable_detailed_monitoring.setter + def enable_detailed_monitoring(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enable_detailed_monitoring", value) + @property @pulumi.getter(name="encryptRootBlockDevice") def encrypt_root_block_device(self) -> Optional[pulumi.Input[bool]]: @@ -596,6 +624,7 @@ def __init__(__self__, cluster: Optional[pulumi.Input[Union['Cluster', pulumi.InputType['CoreDataArgs']]]] = None, cluster_ingress_rule: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroupRule']] = None, desired_capacity: Optional[pulumi.Input[int]] = None, + enable_detailed_monitoring: Optional[pulumi.Input[bool]] = None, encrypt_root_block_device: Optional[pulumi.Input[bool]] = None, extra_node_security_groups: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]]] = None, gpu: Optional[pulumi.Input[bool]] = None, @@ -649,6 +678,13 @@ def __init__(__self__, :param pulumi.Input[Union['Cluster', pulumi.InputType['CoreDataArgs']]] cluster: The target EKS cluster. :param pulumi.Input['pulumi_aws.ec2.SecurityGroupRule'] cluster_ingress_rule: The ingress rule that gives node group access. :param pulumi.Input[int] desired_capacity: The number of worker nodes that should be running in the cluster. Defaults to 2. + :param pulumi.Input[bool] enable_detailed_monitoring: Enables/disables detailed monitoring of the EC2 instances. + + With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + When enabled, you can also get aggregated data across groups of similar instances. + + Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. :param pulumi.Input[bool] encrypt_root_block_device: Encrypt the root block device of the nodes in the node group. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]] extra_node_security_groups: Extra security groups to attach on all nodes in this worker node group. @@ -727,6 +763,7 @@ def _internal_init(__self__, cluster: Optional[pulumi.Input[Union['Cluster', pulumi.InputType['CoreDataArgs']]]] = None, cluster_ingress_rule: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroupRule']] = None, desired_capacity: Optional[pulumi.Input[int]] = None, + enable_detailed_monitoring: Optional[pulumi.Input[bool]] = None, encrypt_root_block_device: Optional[pulumi.Input[bool]] = None, extra_node_security_groups: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]]] = None, gpu: Optional[pulumi.Input[bool]] = None, @@ -770,6 +807,7 @@ def _internal_init(__self__, __props__.__dict__["cluster"] = cluster __props__.__dict__["cluster_ingress_rule"] = cluster_ingress_rule __props__.__dict__["desired_capacity"] = desired_capacity + __props__.__dict__["enable_detailed_monitoring"] = enable_detailed_monitoring __props__.__dict__["encrypt_root_block_device"] = encrypt_root_block_device __props__.__dict__["extra_node_security_groups"] = extra_node_security_groups __props__.__dict__["gpu"] = gpu diff --git a/sdk/python/pulumi_eks/outputs.py b/sdk/python/pulumi_eks/outputs.py index 48b47ec9..27d5d7c6 100644 --- a/sdk/python/pulumi_eks/outputs.py +++ b/sdk/python/pulumi_eks/outputs.py @@ -42,6 +42,8 @@ def __key_warning(key: str): suggest = "cluster_ingress_rule" elif key == "desiredCapacity": suggest = "desired_capacity" + elif key == "enableDetailedMonitoring": + suggest = "enable_detailed_monitoring" elif key == "encryptRootBlockDevice": suggest = "encrypt_root_block_device" elif key == "extraNodeSecurityGroups": @@ -94,6 +96,7 @@ def __init__(__self__, *, cloud_formation_tags: Optional[Mapping[str, str]] = None, cluster_ingress_rule: Optional['pulumi_aws.ec2.SecurityGroupRule'] = None, desired_capacity: Optional[int] = None, + enable_detailed_monitoring: Optional[bool] = None, encrypt_root_block_device: Optional[bool] = None, extra_node_security_groups: Optional[Sequence['pulumi_aws.ec2.SecurityGroup']] = None, gpu: Optional[bool] = None, @@ -140,6 +143,13 @@ def __init__(__self__, *, Note: Given the inheritance of auto-generated CF tags and `cloudFormationTags`, you should either supply the tag in `autoScalingGroupTags` or `cloudFormationTags`, but not both. :param 'pulumi_aws.ec2.SecurityGroupRule' cluster_ingress_rule: The ingress rule that gives node group access. :param int desired_capacity: The number of worker nodes that should be running in the cluster. Defaults to 2. + :param bool enable_detailed_monitoring: Enables/disables detailed monitoring of the EC2 instances. + + With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + When enabled, you can also get aggregated data across groups of similar instances. + + Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. :param bool encrypt_root_block_device: Encrypt the root block device of the nodes in the node group. :param Sequence['pulumi_aws.ec2.SecurityGroup'] extra_node_security_groups: Extra security groups to attach on all nodes in this worker node group. @@ -198,6 +208,8 @@ def __init__(__self__, *, pulumi.set(__self__, "cluster_ingress_rule", cluster_ingress_rule) if desired_capacity is not None: pulumi.set(__self__, "desired_capacity", desired_capacity) + if enable_detailed_monitoring is not None: + pulumi.set(__self__, "enable_detailed_monitoring", enable_detailed_monitoring) if encrypt_root_block_device is not None: pulumi.set(__self__, "encrypt_root_block_device", encrypt_root_block_device) if extra_node_security_groups is not None: @@ -312,6 +324,20 @@ def desired_capacity(self) -> Optional[int]: """ return pulumi.get(self, "desired_capacity") + @property + @pulumi.getter(name="enableDetailedMonitoring") + def enable_detailed_monitoring(self) -> Optional[bool]: + """ + Enables/disables detailed monitoring of the EC2 instances. + + With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals. + When enabled, you can also get aggregated data across groups of similar instances. + + Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage. + For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/. + """ + return pulumi.get(self, "enable_detailed_monitoring") + @property @pulumi.getter(name="encryptRootBlockDevice") def encrypt_root_block_device(self) -> Optional[bool]: