From a9153cc7223b1163ec6d802f81589b073b6b8096 Mon Sep 17 00:00:00 2001 From: Marco Braga Date: Thu, 23 Sep 2021 22:42:34 -0300 Subject: [PATCH 1/2] refact/aws-ebs-gp3: changing default EBS type on masters to gp3. This is WIP validation to support gp3 as default on IPI, due the benefits compared to gp2. Overview of improvements of gp3 compared to gp2: - The baseline IOPS was increased to 3,000 : gp2 volumes is allowed to burst up to 3,000 IOPS with a baseline of 1:3 GiB:IOPS, so volumes with low capacity will have a low baseline and can be impacted with long periods of I/O - Now it is allowed to increase the throughput regardless of capacity with a baseline of 125 MiB/s (extra fee is charged per MiB/s provisioned above the baseline) - Now it is allowed to increase the IOPS regardless of capacity with a baseline of 3,000 IOPS (extra fee is charged per IOPS provisioned above the baseline) - Cheaper : The cost of gp3 is 20% lower than gp2 in a standard baseline More details on the study case on SPLAT-253. --- data/data/aws/bootstrap/main.tf | 2 +- pkg/asset/machines/worker.go | 2 +- vendor/github.com/aws/aws-sdk-go/service/ec2/api.go | 3 +++ .../terraform-provider-aws/aws/resource_aws_instance.go | 2 ++ .../terraform-provider-aws/aws/validators.go | 1 + 5 files changed, 8 insertions(+), 2 deletions(-) diff --git a/data/data/aws/bootstrap/main.tf b/data/data/aws/bootstrap/main.tf index db41d363eb9..28af78f53ae 100644 --- a/data/data/aws/bootstrap/main.tf +++ b/data/data/aws/bootstrap/main.tf @@ -8,7 +8,7 @@ locals { description = "Created By OpenShift Installer" public_endpoints = var.aws_publish_strategy == "External" ? true : false - volume_type = "gp2" + volume_type = "gp3" volume_size = 30 volume_iops = local.volume_type == "io1" ? 100 : 0 } diff --git a/pkg/asset/machines/worker.go b/pkg/asset/machines/worker.go index 97148e16595..2a49de54771 100644 --- a/pkg/asset/machines/worker.go +++ b/pkg/asset/machines/worker.go @@ -80,7 +80,7 @@ var ( func defaultAWSMachinePoolPlatform() awstypes.MachinePool { return awstypes.MachinePool{ EC2RootVolume: awstypes.EC2RootVolume{ - Type: "gp2", + Type: "gp3", Size: 120, }, } diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go index 08409e8c87e..d0fea48224a 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go @@ -113092,6 +113092,9 @@ const ( // VolumeTypeGp2 is a VolumeType enum value VolumeTypeGp2 = "gp2" + // VolumeTypeGp3 is a VolumeType enum value + VolumeTypeGp3 = "gp3" + // VolumeTypeSc1 is a VolumeType enum value VolumeTypeSc1 = "sc1" diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_instance.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_instance.go index 56d54889ae3..1c9dd7a4907 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_instance.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_instance.go @@ -396,6 +396,7 @@ func resourceAwsInstance() *schema.Resource { ec2.VolumeTypeStandard, ec2.VolumeTypeIo1, ec2.VolumeTypeGp2, + ec2.VolumeTypeGp3, ec2.VolumeTypeSc1, ec2.VolumeTypeSt1, }, false), @@ -507,6 +508,7 @@ func resourceAwsInstance() *schema.Resource { ec2.VolumeTypeStandard, ec2.VolumeTypeIo1, ec2.VolumeTypeGp2, + ec2.VolumeTypeGp3, ec2.VolumeTypeSc1, ec2.VolumeTypeSt1, }, false), diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/validators.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/validators.go index 5b1b685d960..e915b4e7fd5 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/validators.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/validators.go @@ -1038,6 +1038,7 @@ func validateAwsEcsPlacementStrategy(stratType, stratField string) error { func validateAwsEmrEbsVolumeType() schema.SchemaValidateFunc { return validation.StringInSlice([]string{ "gp2", + "gp3", "io1", "standard", "st1", From b4407f47a03e3c379508ad461b3c2a86fbcf047c Mon Sep 17 00:00:00 2001 From: Marco Braga Date: Mon, 25 Oct 2021 23:59:56 -0300 Subject: [PATCH 2/2] lab/dont-merge: joint PRs (5239 + 5327) to be tested on cluster bot --- pkg/types/aws/defaults/platform.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/types/aws/defaults/platform.go b/pkg/types/aws/defaults/platform.go index 8cb28ad5395..c2c2ead6d92 100644 --- a/pkg/types/aws/defaults/platform.go +++ b/pkg/types/aws/defaults/platform.go @@ -52,6 +52,6 @@ func InstanceClasses(region string, arch types.Architecture) []string { case types.ArchitectureARM64: return []string{"m6g"} default: - return []string{"m5"} + return []string{"m6i", "m5"} } }