Move LVMS QE integration tests to nightly variant configs#79342
Move LVMS QE integration tests to nightly variant configs#79342kasturinarra wants to merge 4 commits into
Conversation
Separate 6 QE integration tests from main and release-4.22 configs into dedicated __nightly.yaml variant configs that run against OCP nightly payload builds instead of the CI integration stream. Tests moved: sno-qe, sno-arm-qe, mno-qe, mno-arm-qe, baremetalds-sno-dualstack-qe, baremetalds-mno-dualstack-qe integration tests. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
WalkthroughSwitch main/nightly CI to OCP 5.0, build/update the lvm-operator integration-test image for those targets, add a release-4.22 nightly config, and remove duplicated weekly QE integration-job blocks from main and release-4.22 while preserving a single-node SNO job. ChangesMain Branch CI Consolidation and Nightly Pipeline
Release 4.22 Branch CI Consolidation and Nightly Pipeline
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Suggested labels
🚥 Pre-merge checks | ✅ 12✅ Passed checks (12 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
ci-operator/config/openshift/lvm-operator/openshift-lvm-operator-main__nightly.yaml (1)
275-289: ⚡ Quick winAlign bare-metal MNO job capabilities with the SNO counterpart.
e2e-baremetalds-mno-dualstack-qe-integration-testsuses the same Equinix profile family as the SNO job but omitscapabilities: [intranet]. This inconsistency can cause infra-access/scheduling differences between the two jobs.Proposed fix
- as: e2e-baremetalds-mno-dualstack-qe-integration-tests + capabilities: + - intranet cron: '@weekly'🤖 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/lvm-operator/openshift-lvm-operator-main__nightly.yaml` around lines 275 - 289, The nightly job configuration for e2e-baremetalds-mno-dualstack-qe-integration-tests is missing the capabilities: [intranet] setting that the SNO counterpart uses; update the job definition for e2e-baremetalds-mno-dualstack-qe-integration-tests by adding capabilities: [intranet] alongside the existing steps/cluster_profile/env configuration so the job uses the same Equinix profile capabilities as the SNO job and avoids infra-access/scheduling differences.
🤖 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/lvm-operator/openshift-lvm-operator-release-4.22__nightly.yaml`:
- Around line 48-49: Replace the mutable "latest" download with a pinned Snyk
release and verify its SHA-256 before making it executable: set a SNYK_VERSION
variable, download https://downloads.snyk.io/cli/${SNYK_VERSION}/snyk to
${SNYK_DIR}/snyk, download the corresponding sha256sums.txt.asc, verify the
checksum (and optionally verify the GPG signature using Snyk's GPG key
B2B465841597), compare the calculated SHA-256 of ${SNYK_DIR}/snyk against the
entry in sha256sums.txt, and only then run chmod +x ${SNYK_DIR}/snyk; update any
references to ${SNYK_DIR}/snyk to use the pinned SNYK_VERSION.
---
Nitpick comments:
In
`@ci-operator/config/openshift/lvm-operator/openshift-lvm-operator-main__nightly.yaml`:
- Around line 275-289: The nightly job configuration for
e2e-baremetalds-mno-dualstack-qe-integration-tests is missing the capabilities:
[intranet] setting that the SNO counterpart uses; update the job definition for
e2e-baremetalds-mno-dualstack-qe-integration-tests by adding capabilities:
[intranet] alongside the existing steps/cluster_profile/env configuration so the
job uses the same Equinix profile capabilities as the SNO job and avoids
infra-access/scheduling differences.
🪄 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: 5698314c-2eef-47df-b5e9-933e0bcb69bb
⛔ Files ignored due to path filters (4)
ci-operator/jobs/openshift/lvm-operator/openshift-lvm-operator-main-periodics.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/openshift/lvm-operator/openshift-lvm-operator-main-presubmits.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/openshift/lvm-operator/openshift-lvm-operator-release-4.22-periodics.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/openshift/lvm-operator/openshift-lvm-operator-release-4.22-presubmits.yamlis excluded by!ci-operator/jobs/**
📒 Files selected for processing (4)
ci-operator/config/openshift/lvm-operator/openshift-lvm-operator-main.yamlci-operator/config/openshift/lvm-operator/openshift-lvm-operator-main__nightly.yamlci-operator/config/openshift/lvm-operator/openshift-lvm-operator-release-4.22.yamlci-operator/config/openshift/lvm-operator/openshift-lvm-operator-release-4.22__nightly.yaml
💤 Files with no reviewable changes (2)
- ci-operator/config/openshift/lvm-operator/openshift-lvm-operator-release-4.22.yaml
- ci-operator/config/openshift/lvm-operator/openshift-lvm-operator-main.yaml
Strip images, operator bundles, and build commands not needed by the QE integration tests. Only lvm-operator-integration-test image and dev-scripts base image are required. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 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/lvm-operator/openshift-lvm-operator-main__nightly.yaml`:
- Around line 210-224: The job using cluster_profile: equinix-ocp-metal-qe is
missing the intranet capability; update the job's steps block (the same block
containing cluster_profile: equinix-ocp-metal-qe and env:) to add capabilities:
[intranet] so it matches the SNO counterpart and grants internal-network access
required by the baremetal MNO job.
In
`@ci-operator/config/openshift/lvm-operator/openshift-lvm-operator-release-4.22__nightly.yaml`:
- Around line 222-236: The MNO baremetal dualstack job (the job block with
cluster_profile: equinix-ocp-metal-qe, i.e. the
e2e-baremetalds-mno-dualstack-qe-integration-tests job) is missing the intranet
capability; add a capabilities: [intranet] entry to that job (same placement as
in the SNO equivalent) so the job is scheduled only on clusters with internal
network access.
🪄 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: 5a79f681-4243-4aea-8c05-5bbfb77b0537
⛔ Files ignored due to path filters (4)
ci-operator/jobs/openshift/lvm-operator/openshift-lvm-operator-main-periodics.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/openshift/lvm-operator/openshift-lvm-operator-main-presubmits.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/openshift/lvm-operator/openshift-lvm-operator-release-4.22-periodics.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/openshift/lvm-operator/openshift-lvm-operator-release-4.22-presubmits.yamlis excluded by!ci-operator/jobs/**
📒 Files selected for processing (2)
ci-operator/config/openshift/lvm-operator/openshift-lvm-operator-main__nightly.yamlci-operator/config/openshift/lvm-operator/openshift-lvm-operator-release-4.22__nightly.yaml
| - as: e2e-baremetalds-mno-dualstack-qe-integration-tests | ||
| cron: '@weekly' | ||
| reporter_config: | ||
| channel: '#lvms-release-coordination' | ||
| job_states_to_report: | ||
| - error | ||
| - failure | ||
| - success | ||
| report_template: '{{if eq .Status.State "success"}} :large_green_circle: Job *{{.Spec.Job}}* | ||
| ended with *{{.Status.State}}*. <{{.Status.URL}}|View logs> :large_green_circle: | ||
| {{else}} :red_circle: Job *{{.Spec.Job}}* ended with *{{.Status.State}}*. <{{.Status.URL}}|View | ||
| logs> :red_circle: {{end}}' | ||
| steps: | ||
| cluster_profile: equinix-ocp-metal-qe | ||
| env: |
There was a problem hiding this comment.
Add intranet capability to the baremetal MNO job.
This Equinix job uses cluster_profile: equinix-ocp-metal-qe but, unlike its SNO counterpart (Line 175-Line 178), it does not declare capabilities: [intranet]. That mismatch can prevent required internal-network access and cause avoidable job failures.
Suggested fix
- as: e2e-baremetalds-mno-dualstack-qe-integration-tests
+ capabilities:
+ - intranet
cron: '@weekly'
reporter_config:📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - as: e2e-baremetalds-mno-dualstack-qe-integration-tests | |
| cron: '@weekly' | |
| reporter_config: | |
| channel: '#lvms-release-coordination' | |
| job_states_to_report: | |
| - error | |
| - failure | |
| - success | |
| report_template: '{{if eq .Status.State "success"}} :large_green_circle: Job *{{.Spec.Job}}* | |
| ended with *{{.Status.State}}*. <{{.Status.URL}}|View logs> :large_green_circle: | |
| {{else}} :red_circle: Job *{{.Spec.Job}}* ended with *{{.Status.State}}*. <{{.Status.URL}}|View | |
| logs> :red_circle: {{end}}' | |
| steps: | |
| cluster_profile: equinix-ocp-metal-qe | |
| env: | |
| - as: e2e-baremetalds-mno-dualstack-qe-integration-tests | |
| capabilities: | |
| - intranet | |
| cron: '@weekly' | |
| reporter_config: | |
| channel: '#lvms-release-coordination' | |
| job_states_to_report: | |
| - error | |
| - failure | |
| - success | |
| report_template: '{{if eq .Status.State "success"}} :large_green_circle: Job *{{.Spec.Job}}* | |
| ended with *{{.Status.State}}*. <{{.Status.URL}}|View logs> :large_green_circle: | |
| {{else}} :red_circle: Job *{{.Spec.Job}}* ended with *{{.Status.State}}*. <{{.Status.URL}}|View | |
| logs> :red_circle: {{end}}' | |
| steps: | |
| cluster_profile: equinix-ocp-metal-qe | |
| env: |
🤖 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/lvm-operator/openshift-lvm-operator-main__nightly.yaml`
around lines 210 - 224, The job using cluster_profile: equinix-ocp-metal-qe is
missing the intranet capability; update the job's steps block (the same block
containing cluster_profile: equinix-ocp-metal-qe and env:) to add capabilities:
[intranet] so it matches the SNO counterpart and grants internal-network access
required by the baremetal MNO job.
There was a problem hiding this comment.
The MNO baremetal test was already missing capabilities: [intranet] in the original upstream config — this is not something we introduced. It's a pre-existing inconsistency between the SNO and MNO baremetal
tests.
There was a problem hiding this comment.
@kasturinarra, thanks for the clarification — understood. Since this PR is just moving existing jobs into the nightly variant configs, the inconsistency is indeed out of scope here.
Would you like me to open a follow-up GitHub issue to track this pre-existing capabilities: [intranet] inconsistency between the SNO and MNO baremetal jobs so it doesn't get lost? I can also go ahead and resolve this comment if you'd like.
| - as: e2e-baremetalds-mno-dualstack-qe-integration-tests | ||
| cron: '@weekly' | ||
| reporter_config: | ||
| channel: '#lvms-release-coordination' | ||
| job_states_to_report: | ||
| - error | ||
| - failure | ||
| - success | ||
| report_template: '{{if eq .Status.State "success"}} :large_green_circle: Job *{{.Spec.Job}}* | ||
| ended with *{{.Status.State}}*. <{{.Status.URL}}|View logs> :large_green_circle: | ||
| {{else}} :red_circle: Job *{{.Spec.Job}}* ended with *{{.Status.State}}*. <{{.Status.URL}}|View | ||
| logs> :red_circle: {{end}}' | ||
| steps: | ||
| cluster_profile: equinix-ocp-metal-qe | ||
| env: |
There was a problem hiding this comment.
Add intranet capability to the MNO baremetal dualstack job.
Line [222] defines another equinix-ocp-metal-qe baremetal job, but unlike the SNO equivalent (Line [188]), it omits capabilities: [intranet]. This mismatch can route the job to clusters without required internal network access and cause avoidable failures.
Suggested fix
- as: e2e-baremetalds-mno-dualstack-qe-integration-tests
+ capabilities:
+ - intranet
cron: '@weekly'
reporter_config:📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - as: e2e-baremetalds-mno-dualstack-qe-integration-tests | |
| cron: '@weekly' | |
| reporter_config: | |
| channel: '#lvms-release-coordination' | |
| job_states_to_report: | |
| - error | |
| - failure | |
| - success | |
| report_template: '{{if eq .Status.State "success"}} :large_green_circle: Job *{{.Spec.Job}}* | |
| ended with *{{.Status.State}}*. <{{.Status.URL}}|View logs> :large_green_circle: | |
| {{else}} :red_circle: Job *{{.Spec.Job}}* ended with *{{.Status.State}}*. <{{.Status.URL}}|View | |
| logs> :red_circle: {{end}}' | |
| steps: | |
| cluster_profile: equinix-ocp-metal-qe | |
| env: | |
| - as: e2e-baremetalds-mno-dualstack-qe-integration-tests | |
| capabilities: | |
| - intranet | |
| cron: '@weekly' | |
| reporter_config: | |
| channel: '#lvms-release-coordination' | |
| job_states_to_report: | |
| - error | |
| - failure | |
| - success | |
| report_template: '{{if eq .Status.State "success"}} :large_green_circle: Job *{{.Spec.Job}}* | |
| ended with *{{.Status.State}}*. <{{.Status.URL}}|View logs> :large_green_circle: | |
| {{else}} :red_circle: Job *{{.Spec.Job}}* ended with *{{.Status.State}}*. <{{.Status.URL}}|View | |
| logs> :red_circle: {{end}}' | |
| steps: | |
| cluster_profile: equinix-ocp-metal-qe | |
| env: |
🤖 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/lvm-operator/openshift-lvm-operator-release-4.22__nightly.yaml`
around lines 222 - 236, The MNO baremetal dualstack job (the job block with
cluster_profile: equinix-ocp-metal-qe, i.e. the
e2e-baremetalds-mno-dualstack-qe-integration-tests job) is missing the intranet
capability; add a capabilities: [intranet] entry to that job (same placement as
in the SNO equivalent) so the job is scheduled only on clusters with internal
network access.
There was a problem hiding this comment.
The MNO baremetal test was already missing capabilities: [intranet] in the original upstream config. This is a pre-existing inconsistency, not something introduced by our
changes.
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check the original release-4.22.yaml on main branch for the MNO baremetal job capabilities
git show origin/main:ci-operator/config/openshift/lvm-operator/openshift-lvm-operator-release-4.22.yaml | grep -A 20 "e2e-baremetalds-mno-dualstack"
Length of output: 777
@kasturinarra, confirmed — the original openshift-lvm-operator-release-4.22.yaml on main also lacks capabilities: [intranet] on the e2e-baremetalds-mno-dualstack-qe-integration-tests job. This PR faithfully preserves the existing configuration, so my concern doesn't apply here. Apologies for the noise.
The SNO/MNO intranet capability mismatch is a pre-existing inconsistency. Would you like me to open a follow-up GitHub issue to track fixing it separately?
The gather step was left over from a partial edit and referenced lvms-must-gather which is not built in the nightly config. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Bump base images, build root, and release references from 4.22 to 5.0 in both main.yaml and main__nightly.yaml. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: kasturinarra 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 |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
ci-operator/config/openshift/lvm-operator/openshift-lvm-operator-main__nightly.yaml (1)
199-209: ⚡ Quick winBaremetal jobs lack explicit timeout unlike AWS counterparts.
AWS integration tests define
timeout: 4h0m0sbut baremetal SNO/MNO jobs omit it. Without an explicit timeout, jobs may run indefinitely if the integration tests hang, consuming cluster resources.Consider adding consistent timeout values:
Suggested fix for baremetal SNO job (Lines 199-209)
from: lvm-operator-integration-test resources: requests: cpu: 100m memory: 200Mi + timeout: 4h0m0s workflow: cucushift-installer-rehearse-baremetalds-ipi-ovn-dualstack-sno-lvmsSuggested fix for baremetal MNO job (Lines 227-237)
from: lvm-operator-integration-test resources: requests: cpu: 100m memory: 200Mi + timeout: 4h0m0s workflow: cucushift-installer-rehearse-baremetalds-ipi-ovn-dualstack-mno-lvmsAlso applies to: 227-237
🤖 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/lvm-operator/openshift-lvm-operator-main__nightly.yaml` around lines 199 - 209, The SNO baremetal test job (the test block with "as: lvms-sno-integration-test" and "from: lvm-operator-integration-test") is missing an explicit timeout; add a timeout: 4h0m0s field at the same indentation as "cli", "commands", and "from" so the job will be forcibly terminated if the integration tests hang; do the same for the MNO baremetal job (the test block at lines referenced with the other "as:" entry) to match the AWS jobs' timeout behavior.
🤖 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/config/openshift/lvm-operator/openshift-lvm-operator-main__nightly.yaml`:
- Around line 199-209: The SNO baremetal test job (the test block with "as:
lvms-sno-integration-test" and "from: lvm-operator-integration-test") is missing
an explicit timeout; add a timeout: 4h0m0s field at the same indentation as
"cli", "commands", and "from" so the job will be forcibly terminated if the
integration tests hang; do the same for the MNO baremetal job (the test block at
lines referenced with the other "as:" entry) to match the AWS jobs' timeout
behavior.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Enterprise
Run ID: f91ab0c7-0a9d-4cc9-a1f0-ad936bec68df
⛔ Files ignored due to path filters (2)
ci-operator/jobs/openshift/lvm-operator/openshift-lvm-operator-main-periodics.yamlis excluded by!ci-operator/jobs/**ci-operator/jobs/openshift/lvm-operator/openshift-lvm-operator-main-presubmits.yamlis excluded by!ci-operator/jobs/**
📒 Files selected for processing (2)
ci-operator/config/openshift/lvm-operator/openshift-lvm-operator-main.yamlci-operator/config/openshift/lvm-operator/openshift-lvm-operator-main__nightly.yaml
|
[REHEARSALNOTIFIER]
A total of 27 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 periodic-ci-openshift-lvm-operator-release-4.22-nightly-e2e-aws-mno-qe-integration-tests periodic-ci-openshift-lvm-operator-release-4.22-nightly-e2e-aws-mno-arm-qe-integration-tests periodic-ci-openshift-lvm-operator-release-4.22-nightly-e2e-aws-sno-arm-qe-integration-tests periodic-ci-openshift-lvm-operator-release-4.22-nightly-e2e-aws-sno-qe-integration-tests periodic-ci-openshift-lvm-operator-release-4.22-nightly-e2e-baremetalds-mno-dualstack-qe-integration-tests periodic-ci-openshift-lvm-operator-release-4.22-nightly-e2e-baremetalds-sno-dualstack-qe-integration-tests |
|
@kasturinarra: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
/pj-rehearse periodic-ci-openshift-lvm-operator-main-nightly-e2e-aws-mno-arm-qe-integration-tests |
|
@kasturinarra: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
@kasturinarra: 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. |
Separate 6 QE integration tests from main and release-4.22 configs into dedicated __nightly.yaml variant configs that run against OCP nightly payload builds instead of the CI integration stream.
Tests moved: sno-qe, sno-arm-qe, mno-qe, mno-arm-qe, baremetalds-sno-dualstack-qe, baremetalds-mno-dualstack-qe integration tests.
Summary
This PR updates OpenShift CI config for the openshift/lvm-operator repo by moving six LVMS QE integration-test jobs out of the standard main and release-4.22 CI configs into nightly-variant configs so those suites run weekly against OCP nightly payloads. It also updates the main config to target OCP 5.0 (base images, build_root, and release references).
What changed (practical terms)
ci-operator/config/openshift/lvm-operator/openshift-lvm-operator-main.yaml
ci-operator/config/openshift/lvm-operator/openshift-lvm-operator-main__nightly.yaml
ci-operator/config/openshift/lvm-operator/openshift-lvm-operator-release-4.22.yaml
ci-operator/config/openshift/lvm-operator/openshift-lvm-operator-release-4.22__nightly.yaml
Tests moved
Notable details / practical impact