Skip to content

Conversation

jhixson74
Copy link
Member

GP3 volumes have the ability to configure throughput from 125 MiB/s to 1000 MiB/s. This allows the ability to set this at install time in the install-config.

https://issues.redhat.com/browse/CORS-4212
https://issues.redhat.com/browse/CORS-4213
https://issues.redhat.com/browse/CORS-4214

This depends on openshift/api#2480

GP3 volumes have the ability to configure throughput from 125 MiB/s to
1000 MiB/s. This allows the ability to set this at install time in the
install-config.

https://issues.redhat.com/browse/CORS-4212
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Sep 17, 2025
@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Sep 17, 2025

@jhixson74: This pull request references CORS-4212 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the epic to target the "4.21.0" version, but no target version was set.

In response to this:

GP3 volumes have the ability to configure throughput from 125 MiB/s to 1000 MiB/s. This allows the ability to set this at install time in the install-config.

https://issues.redhat.com/browse/CORS-4212
https://issues.redhat.com/browse/CORS-4213
https://issues.redhat.com/browse/CORS-4214

This depends on openshift/api#2480

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

Copy link
Contributor

openshift-ci bot commented Sep 17, 2025

@jhixson74: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/images 6409103 link true /test images
ci/prow/e2e-aws-ovn-fips 6409103 link false /test e2e-aws-ovn-fips
ci/prow/e2e-vsphere-externallb-ovn 6409103 link false /test e2e-vsphere-externallb-ovn
ci/prow/e2e-aws-default-config 6409103 link false /test e2e-aws-default-config
ci/prow/e2e-azure-ovn-resourcegroup 6409103 link false /test e2e-azure-ovn-resourcegroup
ci/prow/e2e-aws-byo-subnet-role-security-groups 6409103 link false /test e2e-aws-byo-subnet-role-security-groups
ci/prow/aws-private 6409103 link false /test aws-private
ci/prow/okd-scos-e2e-aws-ovn 6409103 link false /test okd-scos-e2e-aws-ovn
ci/prow/golint 6409103 link true /test golint
ci/prow/artifacts-images 6409103 link true /test artifacts-images
ci/prow/unit 6409103 link true /test unit
ci/prow/e2e-aws-custom-dns-techpreview 6409103 link false /test e2e-aws-custom-dns-techpreview
ci/prow/e2e-aws-ovn-heterogeneous 6409103 link false /test e2e-aws-ovn-heterogeneous
ci/prow/e2e-aws-ovn-shared-vpc-custom-security-groups 6409103 link false /test e2e-aws-ovn-shared-vpc-custom-security-groups
ci/prow/e2e-vsphere-ovn-multi-network 6409103 link false /test e2e-vsphere-ovn-multi-network
ci/prow/e2e-aws-ovn-shared-vpc-edge-zones 6409103 link false /test e2e-aws-ovn-shared-vpc-edge-zones
ci/prow/e2e-vsphere-static-ovn 6409103 link false /test e2e-vsphere-static-ovn
ci/prow/e2e-aws-ovn 6409103 link true /test e2e-aws-ovn
ci/prow/e2e-aws-ovn-single-node 6409103 link false /test e2e-aws-ovn-single-node
ci/prow/e2e-aws-ovn-imdsv2 6409103 link false /test e2e-aws-ovn-imdsv2
ci/prow/e2e-aws-ovn-edge-zones 6409103 link false /test e2e-aws-ovn-edge-zones
ci/prow/e2e-aws-ovn-edge-zones-manifest-validation 6409103 link true /test e2e-aws-ovn-edge-zones-manifest-validation
ci/prow/govet 6409103 link true /test govet
ci/prow/okd-scos-images 6409103 link true /test okd-scos-images

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@jhixson74
Copy link
Member Author

/label do-not-merge

Copy link
Contributor

openshift-ci bot commented Sep 17, 2025

@jhixson74: The label(s) /label do-not-merge cannot be applied. These labels are supported: acknowledge-critical-fixes-only, platform/aws, platform/azure, platform/baremetal, platform/google, platform/libvirt, platform/openstack, ga, tide/merge-method-merge, tide/merge-method-rebase, tide/merge-method-squash, px-approved, docs-approved, qe-approved, ux-approved, no-qe, downstream-change-needed, rebase/manual, cluster-config-api-changed, run-integration-tests, approved, backport-risk-assessed, bugzilla/valid-bug, cherry-pick-approved, jira/valid-bug, ok-to-test, stability-fix-approved, staff-eng-approved. Is this label configured under labels -> additional_labels or labels -> restricted_labels in plugin.yaml?

In response to this:

/label do-not-merge

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@jhixson74
Copy link
Member Author

/label do-not-merge/hold

Copy link
Contributor

openshift-ci bot commented Sep 17, 2025

@jhixson74: The label(s) /label do-not-merge/hold cannot be applied. These labels are supported: acknowledge-critical-fixes-only, platform/aws, platform/azure, platform/baremetal, platform/google, platform/libvirt, platform/openstack, ga, tide/merge-method-merge, tide/merge-method-rebase, tide/merge-method-squash, px-approved, docs-approved, qe-approved, ux-approved, no-qe, downstream-change-needed, rebase/manual, cluster-config-api-changed, run-integration-tests, approved, backport-risk-assessed, bugzilla/valid-bug, cherry-pick-approved, jira/valid-bug, ok-to-test, stability-fix-approved, staff-eng-approved. Is this label configured under labels -> additional_labels or labels -> restricted_labels in plugin.yaml?

In response to this:

/label do-not-merge/hold

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@jhixson74
Copy link
Member Author

/hold

@openshift-ci openshift-ci bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Sep 17, 2025
@tthvo
Copy link
Member

tthvo commented Sep 17, 2025

/cc

@openshift-ci openshift-ci bot requested a review from tthvo September 17, 2025 17:07
Copy link
Contributor

@patrickdillon patrickdillon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall this looks good to me

/approve

There are a few small things that should be cleaned up, commented below. And there is no rush because this depends on openshift/api#4212


// Throughput to provision in MiB/s supported for the volume type. Not applicable to all types.
//
// +kubebuilder:validation:Minimum=0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: the minimum is listing as 0, but we validate the minimum as 125, so it seems like the minimum here should be set to 125 and also the maximum should be set as well

Copy link
Member Author

@jhixson74 jhixson74 Sep 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A non-zero value will break things. This setting is only valid for gp3 volumes. While I don't know the behavior from Amazon that this would cause, I do know that cluter-api-provider-aws will blow up:

https://github.com/openshift/cluster-api-provider-aws/blob/043b4e8048915656d91428c01497fb109e534b09/api/v1beta2/awsmachine_webhook.go#L343

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We handle IOPS in a similar fashion.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

// +optional
IOPS int `json:"iops"`

// Throughput to provision in MiB/s supported for the volume type. Not applicable to all types.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Throughput to provision in MiB/s supported for the volume type. Not applicable to all types.
// Throughput to provision in MiB/s supported for the volume type. Only supported for gp3.

EdgeZonesGatewayIndex map[string]int `json:"aws_edge_parent_zones_index,omitempty"`
EdgeZonesType map[string]string `json:"aws_edge_zones_type,omitempty"`
IOPS int64 `json:"aws_master_root_volume_iops"`
Throughput int64 `json:"aws_master_root_volume_throughput"`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need this change. AFAIK AWS is not using the Terraform configs (a few providers get information from the terraform configs in the capi workflows, but I don't think AWS is one of those. correct me if I'm wrong). We will delete them to avoid future confusion.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will remove. Why does this code still exist if we aren't using it?

Comment on lines +248 to +250
if rootVolume.EBS.Throughput != nil {
cfg.Throughput = *rootVolume.EBS.Throughput
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto, I don't think we need this terraform update.

Copy link
Contributor

openshift-ci bot commented Sep 24, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: patrickdillon

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Sep 24, 2025
throughput := p.EC2RootVolume.Throughput

switch volumeType {
case "gp3":
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@patrickdillon @jhixson74 should we allow io2 too as it is commonly used to environments which requires highly throughput/performance on disks?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mtulio according to documentation in the code, this is only supported by gp3. If you can show otherwise, I'm happy to update.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://docs.aws.amazon.com/cli/latest/reference/ec2/create-volume.html

Scroll down to --throughput

Only gp3 is supported.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yep, I messed up with iops

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants