Skip to content

CNTRLPLANE-3509: Remove n2/n3/n4 minor release imports from hypershift main branch jobs#79627

Draft
jparrill wants to merge 1 commit into
openshift:mainfrom
jparrill:CNTRLPLANE-3509
Draft

CNTRLPLANE-3509: Remove n2/n3/n4 minor release imports from hypershift main branch jobs#79627
jparrill wants to merge 1 commit into
openshift:mainfrom
jparrill:CNTRLPLANE-3509

Conversation

@jparrill
Copy link
Copy Markdown
Contributor

@jparrill jparrill commented May 21, 2026

Summary

  • Remove n2minor, n3minor, and n4minor release definitions from openshift-hypershift-main.yaml
  • Remove OCP_IMAGE_N2, OCP_IMAGE_N3, OCP_IMAGE_N4 dependencies from 8 jobs: e2e-aks, e2e-aks-4-22, e2e-aws, e2e-azure-self-managed, e2e-aws-minimal, e2e-aws-techpreview, e2e-aws-4-22, e2e-aws-autonode

Why

The e2e-aws job imports 6+ releases concurrently, triggering a race condition in ci-tools (pkg/steps/release/import_release.go) where CLI extraction pods disappear or hit UID mismatches. This causes ~40-45% of e2e-aws runs to fail before any test executes.

The n2/n3/n4 releases were only used by NodePool version skew tests that are redundant:

  • N4 (unsupported skew): already covered by unit tests in TestValidateVersionSkew
  • N3 (n-3 boundary): same labels/taints validation as N1
  • N2 (n-2): same code path as N1 with a different version number

Companion PR

openshift/hypershift#8570 — removes the e2e test cases and CLI flags

Impact

  • Reduces release imports from 6 to 3 per job, cutting CI time by ~15-30 min
  • Step registry still declares OCP_IMAGE_N2/N3/N4 as optional dependencies with defaults, so release branch configs are unaffected
  • No loss of test coverage

Jira: https://issues.redhat.com/browse/CNTRLPLANE-3509

🤖 Generated with Claude Code

Summary by CodeRabbit

This PR updates the OpenShift Hypershift CI configuration to reduce build times and eliminate race conditions by removing three minor release candidates from the test matrix.

What's changing:
The CI configuration for Hypershift main branch jobs (in ci-operator/config/openshift/hypershift/openshift-hypershift-main.yaml) is being simplified by:

  • Removing n2minor (4.21), n3minor (4.20), and n4minor (4.19) release definitions from the release candidate matrix
  • Updating eight e2e test jobs to stop importing corresponding OCP images (OCP_IMAGE_N2, OCP_IMAGE_N3, OCP_IMAGE_N4), leaving only the N1 release plus LATEST where applicable

Affected jobs:

  • e2e-aks, e2e-aks-4-22
  • e2e-aws, e2e-aws-minimal, e2e-aws-techpreview, e2e-aws-4-22, e2e-aws-autonode
  • e2e-azure-self-managed

