azure: use Standard v3 instance types for OCP 4.21 and older#80483
azure: use Standard v3 instance types for OCP 4.21 and older#80483sdodson wants to merge 1 commit into
Conversation
WalkthroughSelects control-plane instance types by OCP version and architecture in the Azure IPI configure step (amd64: use *_s_v3 for OCP ≤4.21, *_as_v5 for OCP >4.21; arm64 stays *_ps_v5). Also rewrites ChangesAzure Instance Type Selection Logic
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes 🚥 Pre-merge checks | ✅ 14 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (14 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: sdodson The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
e1a3ad8 to
d22f209
Compare
Follow-up to the default change to Standard_D8as_v5 / Standard_D4as_v5. Azure quota limits on the new as_v5 SKUs are being hit for older release branches. Restore the prior s_v3 defaults for OCP 4.21 and older using the version information already extracted in the script. Explicit CONTROL_PLANE_INSTANCE_TYPE overrides are still honored. COMPUTE_NODE_TYPE is only reverted when it equals the new default (Standard_D4as_v5) to avoid clobbering intentional per-job overrides. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
d22f209 to
acd22a6
Compare
|
[REHEARSALNOTIFIER]
A total of 5243 jobs have been affected by this change. The above listing is non-exhaustive and limited to 25 jobs. A full list of affected jobs can be found here Interacting with pj-rehearseComment: Once you are satisfied with the results of the rehearsals, comment: |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
ci-operator/step-registry/ipi/conf/azure/ipi-conf-azure-ref.yaml (1)
32-33: ⚡ Quick winClarify suffix-based defaults for non-D8
SIZE_VARIANTs.Line 32-33 says the default depends on
SIZE_VARIANT, but the examples only showStandard_D8*. Please document this as a prefix+suffix rule (D8/D16/D32by size variant, thens_v3/as_v5/ps_v5by arch/version) to avoid ambiguity forlarge/xlarge.Proposed doc wording
- When "" (default), depends on SIZE_VARIANT and OCP version: Standard_D8as_v5 for 4.21+, - Standard_D8s_v3 for 4.20 and older (amd64 only; arm64 always uses Standard_D8ps_v5). + When "" (default), the VM size prefix is selected from SIZE_VARIANT (D8/D16/D32), + then the suffix is selected by arch/version: + - amd64, OCP 4.21+: *_as_v5 + - amd64, OCP 4.20 and older: *_s_v3 + - arm64 (all supported versions): *_ps_v5🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@ci-operator/step-registry/ipi/conf/azure/ipi-conf-azure-ref.yaml` around lines 32 - 33, The comment is ambiguous about how defaults are formed from SIZE_VARIANT; update the wording around SIZE_VARIANT to explain a prefix+suffix rule: map size variants to prefixes (e.g., small/medium/large → D8, D16, D32 respectively) and then append the suffix chosen by arch/version (use _s_v3 for older amd64, _as_v5 for newer amd64, and _ps_v5 for arm64) so examples like Standard_D8s_v3, Standard_D8as_v5, Standard_D8ps_v5 follow the rule; mention the SIZE_VARIANT symbol explicitly and show the prefix (D8/D16/D32) + suffix (s_v3/as_v5/ps_v5) composition to cover large/xlarge variants.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@ci-operator/step-registry/ipi/conf/azure/ipi-conf-azure-ref.yaml`:
- Around line 32-33: The comment is ambiguous about how defaults are formed from
SIZE_VARIANT; update the wording around SIZE_VARIANT to explain a prefix+suffix
rule: map size variants to prefixes (e.g., small/medium/large → D8, D16, D32
respectively) and then append the suffix chosen by arch/version (use _s_v3 for
older amd64, _as_v5 for newer amd64, and _ps_v5 for arm64) so examples like
Standard_D8s_v3, Standard_D8as_v5, Standard_D8ps_v5 follow the rule; mention the
SIZE_VARIANT symbol explicitly and show the prefix (D8/D16/D32) + suffix
(s_v3/as_v5/ps_v5) composition to cover large/xlarge variants.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Enterprise
Run ID: f87325ab-a017-4ffc-b64f-c5a6c6d831a9
📒 Files selected for processing (2)
ci-operator/step-registry/ipi/conf/azure/ipi-conf-azure-commands.shci-operator/step-registry/ipi/conf/azure/ipi-conf-azure-ref.yaml
|
[REHEARSALNOTIFIER]
A total of 5243 jobs have been affected by this change. The above listing is non-exhaustive and limited to 25 jobs. A full list of affected jobs can be found here Interacting with pj-rehearseComment: Once you are satisfied with the results of the rehearsals, comment: |
|
[REHEARSALNOTIFIER]
A total of 5243 jobs have been affected by this change. The above listing is non-exhaustive and limited to 25 jobs. A full list of affected jobs can be found here Interacting with pj-rehearseComment: Once you are satisfied with the results of the rehearsals, comment: |
|
/pj-rehearse |
|
@sdodson: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@ci-operator/step-registry/ipi/conf/azure/ipi-conf-azure-commands.sh`:
- Around line 88-92: The version cutoff for selecting the v3 master SKU is off
by one; update the comparisons that call version_gt with the string "4.21" to
use "4.20" instead so that only 4.20 and older use the v3 fallback.
Specifically, change the two occurrences that set master_type (using
master_type_prefix and version variable tested via version_gt) so the condition
reads version_gt "${version}" "4.20" (keeping the same negation logic) to keep
4.21 on the v5 SKU path.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Enterprise
Run ID: 2987e622-d884-4c1f-a820-e2ad0b45286e
📒 Files selected for processing (2)
ci-operator/step-registry/ipi/conf/azure/ipi-conf-azure-commands.shci-operator/step-registry/ipi/conf/azure/ipi-conf-azure-ref.yaml
|
/pj-rehearse |
|
@sdodson: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
@sdodson: 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. |
Summary
Follow-up to #75999 (which updated CI defaults to Standard_D8as_v5 / Standard_D4as_v5).
To manage Azure quota, we are moving testing for 4.21 and older back to the prior
s_v3defaults. 4.22+ continues to use the newas_v5defaults.Standard_D8as_v5→Standard_D8s_v3(also applies toxlarge/large/compactSIZE_VARIANTs using the same suffix logic)Standard_D4as_v5→Standard_D4s_v3(only when COMPUTE_NODE_TYPE is still the default)Explicit
CONTROL_PLANE_INSTANCE_TYPEoverrides in job configs are still honored.COMPUTE_NODE_TYPEis only reverted when it equals the new default (Standard_D4as_v5) to avoid clobbering intentional per-job overrides.A follow-up will experiment with smaller 4-vCPU instances for serial jobs.
Test plan
Standard_D8s_v3/Standard_D4s_v3in the install-configStandard_D8as_v5/Standard_D4as_v5CONTROL_PLANE_INSTANCE_TYPEoverride is not clobbered🤖 Generated with Claude Code
Summary by CodeRabbit
This PR changes OpenShift CI Azure provisioning for older releases so control plane and compute instances revert to the prior Standard s_v3 SKUs for OCP 4.21 and older (effectively OCP ≤ 4.20 behavior), avoiding Azure quota issues with the newer as_v5 SKUs.
Practical impact on CI/infrastructure:
What changed:
Behavior preserved:
Test plan (what to verify):