Skip to content

Conversation

@liweinan
Copy link

…f iops before install.

@openshift-ci openshift-ci bot requested review from mtulio and tthvo January 14, 2026 15:36
@liweinan
Copy link
Author

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

@liweinan
Copy link
Author

@tthvo
Copy link
Member

tthvo commented Jan 14, 2026

/retitle OCPBUGS-66941: aws: throughput/iops validation for machine pools

@openshift-ci openshift-ci bot changed the title OCPBUGS-66941 The openshift installer doesn't check the valid value o… OCPBUGS-66941: aws: throughput/iops validation for machine pools Jan 14, 2026
@openshift-ci-robot openshift-ci-robot added jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Jan 14, 2026
@openshift-ci-robot
Copy link
Contributor

@liweinan: This pull request references Jira Issue OCPBUGS-66941, which is invalid:

  • expected the bug to target the "4.22.0" version, but no target version was set

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

…f iops before install.

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.

@tthvo
Copy link
Member

tthvo commented Jan 14, 2026

/jira refresh

@openshift-ci-robot openshift-ci-robot added jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. and removed jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Jan 14, 2026
@openshift-ci-robot
Copy link
Contributor

@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
  • bug is open, matching expected state (open)
  • bug target version (4.22.0) matches configured target version for branch (4.22.0)
  • bug is in the state ASSIGNED, which is one of the valid states (NEW, ASSIGNED, POST)

Requesting review from QA contact:
/cc @liweinan

Details

In response to this:

/jira refresh

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
Copy link
Contributor

openshift-ci bot commented Jan 14, 2026

@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.

Details

In response to this:

@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
  • bug is open, matching expected state (open)
  • bug target version (4.22.0) matches configured target version for branch (4.22.0)
  • bug is in the state ASSIGNED, which is one of the valid states (NEW, ASSIGNED, POST)

Requesting review from QA contact:
/cc @liweinan

In response to this:

/jira refresh

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.

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.

Copy link
Member

@tthvo tthvo left a 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 😅

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 14, 2026

[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

Details 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 Jan 14, 2026
@tthvo
Copy link
Member

tthvo commented Jan 14, 2026

/cc @patrickdillon

@openshift-ci openshift-ci bot requested a review from patrickdillon January 14, 2026 19:57
@tthvo
Copy link
Member

tthvo commented Jan 14, 2026

/retest

@liweinan
Copy link
Author

liweinan commented Jan 15, 2026

@tthvo Thanks for the detailed review! I'll update the PR accordingly.

@liweinan liweinan force-pushed the OCPBUGS-66941 branch 2 times, most recently from 0d63d65 to 3bc5e06 Compare January 15, 2026 01:41
Copy link
Member

@tthvo tthvo left a 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 👀

@liweinan
Copy link
Author

@tthvo No problem!

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 15, 2026

@liweinan: 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/e2e-aws-ovn-shared-vpc-edge-zones d200d8c link false /test e2e-aws-ovn-shared-vpc-edge-zones
ci/prow/e2e-aws-ovn-heterogeneous d200d8c link false /test e2e-aws-ovn-heterogeneous
ci/prow/e2e-aws-ovn-edge-zones d200d8c link false /test e2e-aws-ovn-edge-zones

Full PR test history. Your PR dashboard.

Details

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.

@liweinan
Copy link
Author

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
==========================================

@liweinan
Copy link
Author

/verified by liweinan

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Jan 15, 2026
@openshift-ci-robot
Copy link
Contributor

@liweinan: This PR has been marked as verified by liweinan.

Details

In response to this:

/verified by liweinan

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.

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. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants