-
Notifications
You must be signed in to change notification settings - Fork 1.5k
OCPBUGS-66941: aws: throughput/iops validation for machine pools #10222
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
cd /Users/weli/works/oc-swarm/installer && go test ./pkg/types/aws/validation -v -run TestValidateMachinePool
=== RUN TestValidateMachinePool
=== RUN TestValidateMachinePool/empty
=== RUN TestValidateMachinePool/valid_zone_io_instance
=== RUN TestValidateMachinePool/valid_zone_gp3_instance_no_iops
=== RUN TestValidateMachinePool/valid_zone_gp3_instance_with_iops
=== RUN TestValidateMachinePool/valid_zone_gp2_instance_no_iops
=== RUN TestValidateMachinePool/invalid_zone_gp2_instance_with_iops
=== RUN TestValidateMachinePool/invalid_zone
=== RUN TestValidateMachinePool/invalid_volume_type
=== RUN TestValidateMachinePool/invalid_volume_size_using_negative
=== RUN TestValidateMachinePool/invalid_metadata_auth_option
=== RUN TestValidateMachinePool/valid_root_volume_throughput_with_sufficient_iops
=== RUN TestValidateMachinePool/valid_root_volume_throughput_with_default_iops_(within_ratio)
=== RUN TestValidateMachinePool/invalid_root_volume_throughput,_exceeds_ratio_with_default_iops
=== RUN TestValidateMachinePool/invalid_root_volume_throughput,_exceeds_ratio_with_explicit_iops
=== RUN TestValidateMachinePool/valid_root_volume_throughput,_nil_or_unspecified
=== RUN TestValidateMachinePool/invalid_root_volume_throughput,_below_minimum
=== RUN TestValidateMachinePool/invalid_root_volume_throughput,_above_maximum
=== RUN TestValidateMachinePool/invalid_root_volume_throughput,_zero
=== RUN TestValidateMachinePool/invalid_root_volume_throughput,_negative
=== RUN TestValidateMachinePool/invalid_root_volume_throughput,_unsupported_volume_type
--- PASS: TestValidateMachinePool (0.00s)
--- PASS: TestValidateMachinePool/empty (0.00s)
--- PASS: TestValidateMachinePool/valid_zone_io_instance (0.00s)
--- PASS: TestValidateMachinePool/valid_zone_gp3_instance_no_iops (0.00s)
--- PASS: TestValidateMachinePool/valid_zone_gp3_instance_with_iops (0.00s)
--- PASS: TestValidateMachinePool/valid_zone_gp2_instance_no_iops (0.00s)
--- PASS: TestValidateMachinePool/invalid_zone_gp2_instance_with_iops (0.00s)
--- PASS: TestValidateMachinePool/invalid_zone (0.00s)
--- PASS: TestValidateMachinePool/invalid_volume_type (0.00s)
--- PASS: TestValidateMachinePool/invalid_volume_size_using_negative (0.00s)
--- PASS: TestValidateMachinePool/invalid_metadata_auth_option (0.00s)
--- PASS: TestValidateMachinePool/valid_root_volume_throughput_with_sufficient_iops (0.00s)
--- PASS: TestValidateMachinePool/valid_root_volume_throughput_with_default_iops_(within_ratio) (0.00s)
--- PASS: TestValidateMachinePool/invalid_root_volume_throughput,_exceeds_ratio_with_default_iops (0.00s)
--- PASS: TestValidateMachinePool/invalid_root_volume_throughput,_exceeds_ratio_with_explicit_iops (0.00s)
--- PASS: TestValidateMachinePool/valid_root_volume_throughput,_nil_or_unspecified (0.00s)
--- PASS: TestValidateMachinePool/invalid_root_volume_throughput,_below_minimum (0.00s)
--- PASS: TestValidateMachinePool/invalid_root_volume_throughput,_above_maximum (0.00s)
--- PASS: TestValidateMachinePool/invalid_root_volume_throughput,_zero (0.00s)
--- PASS: TestValidateMachinePool/invalid_root_volume_throughput,_negative (0.00s)
--- PASS: TestValidateMachinePool/invalid_root_volume_throughput,_unsupported_volume_type (0.00s)
PASS
ok github.com/openshift/installer/pkg/types/aws/validation 0.738s |
|
/retitle OCPBUGS-66941: aws: throughput/iops validation for machine pools |
|
@liweinan: This pull request references Jira Issue OCPBUGS-66941, which is invalid:
Comment The bug has been updated to refer to the pull request using the external bug tracker. 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. |
|
/jira refresh |
|
@tthvo: This pull request references Jira Issue OCPBUGS-66941, which is valid. The bug has been moved to the POST state. 3 validation(s) were run on this bug
Requesting review from QA contact: 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. |
|
@openshift-ci-robot: GitHub didn't allow me to request PR reviews from the following users: liweinan. Note that only openshift members and repo collaborators can review this PR, and authors cannot review their own PRs. 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 kubernetes-sigs/prow repository. |
tthvo
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/approve
Cool! I just have a few small suggestions 😅
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: tthvo 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 |
|
/cc @patrickdillon |
|
/retest |
|
@tthvo Thanks for the detailed review! I'll update the PR accordingly. |
0d63d65 to
3bc5e06
Compare
0014acb to
d200d8c
Compare
tthvo
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! I guess you can self-verify it too @liweinan 😅
$ ./openshift-install create install-config --dir=.
WARNING Release Image Architecture not detected. Release Image Architecture is unknown
ERROR failed to fetch Install Config: failed to load asset "Install Config": failed to create install config: invalid "install-config.yaml" file: [controlPlane.platform.aws.throughput: Invalid value: 1500: throughput (MiBps) to iops ratio of 0.300000 is too high; maximum is 0.250000 MiBps per iops. When iops is not set, AWS defaults to 3000 iops. Please set iops to at least 6000 to satisfy the constraint, compute[0].platform.aws.throughput: Invalid value: 4000: throughput must be between 125 MiB/s and 2000 MiB/s, compute[1].platform.aws.iops: Invalid value: 5000: iops not supported for type gp2, compute[1].platform.aws.throughput: Invalid value: 1000: throughput not supported for type gp2]
I'll leave the lgtm label for a bit so others can have a look too 👀
|
@tthvo No problem! |
|
@liweinan: The following tests 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. |
|
Verification script: Result: weli@tower ~/works/oc-swarm/installer (OCPBUGS-66941)
❯ ../my-openshift-workspace/OCPBUGS-66941/validate-throughput-iops-ratio.sh -i ./bin/openshift-install
Using openshift-install: ./bin/openshift-install
Version:
./bin/openshift-install v1.4.21-pre-104-gd200d8cf4325a759073fe3b4bd627f0eb2bf5ffd
built from commit d200d8cf4325a759073fe3b4bd627f0eb2bf5ffd
release image registry.ci.openshift.org/origin/release:4.21
WARNING Release Image Architecture not detected. Release Image Architecture is unknown
release architecture unknown
default architecture amd64
Step 1: Valid root volume throughput with sufficient explicit IOPS (1200 throughput / 4800 iops = 0.25)
level=warning msg=Release Image Architecture not detected. Release Image Architecture is unknown
level=info msg=Credentials loaded from the "default" profile in file "/Users/weli/.aws/credentials"
level=info msg=Credentials loaded from the AWS config using "SharedConfigCredentials: /Users/weli/.aws/credentials" provider
level=info msg=Consuming Install Config from target directory
level=info msg=Successfully populated MCS CA cert information: root-ca 2036-01-13T11:31:57Z 2026-01-15T11:31:57Z
level=info msg=Successfully populated MCS TLS cert information: root-ca 2036-01-13T11:31:57Z 2026-01-15T11:31:57Z
level=info msg=Adding clusters...
level=info msg=Manifests created in: /tmp/test-gp3-throughput-iops-ratio/cluster-api, /tmp/test-gp3-throughput-iops-ratio/manifests and /tmp/test-gp3-throughput-iops-ratio/openshift
PASSED
Step 2: Valid root volume throughput with default IOPS (750 throughput / 3000 default iops = 0.25)
level=warning msg=Release Image Architecture not detected. Release Image Architecture is unknown
level=warning msg=Discarding the Master Machines that was provided in the target directory because its dependencies are dirty and it needs to be regenerated
level=info msg=Credentials loaded from the "default" profile in file "/Users/weli/.aws/credentials"
level=info msg=Credentials loaded from the AWS config using "SharedConfigCredentials: /Users/weli/.aws/credentials" provider
level=info msg=Consuming Install Config from target directory
level=warning msg=Discarding the Worker Machines that was provided in the target directory because its dependencies are dirty and it needs to be regenerated
level=warning msg=Discarding the Cluster API Machine Manifests that was provided in the target directory because its dependencies are dirty and it needs to be regenerated
level=warning msg=Discarding the Common Manifests that was provided in the target directory because its dependencies are dirty and it needs to be regenerated
level=info msg=Successfully populated MCS CA cert information: root-ca 2036-01-13T11:31:57Z 2026-01-15T11:31:57Z
level=info msg=Successfully populated MCS TLS cert information: root-ca 2036-01-13T11:31:57Z 2026-01-15T11:31:57Z
level=warning msg=Discarding the Openshift Manifests that was provided in the target directory because its dependencies are dirty and it needs to be regenerated
level=info msg=Consuming OpenShift Install (Manifests) from target directory
level=warning msg=Discarding the Cluster API Manifests that was provided in the target directory because its dependencies are dirty and it needs to be regenerated
level=info msg=Adding clusters...
level=info msg=Manifests created in: /tmp/test-gp3-throughput-iops-ratio/cluster-api, /tmp/test-gp3-throughput-iops-ratio/manifests and /tmp/test-gp3-throughput-iops-ratio/openshift
PASSED
Step 3: Invalid root volume throughput exceeding ratio with default IOPS (1200 throughput / 3000 default iops = 0.4 > 0.25)
level=warning msg=Release Image Architecture not detected. Release Image Architecture is unknown
level=error msg=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: 1200: throughput (MiBps) to iops ratio of 0.400000 is too high; maximum is 0.250000 MiBps per iops. When iops is not set, AWS defaults to 3000 iops. Please set iops to at least 4800 to satisfy the constraint, controlPlane.platform.aws.throughput: Invalid value: 1200: throughput (MiBps) to iops ratio of 0.400000 is too high; maximum is 0.250000 MiBps per iops. When iops is not set, AWS defaults to 3000 iops. Please set iops to at least 4800 to satisfy the constraint, compute[0].platform.aws.throughput: Invalid value: 1200: throughput (MiBps) to iops ratio of 0.400000 is too high; maximum is 0.250000 MiBps per iops. When iops is not set, AWS defaults to 3000 iops. Please set iops to at least 4800 to satisfy the constraint]
PASSED
Step 4: Invalid root volume throughput exceeding ratio with explicit IOPS (1000 throughput / 3000 iops = 0.333 > 0.25)
level=warning msg=Release Image Architecture not detected. Release Image Architecture is unknown
level=error msg=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: 1000: throughput (MiBps) to iops ratio of 0.333333 is too high; maximum is 0.250000 MiBps per iops. When iops is not set, AWS defaults to 3000 iops. Please set iops to at least 4000 to satisfy the constraint, controlPlane.platform.aws.throughput: Invalid value: 1000: throughput (MiBps) to iops ratio of 0.333333 is too high; maximum is 0.250000 MiBps per iops. When iops is not set, AWS defaults to 3000 iops. Please set iops to at least 4000 to satisfy the constraint, compute[0].platform.aws.throughput: Invalid value: 1000: throughput (MiBps) to iops ratio of 0.333333 is too high; maximum is 0.250000 MiBps per iops. When iops is not set, AWS defaults to 3000 iops. Please set iops to at least 4000 to satisfy the constraint]
PASSED
Step 5: Valid root volume throughput at boundary with explicit IOPS (500 throughput / 2000 iops = 0.25)
level=warning msg=Release Image Architecture not detected. Release Image Architecture is unknown
level=warning msg=Discarding the Master Machines that was provided in the target directory because its dependencies are dirty and it needs to be regenerated
level=info msg=Credentials loaded from the "default" profile in file "/Users/weli/.aws/credentials"
level=info msg=Credentials loaded from the AWS config using "SharedConfigCredentials: /Users/weli/.aws/credentials" provider
level=info msg=Consuming Install Config from target directory
level=warning msg=Discarding the Worker Machines that was provided in the target directory because its dependencies are dirty and it needs to be regenerated
level=warning msg=Discarding the Cluster API Machine Manifests that was provided in the target directory because its dependencies are dirty and it needs to be regenerated
level=warning msg=Discarding the Common Manifests that was provided in the target directory because its dependencies are dirty and it needs to be regenerated
level=info msg=Successfully populated MCS CA cert information: root-ca 2036-01-13T11:31:57Z 2026-01-15T11:31:57Z
level=info msg=Successfully populated MCS TLS cert information: root-ca 2036-01-13T11:31:57Z 2026-01-15T11:31:57Z
level=warning msg=Discarding the Openshift Manifests that was provided in the target directory because its dependencies are dirty and it needs to be regenerated
level=info msg=Consuming OpenShift Install (Manifests) from target directory
level=warning msg=Discarding the Cluster API Manifests that was provided in the target directory because its dependencies are dirty and it needs to be regenerated
level=info msg=Adding clusters...
level=info msg=Manifests created in: /tmp/test-gp3-throughput-iops-ratio/cluster-api, /tmp/test-gp3-throughput-iops-ratio/manifests and /tmp/test-gp3-throughput-iops-ratio/openshift
PASSED
Step 6: Invalid root volume throughput just above ratio with default IOPS (751 throughput / 3000 default iops = 0.2503 > 0.25)
level=warning msg=Release Image Architecture not detected. Release Image Architecture is unknown
level=error msg=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: 751: throughput (MiBps) to iops ratio of 0.250333 is too high; maximum is 0.250000 MiBps per iops. When iops is not set, AWS defaults to 3000 iops. Please set iops to at least 3100 to satisfy the constraint, controlPlane.platform.aws.throughput: Invalid value: 751: throughput (MiBps) to iops ratio of 0.250333 is too high; maximum is 0.250000 MiBps per iops. When iops is not set, AWS defaults to 3000 iops. Please set iops to at least 3100 to satisfy the constraint, compute[0].platform.aws.throughput: Invalid value: 751: throughput (MiBps) to iops ratio of 0.250333 is too high; maximum is 0.250000 MiBps per iops. When iops is not set, AWS defaults to 3000 iops. Please set iops to at least 3100 to satisfy the constraint]
PASSED
Step 7: Invalid root volume throughput/iops ratio for control plane
level=warning msg=Release Image Architecture not detected. Release Image Architecture is unknown
level=error msg=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: 1000: throughput (MiBps) to iops ratio of 0.333333 is too high; maximum is 0.250000 MiBps per iops. When iops is not set, AWS defaults to 3000 iops. Please set iops to at least 4000 to satisfy the constraint
PASSED
Step 8: Invalid root volume throughput/iops ratio for compute pool
level=warning msg=Release Image Architecture not detected. Release Image Architecture is unknown
level=error msg=failed to fetch Master Machines: failed to load asset "Install Config": failed to create install config: invalid "install-config.yaml" file: compute[0].platform.aws.throughput: Invalid value: 1000: throughput (MiBps) to iops ratio of 0.333333 is too high; maximum is 0.250000 MiBps per iops. When iops is not set, AWS defaults to 3000 iops. Please set iops to at least 4000 to satisfy the constraint
PASSED
==========================================
Test Summary
==========================================
Total: 8
Passed: 8
Failed: 0
========================================== |
|
/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. |
…f iops before install.