CORS-4212: AWS: Add the ability to configure throughput on GP3 volumes#10132
CORS-4212: AWS: Add the ability to configure throughput on GP3 volumes#10132openshift-merge-bot[bot] merged 4 commits intoopenshift:mainfrom
Conversation
|
@tthvo: This pull request references CORS-4212 which is a valid jira issue. DetailsIn response to this:
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. |
|
/payload-job periodic-ci-openshift-release-master-nightly-4.21-e2e-aws-ovn-serial-1of2 |
|
@tthvo: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/c7bb9e60-caf7-11f0-854d-0994ba12b72e-0 |
|
/label platform/aws |
|
/test e2e-aws-ovn-public-subnets e2e-aws-ovn-public-ipv4-pool e2e-aws-ovn-custom-iam-profile e2e-aws-overlay-mtu-ovn-1200 |
|
/cc @JoelSpeed |
|
/retest Test failures seem fine (unrelated) 👀 |
Payload passed this time 👍 |
|
Used the build: https://prow.ci.openshift.org/view/gs/test-platform-results/logs/release-openshift-origin-installer-launch-aws-modern/1993960674010599424 Verified by the script locally: https://github.com/openshift/release/pull/71426/files#diff-5e156492e6ec7b6cc1782f27eb74071576df36e33d3caf3f92f73084af22a03f cd /Users/weli/works/oc-swarm/release && SHARED_DIR=/tmp/work4-shared CLUSTER_PROFILE_DIR=/tmp/work4-shared bash ci-operator/step-registry/cucushift/installer/check/aws/rootvolume/cucushift-installer-check-aws-rootvolume-commands.sh
Cluster ID: weli-test-8fm49
Region: us-east-1
Expected compute throughput: 1000 MiB/s
Expected control plane throughput: 1200 MiB/s
Expected worker rootVolume size: 120 GiB
Expected control-plane rootVolume size: 150 GiB
Checking worker nodes
PASS: ip-10-0-39-111.ec2.internal volume vol-034246304384809e8 type=gp3 size=120GiB iops=5000 throughput=1000MiB/s
PASS: ip-10-0-4-150.ec2.internal volume vol-05f55a2f17af0cf1c type=gp3 size=120GiB iops=5000 throughput=1000MiB/s
PASS: ip-10-0-64-225.ec2.internal volume vol-08f7acd7aa708a280 type=gp3 size=120GiB iops=5000 throughput=1000MiB/s
Checking control plane nodes
PASS: ip-10-0-30-251.ec2.internal volume vol-097a2aef4a22e5f3f type=gp3 size=150GiB iops=5000 throughput=1200MiB/s
PASS: ip-10-0-51-181.ec2.internal volume vol-084b2e4af55d5e006 type=gp3 size=150GiB iops=5000 throughput=1200MiB/s
PASS: ip-10-0-64-82.ec2.internal volume vol-0aab6f02caafe824c type=gp3 size=150GiB iops=5000 throughput=1200MiB/s
==========================================
Test Summary
All root volume throughput checks passed./verified by liweinan |
|
@liweinan: This PR has been marked as verified by DetailsIn response to this:
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. |
|
/approve this lgtm, but some nits for discussion from joel & me |
|
[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 DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
GP3 volumes have the ability to configure throughput from 125 MiB/s to 2000 MiB/s. This allows the ability to set this at install time in the install-config. https://issues.redhat.com/browse/CORS-4212
|
/payload-job periodic-ci-openshift-release-master-nightly-4.21-e2e-aws-ovn-serial-1of2 |
|
@tthvo: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/01e0ea30-cf3c-11f0-93dc-8540f2bc3d99-0 |
|
/retest |
|
Alr, payload testing is good and e2e is happy. I think the latest commit is fine :D |
|
Thanks for including the link to the existing code setting the the default disk type: installer/pkg/asset/machines/worker.go Lines 102 to 117 in fd5a518 Now that we have moved setting the default earlier in the asset graph, should we remove it from worker.go? /lgtm |
Right 👍, I will open a follow-up ASAP after this one is merged to isolate the changes for easier review :D |
|
Using the build: anan@think:~/works/openshift-versions$ ./openshift-install version
./openshift-install 4.21.0-0-2025-12-02-105806-test-ci-ln-jqngl8b-latest
built from commit afa4ba42082d64beae9b0b202ca0ff05b509a5a5
release image registry.build07.ci.openshift.org/ci-ln-jqngl8b/release@sha256:096b306535d0dda90848f3083acdb1edb3cea8cd1199a9b0c8b1dd66b7ed5a32
release architecture amd64
anan@think:~/works/openshift-versions$ ./openshift-install explain installconfig.platform.aws.defaultMachinePlatform.rootVolume.throughput
KIND: InstallConfig
VERSION: v1
RESOURCE: <integer>
Format: int32
Throughput to provision in MiB/s supported for the volume type. Not applicable to all types.
This parameter is valid only for gp3 volumes.
Valid Range: Minimum value of 125. Maximum value of 2000.
When omitted, this means no opinion, and the platform is left to
choose a reasonable default, which is subject to change over time.
The current default is 125.Here is the boundary test result: anan@think:~/works/openshift-versions/works$ ../openshift-install create-manifests
FATA[0000] Error executing openshift-install: unknown command "create-manifests" for "openshift-install"
anan@think:~/works/openshift-versions/works$ ../openshift-install create manifests
ERROR failed to fetch Master Machines: failed to load asset "Install Config": failed to create install config: invalid "install-config.yaml" file: [platform.aws.defaultMachinePlatform.throughput: Invalid value: 0: throughput must be between 125 MiB/s and 2000 MiB/s, controlPlane.platform.aws.throughput: Invalid value: 0: throughput must be between 125 MiB/s and 2000 MiB/s, compute[0].platform.aws.throughput: Invalid value: 0: throughput must be between 125 MiB/s and 2000 MiB/s]
anan@think:~/works/openshift-versions/works$ cp install-config.yaml.bkup install-config.yaml
anan@think:~/works/openshift-versions/works$ ../openshift-install create manifests
ERROR failed to fetch Master Machines: failed to load asset "Install Config": failed to create install config: invalid "install-config.yaml" file: [platform.aws.defaultMachinePlatform.throughput: Invalid value: 500: throughput not supported for type gp2, controlPlane.platform.aws.throughput: Invalid value: 500: throughput not supported for type gp2, compute[0].platform.aws.throughput: Invalid value: 500: throughput not supported for type gp2]
anan@think:~/works/openshift-versions/works$ cp install-config.yaml.bkup install-config.yaml
anan@think:~/works/openshift-versions/works$ ../openshift-install create manifests
ERROR failed to fetch Master Machines: failed to load asset "Install Config": failed to create install config: invalid "install-config.yaml" file: controlPlane.platform.aws.throughput: Invalid value: 0: throughput must be between 125 MiB/s and 2000 MiB/s
anan@think:~/works/openshift-versions/works$ cp install-config.yaml.bkup install-config.yaml
anan@think:~/works/openshift-versions/works$ ../openshift-install create manifests
ERROR failed to fetch Master Machines: failed to load asset "Install Config": failed to create install config: invalid "install-config.yaml" file: controlPlane.platform.aws.throughput: Invalid value: 500: throughput not supported for type gp2
anan@think:~/works/openshift-versions/works$ cp install-config.yaml.bkup install-config.yaml
anan@think:~/works/openshift-versions/works$ ../openshift-install create manifests
ERROR failed to fetch Master Machines: failed to load asset "Install Config": failed to create install config: invalid "install-config.yaml" file: [compute[0].name: Unsupported value: "": supported values: "worker", "edge", compute[0].platform.aws.throughput: Invalid value: 500: throughput not supported for type gp2]
anan@think:~/works/openshift-versions/works$ cp install-config.yaml.bkup install-config.yaml
anan@think:~/works/openshift-versions/works$ ../openshift-install create manifests
ERROR failed to fetch Master Machines: failed to load asset "Install Config": failed to create install config: invalid "install-config.yaml" file: [compute[0].name: Unsupported value: "": supported values: "worker", "edge", compute[0].platform.aws.throughput: Invalid value: 0: throughput must be between 125 MiB/s and 2000 MiB/s]
anan@think:~/works/openshift-versions/works$ cp install-config.yaml.bkup install-config.yaml
anan@think:~/works/openshift-versions/works$ ../openshift-install create manifests
ERROR failed to fetch Master Machines: failed to load asset "Install Config": failed to create install config: failed to unmarshal install-config.yaml: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go struct field EC2RootVolume.compute.platform.aws.rootVolume.throughput of type int32
anan@think:~/works/openshift-versions/works$
anan@think:~/works/openshift-versions/works$ ../openshift-install create manifests
ERROR failed to fetch Master Machines: failed to load asset "Install Config": failed to create install config: invalid "install-config.yaml" file: compute[0].name: Unsupported value: "": supported values: "worker", "edge"
anan@think:~/works/openshift-versions/works$ ../openshift-install create manifests
ERROR failed to fetch Master Machines: failed to load asset "Install Config": failed to create install config: compute[0].platform.aws: Required value: zone is required when using edge machine pools The test result is expected. /verified by liweinan |
|
@liweinan: This PR has been marked as verified by DetailsIn response to this:
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. |
|
/label acknowledge-critical-fixes-only |
|
@tthvo: The following test failed, say
Full PR test history. Your PR dashboard. DetailsInstructions 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. |
|
/test e2e-aws-ovn |
|
/payload-job periodic-ci-openshift-release-master-ci-4.21-e2e-aws-ovn-techpreview |
|
@jianlinliu: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/15c47130-d0bc-11f0-9b9b-2c57df1b8c81-0 |
|
/payload-job periodic-ci-openshift-release-master-ci-4.21-e2e-aws-ovn-techpreview-serial-1of3 |
|
@jianlinliu: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/13f0f440-d0bd-11f0-8f62-9c6e66133ce8-0 |
|
/hold For payload testing 👀 |
|
/payload-job periodic-ci-openshift-release-master-ci-4.21-e2e-aws-ovn-techpreview-serial-2of3 |
|
@jianlinliu: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/20eb27f0-d0dc-11f0-80f4-5aa249dd7935-0 |
|
all the payload ci jobs got passed, the PR looks good. |
Oh thanks! Let's get this merged 🚀 /hold cancel |
|
/skip |
Descriptions
GP3 volumes have the ability to configure throughput from 125 MiB/s to 2000 MiB/s. This allows the ability to set this at install time in the install-config.
This is a take-2 of #9945 after it was reverted in #10131 due to aws serial test failure.
Notes
The following new changes are introduced:
openshift/api. It does break the convention with iops, but at least it gives us an option to represent specified vs left-empty.nilcheck is performed before passing throughput to CAPA and MAPI.