Why:

  • Concurrent import of 6+ releases in the e2e-aws pipeline was triggering a race condition in the CI tooling's CLI extraction step, causing approximately 40-45% of pre-test failures
  • The N2, N3, and N4 releases were used exclusively for NodePool version skew tests that are being removed in a companion PR (CNTRLPLANE-3509: Remove n2/n3/n4 minor release NodePool skew e2e tests hypershift#8570)
  • These tests are redundant: the N4 behavior is covered by unit tests, while N3 and N2 perform identical validations to N1

Impact:

  • Reduces the number of release imports per job from 6 to 3
  • Cuts CI pipeline time by approximately 15-30 minutes per job run
  • Eliminates the extraction race condition
  • Step registry configuration remains compatible with release-branch jobs since OCP_IMAGE_N2/N3/N4 are declared as optional with defaults

This is a configuration-only change with no impact on test coverage for the main branch, as all tested functionality is preserved.

…h jobs

Stop importing n2minor (4.21), n3minor (4.20), and n4minor (4.19)
release payloads for hypershift main branch CI jobs. These releases
were only used by NodePool version skew e2e tests that have been
removed in openshift/hypershift#8570 because:

- The version skew validation is already covered by unit tests
- Labels/taints validation is already covered by the n1minor test
- Each extra release import adds ~5-10 min of CI time and increases
  exposure to a ci-tools race condition in CLI image extraction

The step registry still declares OCP_IMAGE_N2/N3/N4 as optional
dependencies with defaults, so release branch configs that still
reference them are unaffected.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Juan Manuel Parrilla Madrid <jparrill@redhat.com>
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label May 21, 2026
@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label May 21, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 21, 2026

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

openshift-ci-robot commented May 21, 2026

@jparrill: This pull request references CNTRLPLANE-3509 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 task to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

  • Remove n2minor, n3minor, and n4minor release definitions from openshift-hypershift-main.yaml
  • Remove OCP_IMAGE_N2, OCP_IMAGE_N3, OCP_IMAGE_N4 dependencies from 8 jobs: e2e-aks, e2e-aks-4-22, e2e-aws, e2e-azure-self-managed, e2e-aws-minimal, e2e-aws-techpreview, e2e-aws-4-22, e2e-aws-autonode

Why

The e2e-aws job imports 6+ releases concurrently, triggering a race condition in ci-tools (pkg/steps/release/import_release.go) where CLI extraction pods disappear or hit UID mismatches. This causes ~40-45% of e2e-aws runs to fail before any test executes.

The n2/n3/n4 releases were only used by NodePool version skew tests that are redundant:

  • N4 (unsupported skew): already covered by unit tests in TestValidateVersionSkew
  • N3 (n-3 boundary): same labels/taints validation as N1
  • N2 (n-2): same code path as N1 with a different version number

Companion PR

openshift/hypershift#8570 — removes the e2e test cases and CLI flags

Impact

  • Reduces release imports from 6 to 3 per job, cutting CI time by ~15-30 min
  • Step registry still declares OCP_IMAGE_N2/N3/N4 as optional dependencies with defaults, so release branch configs are unaffected
  • No loss of test coverage

Jira: https://issues.redhat.com/browse/CNTRLPLANE-3509

🤖 Generated with Claude Code

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.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 21, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 93a6395f-12ad-4629-ac93-358a0f6cb7b9

📥 Commits

Reviewing files that changed from the base of the PR and between 7a00348 and fbf2481.

📒 Files selected for processing (1)
  • ci-operator/config/openshift/hypershift/openshift-hypershift-main.yaml
💤 Files with no reviewable changes (1)
  • ci-operator/config/openshift/hypershift/openshift-hypershift-main.yaml

Walkthrough

The PR simplifies the HyperShift CI configuration by removing older minor release candidates (n2minor, n3minor, n4minor) from the release matrix and their corresponding dependencies across multiple e2e test jobs, retaining only the n1minor release candidate.

Changes

HyperShift Release Matrix Simplification

Layer / File(s) Summary
Remove minor release definitions
ci-operator/config/openshift/hypershift/openshift-hypershift-main.yaml
Removes n2minor, n3minor, and n4minor entries from the top-level releases section, consolidating to only n1minor.
Update test job dependencies
ci-operator/config/openshift/hypershift/openshift-hypershift-main.yaml
Eight e2e test jobs (e2e-aks, e2e-aks-4-22, e2e-aws, e2e-azure-self-managed, e2e-aws-minimal, e2e-aws-techpreview, e2e-aws-4-22, e2e-aws-autonode) have their steps.dependencies cleaned to remove OCP_IMAGE_N2, OCP_IMAGE_N3, and OCP_IMAGE_N4 references, keeping only OCP_IMAGE_N1 and OCP_IMAGE_LATEST where applicable.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • openshift/release#79229: Both PRs delete Hypershift "n-minor" variants (e.g., n2minor/n3minor and related test job entries) from CI configuration—main PR by trimming the minor release matrix/dependencies to only n1minor, and retrieved PR by removing aws-ipi-ovn-hypershift n{1,2,3}minor test jobs—so they are directly code-level aligned.
  • openshift/release#79347: Both PRs modify ci-operator/config/openshift/hypershift/openshift-hypershift-main.yaml to adjust steps.dependencies/OCP image wiring around the release:n1minor/OCP_IMAGE_N1 set (main PR keeps only N1; retrieved PR adds N1minor dependency for the v2 Azure self-managed job).

Suggested labels

lgtm, approved, rehearsals-ack

Suggested reviewers

  • enxebre
  • csrwng
🚥 Pre-merge checks | ✅ 12
✅ Passed checks (12 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title directly and specifically describes the main change: removing n2/n3/n4 minor release imports from hypershift main branch jobs, which matches the core modification in the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed PR modifies only CI config YAML (removes release dependencies), not Go test files. Ginkgo test names check does not apply as no test code or test declarations were changed.
Test Structure And Quality ✅ Passed This PR modifies CI configuration YAML and adds standard Go unit tests, not Ginkgo tests. The custom check for Ginkgo test structure is not applicable.
Microshift Test Compatibility ✅ Passed PR modifies only CI config file (YAML), not adding new Ginkgo e2e tests. Check is not applicable as it only applies to new test code.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR only removes CI configuration (release definitions and job dependencies). No new Ginkgo e2e tests added. Test removals are in companion PR openshift/hypershift#8570.
Topology-Aware Scheduling Compatibility ✅ Passed PR modifies only CI test configuration (release imports), not deployment manifests, operator code, or controllers. No scheduling constraints are introduced.
Ote Binary Stdout Contract ✅ Passed PR only modifies YAML CI/CD config files; no source code changes. OTE Binary Stdout Contract check applies to process-level code only, making it non-applicable.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed This PR modifies CI operator configuration (YAML) only and does not add new Ginkgo e2e tests. The custom check applies only to new Ginkgo e2e tests; therefore, it is not applicable here.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 21, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jparrill

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 May 21, 2026
@openshift-merge-bot
Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@jparrill: the pj-rehearse plugin accommodates running rehearsal tests for the changes in this PR. Expand 'Interacting with pj-rehearse' for usage details. The following rehearsable tests have been affected by this change:

Test name Repo Type Reason
pull-ci-openshift-hypershift-main-address-review-comments openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-agentic-qe-aws openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-aks openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-aks-4-22 openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-aks-override openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-aws openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-aws-4-22 openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-aws-autonode openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-aws-external-oidc-techpreview openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-aws-metrics openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-aws-minimal openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-aws-override openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-aws-techpreview openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-aws-upgrade-hypershift-operator openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-azure-aks-external-oidc-techpreview openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-azure-aks-ovn-conformance openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-azure-kubevirt-ovn openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-azure-self-managed openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-azure-v2-self-managed openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-conformance openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-gke openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-kubevirt-aws-ovn openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-kubevirt-aws-ovn-reduced openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-kubevirt-azure-ovn openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-openstack-aws openshift/hypershift presubmit Ci-operator config changed

A total of 43 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
Prior to this PR being merged, you will need to either run and acknowledge or opt to skip these rehearsals.

Interacting with pj-rehearse

Comment: /pj-rehearse to run up to 5 rehearsals
Comment: /pj-rehearse skip to opt-out of rehearsals
Comment: /pj-rehearse {test-name}, with each test separated by a space, to run one or more specific rehearsals
Comment: /pj-rehearse more to run up to 10 rehearsals
Comment: /pj-rehearse max to run up to 25 rehearsals
Comment: /pj-rehearse auto-ack to run up to 5 rehearsals, and add the rehearsals-ack label on success
Comment: /pj-rehearse list to get an up-to-date list of affected jobs
Comment: /pj-rehearse abort to abort all active rehearsals
Comment: /pj-rehearse network-access-allowed to allow rehearsals of tests that have the restrict_network_access field set to false. This must be executed by an openshift org member who is not the PR author

Once you are satisfied with the results of the rehearsals, comment: /pj-rehearse ack to unblock merge. When the rehearsals-ack label is present on your PR, merge will no longer be blocked by rehearsals.
If you would like the rehearsals-ack label removed, comment: /pj-rehearse reject to re-block merging.

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/work-in-progress Indicates that a PR should not merge because it is a work in progress. 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.

2 participants