Skip to content

METAL-1837: upgrade pre-submit for CBO OOC#79575

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
iurygregory:cbo-upgrade-pre-submit
May 21, 2026
Merged

METAL-1837: upgrade pre-submit for CBO OOC#79575
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
iurygregory:cbo-upgrade-pre-submit

Conversation

@iurygregory
Copy link
Copy Markdown
Contributor

@iurygregory iurygregory commented May 21, 2026

Assisted-By: Claude 4.6 Opus High

Summary by CodeRabbit

  • Tests
    • Added baremetal IPI upgrade test scenarios for IPv4 and IPv6 network configurations to expand automated testing coverage.

@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-robot
Copy link
Copy Markdown
Contributor

openshift-ci-robot commented May 21, 2026

@iurygregory: This pull request references METAL-1837 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 story to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Assisted-By: Claude 4.6 Opus High

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 openshift-ci Bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label May 21, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 21, 2026

Walkthrough

Two new baremetal operator upgrade test scenarios are added to the CI configuration: an IPv4 OVN variant and an OVN IPv6 variant. Both are optional, out-of-change tests targeting the equinix-ocp-metal cluster profile, with upgrade-specific release images and environment variables.

Changes

Baremetal upgrade test scenarios

Layer / File(s) Summary
Baremetal upgrade test scenarios
ci-operator/config/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master.yaml
Two new optional e2e test entries for baremetal operator upgrades are added: e2e-metal-ipi-upgrade-out-of-change (IPv4 OVN, sets RUN_UPGRADE_TEST: "true") and e2e-metal-ipi-upgrade-ovn-ipv6-out-of-change (OVN IPv6, sets TEST_TYPE: upgrade). Both use equinix-ocp-metal cluster profile, target build05 cluster, skip on non-code changes, and inject upgrade release images via OPENSHIFT_INSTALL_RELEASE_IMAGE and OPENSHIFT_UPGRADE_RELEASE_IMAGE_OVERRIDE.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

🚥 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 title clearly summarizes the main change: adding upgrade pre-submit tests for CBO (Cluster Baremetal Operator) OOC (out-of-change) scenarios.
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 adds CI config test entries only. No Ginkgo test code changes present. Check is not applicable to CI operator config files.
Test Structure And Quality ✅ Passed This PR modifies only CI configuration YAML files to define new test scenarios. No Ginkgo test code files are modified, so the custom check for Ginkgo test quality is not applicable.
Microshift Test Compatibility ✅ Passed PR only adds CI configuration YAML entries, not new Ginkgo e2e test code. The check for MicroShift API compatibility applies only when new test code is added.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR modifies only CI configuration (YAML), not Ginkgo test code. Custom check applies only to new Ginkgo e2e test code additions, which are absent here.
Topology-Aware Scheduling Compatibility ✅ Passed PR modifies CI test configuration only; no deployment manifests, operator code, or scheduling constraints are introduced.
Ote Binary Stdout Contract ✅ Passed The OTE Binary Stdout Contract check applies to code-level stdout in test binaries. This PR only modifies YAML CI config files with no changes to any test binary source code.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR adds config references to existing workflows, not new test implementations. The referenced workflows have built-in IPv6 and disconnected environment handling via set_test_provider() function.

✏️ 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 openshift-ci Bot requested review from elfosardo and zaneb May 21, 2026 00:06
@openshift-merge-bot
Copy link
Copy Markdown
Contributor

@iurygregory, pj-rehearse: unable to determine affected jobs. This could be due to a branch that needs to be rebased. ERROR:

couldn't prepare candidate: couldn't rebase candidate onto e62f9755433f11dd7a3923c8edfc878975e162db due to conflicts
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.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/config/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master.yaml`:
- Around line 103-115: The new presubmit entries
e2e-metal-ipi-upgrade-out-of-change and
e2e-metal-ipi-upgrade-ovn-ipv6-out-of-change were added to the cluster config
but the downstream generated job files were not updated; run make update to
regenerate the CI artifacts and commit the resulting changes so the new jobs
(referenced by those test names and the workflow
baremetalds-e2e-upgrade-ovn-ipv4) are reflected in
openshift-cluster-baremetal-operator-master-presubmits.yaml, then add and commit
the updated generated files.
🪄 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: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 2b5f4d0f-1e9f-48bf-9f39-5d6455c58586

📥 Commits

Reviewing files that changed from the base of the PR and between e62f975 and fe29d9f.

📒 Files selected for processing (1)
  • ci-operator/config/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master.yaml

Comment on lines +103 to +115
- as: e2e-metal-ipi-upgrade-out-of-change
cluster: build05
optional: true
skip_if_only_changed: \.md$|^(DCO|LICENSE|OWNERS|PROJECT)$
steps:
cluster_profile: equinix-ocp-metal
dependencies:
OPENSHIFT_INSTALL_RELEASE_IMAGE: release:latest
OPENSHIFT_UPGRADE_RELEASE_IMAGE_OVERRIDE: release:initial
env:
CLUSTERTYPE: baremetal
RUN_UPGRADE_TEST: "true"
workflow: baremetalds-e2e-upgrade-ovn-ipv4
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# 1) Regenerate ci-operator artifacts
make update

# 2) Show whether regeneration produced required changes
git status --short
git diff -- ci-operator/jobs ci-operator/config | sed -n '1,220p'

Repository: openshift/release

Length of output: 106


🏁 Script executed:

# 1) Verify the file exists and check its content
ls -la ci-operator/config/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master.yaml

# 2) Show the file content around lines 103-136
echo "=== Lines 100-140 of the file ==="
sed -n '100,140p' ci-operator/config/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master.yaml

# 3) Check if corresponding job files exist in ci-operator/jobs/
echo -e "\n=== Check for job files related to these test names ==="
find ci-operator/jobs -name "*baremetal*" -type f | head -20

Repository: openshift/release

Length of output: 3896


🏁 Script executed:

# 4) Look for the specific test names in the jobs directory
echo "=== Searching for 'e2e-metal-ipi-upgrade-out-of-change' test definition ==="
rg "e2e-metal-ipi-upgrade-out-of-change" ci-operator/jobs/ -l 2>/dev/null || echo "Not found in jobs/"

# 5) Check the structure of ci-operator/jobs directory for this repo
echo -e "\n=== Listing ci-operator/jobs/openshift/cluster-baremetal-operator/ ==="
ls -la ci-operator/jobs/openshift/cluster-baremetal-operator/ 2>/dev/null | head -30

Repository: openshift/release

Length of output: 3469


🏁 Script executed:

echo "=== Searching for 'e2e-metal-ipi-upgrade-out-of-change' in presubmits file ==="
rg "e2e-metal-ipi-upgrade-out-of-change" ci-operator/jobs/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master-presubmits.yaml -i

echo -e "\n=== Searching for 'e2e-metal-ipi-upgrade-ovn-ipv6-out-of-change' in presubmits file ==="
rg "e2e-metal-ipi-upgrade-ovn-ipv6-out-of-change" ci-operator/jobs/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master-presubmits.yaml -i

echo -e "\n=== Check line count and sample of presubmits file ==="
wc -l ci-operator/jobs/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master-presubmits.yaml
head -50 ci-operator/jobs/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master-presubmits.yaml

Repository: openshift/release

Length of output: 2151


🏁 Script executed:

# Verify that the presubmits file contains other test definitions to confirm it's properly generated
echo "=== Searching for other test names in presubmits to confirm generation is working ==="
rg "name: pull-ci-openshift-cluster-baremetal-operator-master" ci-operator/jobs/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master-presubmits.yaml | head -15

# Count how many tests are defined
echo -e "\n=== Total test count in presubmits ==="
rg "name: pull-ci-openshift-cluster-baremetal-operator-master" ci-operator/jobs/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master-presubmits.yaml | wc -l

# Count test entries in config
echo -e "\n=== Total test count in config file ==="
rg "^- as:" ci-operator/config/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master.yaml | wc -l

Repository: openshift/release

Length of output: 1426


Run make update to regenerate and commit CI downstream artifacts.

The new test entries e2e-metal-ipi-upgrade-out-of-change and e2e-metal-ipi-upgrade-ovn-ipv6-out-of-change are present in the config file but do not appear in the generated job files (openshift-cluster-baremetal-operator-master-presubmits.yaml). Per the CI configuration guidelines, structural changes to CI config files must be followed by running make update to regenerate and commit the downstream job artifacts before merging.

🤖 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/config/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master.yaml`
around lines 103 - 115, The new presubmit entries
e2e-metal-ipi-upgrade-out-of-change and
e2e-metal-ipi-upgrade-ovn-ipv6-out-of-change were added to the cluster config
but the downstream generated job files were not updated; run make update to
regenerate the CI artifacts and commit the resulting changes so the new jobs
(referenced by those test names and the workflow
baremetalds-e2e-upgrade-ovn-ipv4) are reflected in
openshift-cluster-baremetal-operator-master-presubmits.yaml, then add and commit
the updated generated files.

This commit adds two new upgrade pre-submit jobs to CBO
They will test the case where the initial cluster is
installed with the code from PRs.

Assisted-By: Claude 4.6 Opus High
Signed-off-by: Iury Gregory Melo Ferreira <imelofer@redhat.com>
@iurygregory iurygregory force-pushed the cbo-upgrade-pre-submit branch from fe29d9f to 40a3b89 Compare May 21, 2026 00:22
@openshift-ci openshift-ci Bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label May 21, 2026
@openshift-merge-bot
Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@iurygregory: 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-cluster-baremetal-operator-main-e2e-metal-ipi-upgrade-out-of-change openshift/cluster-baremetal-operator presubmit Presubmit changed
pull-ci-openshift-cluster-baremetal-operator-main-e2e-metal-ipi-upgrade-ovn-ipv6-out-of-change openshift/cluster-baremetal-operator presubmit Presubmit changed
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.

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 21, 2026

@iurygregory: all tests passed!

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.

@hroyrh
Copy link
Copy Markdown
Contributor

hroyrh commented May 21, 2026

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label May 21, 2026
@honza
Copy link
Copy Markdown
Member

honza commented May 21, 2026

/approve

@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: honza, hroyrh, iurygregory

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
@iurygregory
Copy link
Copy Markdown
Contributor Author

/pj-rehearse ack

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

@iurygregory: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@openshift-merge-bot openshift-merge-bot Bot added the rehearsals-ack Signifies that rehearsal jobs have been acknowledged label May 21, 2026
@openshift-merge-bot openshift-merge-bot Bot merged commit 3a6fb85 into openshift:main May 21, 2026
16 checks passed
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-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. rehearsals-ack Signifies that rehearsal jobs have been acknowledged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants