Skip to content

USHIFT-6905: consolidate CI test scenarios to reduce VM count#6591

Merged
openshift-merge-bot[bot] merged 8 commits into
openshift:mainfrom
agullon:USHIFT-consolidate-scenarios-main
Apr 28, 2026
Merged

USHIFT-6905: consolidate CI test scenarios to reduce VM count#6591
openshift-merge-bot[bot] merged 8 commits into
openshift:mainfrom
agullon:USHIFT-consolidate-scenarios-main

Conversation

@agullon

@agullon agullon commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Consolidate CI test scenarios to reduce VM count without losing test coverage. Tests that ran in dedicated VMs are now piggy-backed onto VMs already provisioned for compatible environments.

The changes are symmetric across el9 and el10 for the y1/y2 upgrade paths and standalone scenarios. el10 has additional operations for the el98→el102 cross-major-version upgrade path which has no el9 equivalent.

Additionally, cleanupWorkload.sh is fixed to use set -eux (was set -ux) so that cleanup failures abort the scenario instead of silently continuing.


test/scenarios-bootc/el9/releases/ (8 deleted, 4 renamed, 2 created, 1 modified → net -6 VMs)

Deleted (8):

  • el98-lrel@tlsv13-standard1.sh — TLS v1.3 + standard1 already covered by multi-config-standard1
  • el98-lrel@tlsv13-standard2.sh — TLS v1.3 enforcement is transport-layer; validated by multi-config-standard1 running standard1, so dedicated standard2+TLS v1.3 testing is redundant
  • el98-lrel@configuration.sh — configuration suite moved into dual-stack-configuration
  • el98-lrel@fips.sh — FIPS suite moved into ai-model-serving-online-fips
  • el96-y1@el98-lrel@standard1.sh — standard1 suite moved into el96-y1@lvms-standard1
  • el96-y1@el98-lrel@standard2.sh — standard2 suite moved into el96-y1@lvms-standard2
  • el96-y2@el98-lrel@standard1.sh — standard1 suite moved into el96-y2@lvms-standard1
  • el96-y2@el98-lrel@standard2.sh — standard2 suite moved into el96-y2@lvms-standard2

Renamed (4):

  • el98-lrel@dual-stack.shel98-lrel@dual-stack-configuration.sh — added suites/configuration/
  • el98-lrel@ai-model-serving-online.shel98-lrel@ai-model-serving-online-fips.sh — switched to fips image, added --fips to launch_vm, added suites/fips/
  • el96-y1@el98-lrel@lvms.shel96-y1@el98-lrel@lvms-standard1.sh — added --vm_disksize 30
  • el96-y2@el98-lrel@lvms.shel96-y2@el98-lrel@lvms-standard2.sh — removed ginkgo, added suites/standard2/ after LVMS cleanup

Created (2):

  • el96-y1@el98-lrel@lvms-standard2.sh — LVMS lifecycle + standard2 after upgrade (replaces deleted standard2)
  • el96-y2@el98-lrel@lvms-standard1.sh — LVMS lifecycle + ginkgo + standard1 after upgrade (replaces deleted standard1)

Modified (1):

  • el98-lrel@multi-config-standard1.sh — removed --exclude version and stale comment (now the only place running standard1 with TLS v1.3)

test/scenarios-bootc/el10/releases/ (8 deleted, 5 renamed, 1 created, 3 modified → net -7 VMs)

Same as el9 for standalone and y1/y2 upgrade scenarios, plus additional changes for the el98→el102 cross-major-version upgrade path (no el9 equivalent).

Deleted (8):

  • el102-lrel@tlsv13-standard1.sh — TLS v1.3 + standard1 already covered by multi-config-standard1
  • el102-lrel@tlsv13-standard2.sh — TLS v1.3 enforcement is transport-layer; validated by multi-config-standard1 running standard1, so dedicated standard2+TLS v1.3 testing is redundant
  • el102-lrel@configuration.sh — configuration suite moved into dual-stack-configuration
  • el102-lrel@fips.sh — FIPS suite moved into ai-model-serving-online-fips
  • el96-y1@el102-lrel@standard1.sh — standard1 suite moved into upgrade LVMS scenarios
  • el96-y1@el102-lrel@standard2.sh — standard2 suite moved into upgrade LVMS scenarios
  • el96-y2@el102-lrel@standard1.sh — standard1 suite moved into el96-y2@lvms-standard1
  • el96-y2@el102-lrel@standard2.sh — standard2 suite moved into el96-y2@lvms-standard2

Renamed (4 + 1 el98→el102):

  • el102-lrel@dual-stack.shel102-lrel@dual-stack-configuration.sh — added suites/configuration/
  • el102-lrel@ai-model-serving-online.shel102-lrel@ai-model-serving-online-fips.sh — switched to fips image, added --fips to launch_vm, added suites/fips/
  • el96-y1@el102-lrel@lvms.shel96-y1@el102-lrel@lvms-standard1.sh — added --vm_disksize 30
  • el96-y2@el102-lrel@lvms.shel96-y2@el102-lrel@lvms-standard1.sh — added --vm_disksize 30
  • (el98→el102 only) el98-lrel@el102-lrel@lvms.shel96-y1@el102-lrel@lvms-standard2.sh — changed upgrade path from el98→el102 to el96-y1→el102, removed ginkgo, added standard2, added --vm_disksize 30 (el98 LVMS tests absorbed into modified el98-lrel@el102-lrel@standard1/2)

Created (1):

  • el96-y2@el102-lrel@lvms-standard2.sh — LVMS lifecycle + standard2 after upgrade

Modified (1 + 2 el98→el102):

  • el102-lrel@multi-config-standard1.sh — removed --exclude version and stale comment
  • (el98→el102 only) el98-lrel@el102-lrel@standard1.sh — expanded with LVMS lifecycle (create/check/upgrade/validate/cleanup) + --vm_disksize 30, absorbing old el98-lrel@el102-lrel@lvms.sh
  • (el98→el102 only) el98-lrel@el102-lrel@standard2.sh — expanded with LVMS lifecycle (create/check/upgrade/validate/cleanup) + --vm_disksize 30, absorbing old el98-lrel@el102-lrel@lvms.sh

test/scenarios/releases/ (ostree) (7 deleted, 3 renamed, 2 created, 3 re-enabled → net -2 VMs)

Equivalent to el9 bootc changes (no FIPS or AI model serving scenarios in ostree).

Deleted (7):

  • el98-lrel@tlsv13-standard1.sh — TLS v1.3 + standard1 already covered by ginkgo-multi-config
  • el98-lrel@tlsv13-standard2.sh — TLS v1.3 enforcement is transport-layer; validated by ginkgo-multi-config running standard1, so dedicated standard2+TLS v1.3 testing is redundant
  • el98-lrel@configuration.sh — configuration suite moved into dual-stack-configuration
  • el96-yminus1@el98-lrel@standard1.sh — standard1 suite moved into yminus1@lvms-standard1
  • el96-yminus1@el98-lrel@standard2.sh — standard2 suite moved into yminus1@lvms-standard2
  • el96-yminus2@el98-lrel@standard1.sh — standard1 suite moved into yminus2@lvms-standard1
  • el96-yminus2@el98-lrel@standard2.sh — standard2 suite moved into yminus2@lvms-standard2

Renamed (3):

  • el98-lrel@dual-stack.shel98-lrel@dual-stack-configuration.sh — added suites/configuration/
  • el96-yminus1@el98-lrel@lvms.shel96-yminus1@el98-lrel@lvms-standard1.sh — added --vm_disksize 30
  • el96-yminus2@el98-lrel@lvms.shel96-yminus2@el98-lrel@lvms-standard2.sh — removed ginkgo, added suites/standard2/ after LVMS cleanup, added --vm_disksize 30

Created (2):

  • el96-yminus1@el98-lrel@lvms-standard2.sh — LVMS lifecycle + standard2 after upgrade
  • el96-yminus2@el98-lrel@lvms-standard1.sh — LVMS lifecycle + ginkgo + standard1 after upgrade

Re-enabled (3):

  • el98@rpm-standard1.sh (was .disabled)
  • el98@rpm-standard2.sh (was .disabled)
  • el98@rpm-upgrade.sh (was .disabled)

scripts/lvms-helpers/ (1 modified)

  • cleanupWorkload.sh — changed set -ux to set -eux so cleanup failures abort the scenario

Total: 23 scenarios deleted, 12 renamed, 5 created, 3 re-enabled, 1 script fixed → net -15 VMs

Test plan

  • Verify bootc el9 release scenarios discover and run all expected test suites
  • Verify bootc el10 release scenarios discover and run all expected test suites
  • Verify ostree release scenarios discover and run all expected test suites
  • Confirm no test suites were dropped (compare total test count before/after)

🤖 Generated with Claude Code

Cherry-picked from #6588 (release-4.22)

Summary by CodeRabbit

  • Tests

    • Added LVMS workload creation/validation around upgrade flows to verify persistent storage survives upgrades.
    • Expanded test runs to include FIPS and configuration suites in relevant scenarios.
    • Switched some post-upgrade verification to standard2 test suites for consistency.
  • Chores

    • Consolidated and removed many specialized scenario variants to simplify the test matrix.
    • Updated VM provisioning defaults to allocate 30GB disks for upgrade test environments.

agullon added 7 commits April 27, 2026 17:34
TLS v1.3 enforcement is a transport-layer concern validated by
multi-config-standard1 which already applies TLS v1.3 and runs
standard1 tests. Dedicated TLS v1.3 scenarios for standard1/standard2
are redundant.

Also remove --exclude version from multi-config-standard1 so that
version tests now run there, and drop the stale comment that
referenced the old exclusion.

Removes 6 VMs (2 per platform: el9/el10 bootc, ostree).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

pre-commit.check-secrets: ENABLED
Piggyback the configuration test suite onto the dual-stack VM which
is already provisioned with a compatible environment. The dual-stack
scenario is renamed to dual-stack-configuration to reflect the
combined coverage.

Removes 3 VMs (1 per platform: el9/el10 bootc, ostree).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

pre-commit.check-secrets: ENABLED
Consolidate the FIPS test suite into the ai-model-serving-online VM
by switching to the FIPS image, adding --fips to launch_vm for
kernel-level FIPS enforcement, and appending suites/fips/ to the
test run. Both scenarios already skip on aarch64.

Removes 2 VMs (1 per platform: el9/el10 bootc; no ostree equivalent).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

pre-commit.check-secrets: ENABLED
Merge the standalone upgrade+standard1/standard2 scenarios into the
LVMS upgrade scenarios. Each LVMS VM now runs the full LVMS lifecycle
(create/check/upgrade/validate/cleanup) followed by a standard suite,
eliminating the need for separate standard-only VMs.

The split follows a consistent pattern across el9/el10 bootc and
ostree:
- lvms-standard1: LVMS lifecycle + ginkgo (y2 only) + standard1
  with EXPECTED_OS_VERSION + --vm_disksize 30
- lvms-standard2: LVMS lifecycle + standard2 + --vm_disksize 30

For el10, the el98→el102 cross-major upgrade scenarios also absorb
LVMS lifecycle testing with --vm_disksize 30.

Removes 12 VMs (4 per platform: el9/el10 bootc, ostree) and absorbs
the el10 el98→el102 LVMS scenario into the standard1/standard2
cross-major scenarios.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

pre-commit.check-secrets: ENABLED
Remove the .disabled suffix from el98 RPM standard1, standard2, and
upgrade scenarios to restore their execution in CI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

pre-commit.check-secrets: ENABLED
Change set -ux to set -eux so that cleanup failures (API server
unreachable, RBAC errors, etc.) abort the scenario instead of
silently exiting 0 and letting subsequent standard suite tests
run on a degraded cluster.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

pre-commit.check-secrets: ENABLED
The tuned image overwrites /etc/tuned/microshift-baseline-variables.conf
with test-specific values, causing rpm -V --configfiles to fail in the
version.robot RPM integrity check.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

pre-commit.check-secrets: ENABLED
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Apr 27, 2026
@openshift-ci-robot

openshift-ci-robot commented Apr 27, 2026

Copy link
Copy Markdown

@agullon: This pull request references USHIFT-6905 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

Consolidate CI test scenarios to reduce VM count without losing test coverage. Tests that ran in dedicated VMs are now piggy-backed onto VMs already provisioned for compatible environments.

The changes are symmetric across el9 and el10 for the y1/y2 upgrade paths and standalone scenarios. el10 has additional operations for the el98→el102 cross-major-version upgrade path which has no el9 equivalent.

Additionally, cleanupWorkload.sh is fixed to use set -eux (was set -ux) so that cleanup failures abort the scenario instead of silently continuing.


test/scenarios-bootc/el9/releases/ (8 deleted, 4 renamed, 2 created, 1 modified → net -6 VMs)

Deleted (8):

  • el98-lrel@tlsv13-standard1.sh — TLS v1.3 + standard1 already covered by multi-config-standard1
  • el98-lrel@tlsv13-standard2.sh — TLS v1.3 enforcement is transport-layer; validated by multi-config-standard1 running standard1, so dedicated standard2+TLS v1.3 testing is redundant
  • el98-lrel@configuration.sh — configuration suite moved into dual-stack-configuration
  • el98-lrel@fips.sh — FIPS suite moved into ai-model-serving-online-fips
  • el96-y1@el98-lrel@standard1.sh — standard1 suite moved into el96-y1@lvms-standard1
  • el96-y1@el98-lrel@standard2.sh — standard2 suite moved into el96-y1@lvms-standard2
  • el96-y2@el98-lrel@standard1.sh — standard1 suite moved into el96-y2@lvms-standard1
  • el96-y2@el98-lrel@standard2.sh — standard2 suite moved into el96-y2@lvms-standard2

Renamed (4):

  • el98-lrel@dual-stack.shel98-lrel@dual-stack-configuration.sh — added suites/configuration/
  • el98-lrel@ai-model-serving-online.shel98-lrel@ai-model-serving-online-fips.sh — switched to fips image, added --fips to launch_vm, added suites/fips/
  • el96-y1@el98-lrel@lvms.shel96-y1@el98-lrel@lvms-standard1.sh — added --vm_disksize 30
  • el96-y2@el98-lrel@lvms.shel96-y2@el98-lrel@lvms-standard2.sh — removed ginkgo, added suites/standard2/ after LVMS cleanup

Created (2):

  • el96-y1@el98-lrel@lvms-standard2.sh — LVMS lifecycle + standard2 after upgrade (replaces deleted standard2)
  • el96-y2@el98-lrel@lvms-standard1.sh — LVMS lifecycle + ginkgo + standard1 after upgrade (replaces deleted standard1)

Modified (1):

  • el98-lrel@multi-config-standard1.sh — removed --exclude version and stale comment (now the only place running standard1 with TLS v1.3)

test/scenarios-bootc/el10/releases/ (8 deleted, 5 renamed, 1 created, 3 modified → net -7 VMs)

Same as el9 for standalone and y1/y2 upgrade scenarios, plus additional changes for the el98→el102 cross-major-version upgrade path (no el9 equivalent).

Deleted (8):

  • el102-lrel@tlsv13-standard1.sh — TLS v1.3 + standard1 already covered by multi-config-standard1
  • el102-lrel@tlsv13-standard2.sh — TLS v1.3 enforcement is transport-layer; validated by multi-config-standard1 running standard1, so dedicated standard2+TLS v1.3 testing is redundant
  • el102-lrel@configuration.sh — configuration suite moved into dual-stack-configuration
  • el102-lrel@fips.sh — FIPS suite moved into ai-model-serving-online-fips
  • el96-y1@el102-lrel@standard1.sh — standard1 suite moved into upgrade LVMS scenarios
  • el96-y1@el102-lrel@standard2.sh — standard2 suite moved into upgrade LVMS scenarios
  • el96-y2@el102-lrel@standard1.sh — standard1 suite moved into el96-y2@lvms-standard1
  • el96-y2@el102-lrel@standard2.sh — standard2 suite moved into el96-y2@lvms-standard2

Renamed (4 + 1 el98→el102):

  • el102-lrel@dual-stack.shel102-lrel@dual-stack-configuration.sh — added suites/configuration/
  • el102-lrel@ai-model-serving-online.shel102-lrel@ai-model-serving-online-fips.sh — switched to fips image, added --fips to launch_vm, added suites/fips/
  • el96-y1@el102-lrel@lvms.shel96-y1@el102-lrel@lvms-standard1.sh — added --vm_disksize 30
  • el96-y2@el102-lrel@lvms.shel96-y2@el102-lrel@lvms-standard1.sh — added --vm_disksize 30
  • (el98→el102 only) el98-lrel@el102-lrel@lvms.shel96-y1@el102-lrel@lvms-standard2.sh — changed upgrade path from el98→el102 to el96-y1→el102, removed ginkgo, added standard2, added --vm_disksize 30 (el98 LVMS tests absorbed into modified el98-lrel@el102-lrel@standard1/2)

Created (1):

  • el96-y2@el102-lrel@lvms-standard2.sh — LVMS lifecycle + standard2 after upgrade

Modified (1 + 2 el98→el102):

  • el102-lrel@multi-config-standard1.sh — removed --exclude version and stale comment
  • (el98→el102 only) el98-lrel@el102-lrel@standard1.sh — expanded with LVMS lifecycle (create/check/upgrade/validate/cleanup) + --vm_disksize 30, absorbing old el98-lrel@el102-lrel@lvms.sh
  • (el98→el102 only) el98-lrel@el102-lrel@standard2.sh — expanded with LVMS lifecycle (create/check/upgrade/validate/cleanup) + --vm_disksize 30, absorbing old el98-lrel@el102-lrel@lvms.sh

test/scenarios/releases/ (ostree) (7 deleted, 3 renamed, 2 created, 3 re-enabled → net -2 VMs)

Equivalent to el9 bootc changes (no FIPS or AI model serving scenarios in ostree).

Deleted (7):

  • el98-lrel@tlsv13-standard1.sh — TLS v1.3 + standard1 already covered by ginkgo-multi-config
  • el98-lrel@tlsv13-standard2.sh — TLS v1.3 enforcement is transport-layer; validated by ginkgo-multi-config running standard1, so dedicated standard2+TLS v1.3 testing is redundant
  • el98-lrel@configuration.sh — configuration suite moved into dual-stack-configuration
  • el96-yminus1@el98-lrel@standard1.sh — standard1 suite moved into yminus1@lvms-standard1
  • el96-yminus1@el98-lrel@standard2.sh — standard2 suite moved into yminus1@lvms-standard2
  • el96-yminus2@el98-lrel@standard1.sh — standard1 suite moved into yminus2@lvms-standard1
  • el96-yminus2@el98-lrel@standard2.sh — standard2 suite moved into yminus2@lvms-standard2

Renamed (3):

  • el98-lrel@dual-stack.shel98-lrel@dual-stack-configuration.sh — added suites/configuration/
  • el96-yminus1@el98-lrel@lvms.shel96-yminus1@el98-lrel@lvms-standard1.sh — added --vm_disksize 30
  • el96-yminus2@el98-lrel@lvms.shel96-yminus2@el98-lrel@lvms-standard2.sh — removed ginkgo, added suites/standard2/ after LVMS cleanup, added --vm_disksize 30

Created (2):

  • el96-yminus1@el98-lrel@lvms-standard2.sh — LVMS lifecycle + standard2 after upgrade
  • el96-yminus2@el98-lrel@lvms-standard1.sh — LVMS lifecycle + ginkgo + standard1 after upgrade

Re-enabled (3):

  • el98@rpm-standard1.sh (was .disabled)
  • el98@rpm-standard2.sh (was .disabled)
  • el98@rpm-upgrade.sh (was .disabled)

scripts/lvms-helpers/ (1 modified)

  • cleanupWorkload.sh — changed set -ux to set -eux so cleanup failures abort the scenario

Total: 23 scenarios deleted, 12 renamed, 5 created, 3 re-enabled, 1 script fixed → net -15 VMs

Test plan

  • Verify bootc el9 release scenarios discover and run all expected test suites
  • Verify bootc el10 release scenarios discover and run all expected test suites
  • Verify ostree release scenarios discover and run all expected test suites
  • Confirm no test suites were dropped (compare total test count before/after)

🤖 Generated with Claude Code

Cherry-picked from #6588 (release-4.22)

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 requested review from eslutsky and jerpeter1 April 27, 2026 15:38
@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Apr 27, 2026
@coderabbitai

coderabbitai Bot commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

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: d014899f-3a00-4734-add3-b1c2f615a14c

📥 Commits

Reviewing files that changed from the base of the PR and between 222a079 and d4df60b.

📒 Files selected for processing (4)
  • test/image-blueprints/layer4-release/group2/rhel96-brew-y1-with-optionals.toml
  • test/scenarios/releases/el96-yminus1@el98-lrel@lvms-standard2.sh
  • test/scenarios/releases/el96-yminus2@el98-lrel@lvms-standard1.sh
  • test/scenarios/releases/el96-yminus2@el98-lrel@lvms-standard2.sh
✅ Files skipped from review due to trivial changes (1)
  • test/image-blueprints/layer4-release/group2/rhel96-brew-y1-with-optionals.toml
🚧 Files skipped from review as they are similar to previous changes (3)

Walkthrough

Multiple test scenario scripts were reorganized: numerous old scenario files were removed, several new LVMS-aware upgrade scenarios were added, VM provisioning now often sets a 30 GB disk, FIPS/configuration test selections expanded, and a helper script's Bash flags were tightened.

Changes

Cohort / File(s) Summary
Helper Script
scripts/lvms-helpers/cleanupWorkload.sh
Adjusted Bash flags to enable strict failure modes (set -e and set -u) while retaining command tracing.
FIPS AI-model scenarios
test/scenarios-bootc/el10/.../el102-lrel@ai-model-serving-online-fips.sh, test/scenarios-bootc/el9/.../el98-lrel@ai-model-serving-online-fips.sh
Switched start images and VM launch flags to use FIPS-enabled images (--fips) and extended test runs to include suites/fips/.
Dual-stack / Configuration expansions
test/scenarios-bootc/.../dual-stack-configuration.sh, test/scenarios/releases/.../el98-lrel@dual-stack-configuration.sh
scenario_run_tests now invokes run_tests with both suites/ipv6/dualstack.robot and suites/configuration/ (multiline argument formatting).
VM disk size additions
multiple scripts under test/scenarios-bootc/... and test/scenarios/releases/... (e.g., *lvms-standard1.sh files)
Added --vm_disksize 30 to launch_vm invocations when provisioning VMs.
New LVMS-aware upgrade scenarios
test/scenarios-bootc/.../el96-y2@el102-lrel@lvms-standard2.sh, test/scenarios-bootc/el9/.../el96-y1@el98-lrel@lvms-standard2.sh, test/scenarios-bootc/el9/.../el96-y2@el98-lrel@lvms-standard1.sh, test/scenarios/releases/.../el96-yminus1@el98-lrel@lvms-standard2.sh, test/scenarios/releases/.../el96-yminus2@el98-lrel@lvms-standard1.sh
Added new ordered scenarios that: create VMs, wait for MicroShift readiness, create LVMS workloads and validate resources pre-upgrade, run upgrade tests (TARGET_REF/BOOTC_REGISTRY), validate LVMS persistence post-upgrade, clean up workloads, then run post-upgrade standard suites. Exports include TEST_RANDOMIZATION=none where noted.
LVMS lifecycle inserted into existing upgrade flows
test/scenarios-bootc/.../el98-lrel@el102-lrel@standard1.sh, ...@standard2.sh, and similar release scripts
Expanded scenario_run_tests to perform pre-upgrade LVMS workload creation/validation, run upgrade suite, validate workloads persisted, re-validate resources, cleanup, then run standard suites; VM disk size also set to 30 GB in provisioning.
Post-upgrade test runner changes
several lvms-standard2.sh and release scripts
Replaced some Ginkgo ~Disruptive post-upgrade validation with run_tests executions targeting suites/standard2/.
Scenario deletions (configuration / FIPS / TLS / standard)
Many files under test/scenarios-bootc/el10/..., el9/..., and test/scenarios/releases/... (e.g., *configuration.sh, *fips.sh, *tlsv13-*.sh, multiple standard1.sh/standard2.sh variants)
Removed numerous legacy scenario scripts across EL9/EL10/release branches that previously handled configuration, FIPS, TLS v1.3, and order-dependent standard upgrade scenarios.
Image blueprint tweak
test/image-blueprints/.../rhel96-brew-y1-with-optionals.toml
Replaced a hardcoded major-version component in a commented parent directive with the PREVIOUS_MAJOR_VERSION variable.
Minor comment/format cleanup
assorted single-line comment removals and small formatting changes
Non-functional cleanups: removed inline comments and reformatted multiline run_tests arguments in a few scenarios.

Sequence Diagram(s)

sequenceDiagram
  participant CI as CI/orchestrator
  participant Provisioner as VM Provisioner
  participant VM as host1 (VM)
  participant MicroShift as MicroShift
  participant LVMS as LVMS
  participant TestRunner as run_tests

  CI->>Provisioner: request VM (start_image, --vm_disksize 30, --fips?)
  Provisioner->>VM: create and boot
  VM->>MicroShift: start services
  MicroShift->>CI: ready (greenboot)
  CI->>TestRunner: run pre-upgrade LVMS workload creation on VM
  TestRunner->>LVMS: create workloads & validate resources
  CI->>TestRunner: invoke upgrade tests (TARGET_REF, BOOTC_REGISTRY)
  TestRunner->>VM: perform upgrade
  VM->>MicroShift: upgraded, restart
  TestRunner->>LVMS: validate workload persistence & resources post-upgrade
  TestRunner->>LVMS: cleanup workloads
  CI->>TestRunner: run post-upgrade standard suites (suites/standard1|standard2)
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 11 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 4.35% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (11 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title clearly and concisely summarizes the main objective: consolidating CI test scenarios to reduce VM count, which is the primary focus of the changeset.
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 scenario scripts and configuration files, not Ginkgo test definitions. Test names remain unchanged.
Test Structure And Quality ✅ Passed PR contains no Ginkgo test code; changes are limited to bash scripts and configuration files, making this check not applicable.
Microshift Test Compatibility ✅ Passed This PR does not add any new Ginkgo e2e tests. All changes are to bash orchestration scripts and templates.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR does not add new Ginkgo e2e tests. Changes only reorganize CI test orchestration scripts without introducing new test implementations.
Topology-Aware Scheduling Compatibility ✅ Passed PR modifies only CI test infrastructure files (shell scripts, helper utilities, TOML specs), not Kubernetes deployment manifests or operator code.
Ote Binary Stdout Contract ✅ Passed OTE Binary Stdout Contract check applies only to Go source code. PR modifies only shell scripts and TOML configuration files, no Go code.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR modifies only shell scripts and TOML files for VM provisioning; no new Ginkgo e2e tests present.

✏️ 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.

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@test/scenarios/releases/el96-yminus2`@el98-lrel@lvms-standard1.sh:
- Line 9: The start_image value currently hardcodes the major version
("4.${YMINUS2_MINOR_VERSION}") which can break when branch/version mappings
change; update the start_image assignment to use the variables for both major
and minor versions (e.g., "${YMINUS2_MAJOR_VERSION}.${YMINUS2_MINOR_VERSION}")
so start_image is constructed from ${YMINUS2_MAJOR_VERSION} and
${YMINUS2_MINOR_VERSION} instead of the literal "4".
🪄 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: bcbf56d7-ea8f-40b6-afdc-5ad95ba6835e

📥 Commits

Reviewing files that changed from the base of the PR and between 9350a63 and 222a079.

📒 Files selected for processing (48)
  • scripts/lvms-helpers/cleanupWorkload.sh
  • test/scenarios-bootc/el10/releases/el102-lrel@ai-model-serving-online-fips.sh
  • test/scenarios-bootc/el10/releases/el102-lrel@configuration.sh
  • test/scenarios-bootc/el10/releases/el102-lrel@dual-stack-configuration.sh
  • test/scenarios-bootc/el10/releases/el102-lrel@fips.sh
  • test/scenarios-bootc/el10/releases/el102-lrel@multi-config-standard1.sh
  • test/scenarios-bootc/el10/releases/el102-lrel@tlsv13-standard1.sh
  • test/scenarios-bootc/el10/releases/el102-lrel@tlsv13-standard2.sh
  • test/scenarios-bootc/el10/releases/el96-y1@el102-lrel@lvms-standard1.sh
  • test/scenarios-bootc/el10/releases/el96-y1@el102-lrel@lvms-standard2.sh
  • test/scenarios-bootc/el10/releases/el96-y1@el102-lrel@standard1.sh
  • test/scenarios-bootc/el10/releases/el96-y1@el102-lrel@standard2.sh
  • test/scenarios-bootc/el10/releases/el96-y2@el102-lrel@lvms-standard1.sh
  • test/scenarios-bootc/el10/releases/el96-y2@el102-lrel@lvms-standard2.sh
  • test/scenarios-bootc/el10/releases/el96-y2@el102-lrel@standard1.sh
  • test/scenarios-bootc/el10/releases/el96-y2@el102-lrel@standard2.sh
  • test/scenarios-bootc/el10/releases/el98-lrel@el102-lrel@standard1.sh
  • test/scenarios-bootc/el10/releases/el98-lrel@el102-lrel@standard2.sh
  • test/scenarios-bootc/el9/releases/el96-y1@el98-lrel@lvms-standard1.sh
  • test/scenarios-bootc/el9/releases/el96-y1@el98-lrel@lvms-standard2.sh
  • test/scenarios-bootc/el9/releases/el96-y1@el98-lrel@standard1.sh
  • test/scenarios-bootc/el9/releases/el96-y1@el98-lrel@standard2.sh
  • test/scenarios-bootc/el9/releases/el96-y2@el98-lrel@lvms-standard1.sh
  • test/scenarios-bootc/el9/releases/el96-y2@el98-lrel@lvms-standard2.sh
  • test/scenarios-bootc/el9/releases/el96-y2@el98-lrel@standard1.sh
  • test/scenarios-bootc/el9/releases/el96-y2@el98-lrel@standard2.sh
  • test/scenarios-bootc/el9/releases/el98-lrel@ai-model-serving-online-fips.sh
  • test/scenarios-bootc/el9/releases/el98-lrel@configuration.sh
  • test/scenarios-bootc/el9/releases/el98-lrel@dual-stack-configuration.sh
  • test/scenarios-bootc/el9/releases/el98-lrel@fips.sh
  • test/scenarios-bootc/el9/releases/el98-lrel@multi-config-standard1.sh
  • test/scenarios-bootc/el9/releases/el98-lrel@tlsv13-standard1.sh
  • test/scenarios-bootc/el9/releases/el98-lrel@tlsv13-standard2.sh
  • test/scenarios/releases/el96-yminus1@el98-lrel@lvms-standard1.sh
  • test/scenarios/releases/el96-yminus1@el98-lrel@lvms-standard2.sh
  • test/scenarios/releases/el96-yminus1@el98-lrel@standard1.sh
  • test/scenarios/releases/el96-yminus1@el98-lrel@standard2.sh
  • test/scenarios/releases/el96-yminus2@el98-lrel@lvms-standard1.sh
  • test/scenarios/releases/el96-yminus2@el98-lrel@lvms-standard2.sh
  • test/scenarios/releases/el96-yminus2@el98-lrel@standard1.sh
  • test/scenarios/releases/el96-yminus2@el98-lrel@standard2.sh
  • test/scenarios/releases/el98-lrel@configuration.sh
  • test/scenarios/releases/el98-lrel@dual-stack-configuration.sh
  • test/scenarios/releases/el98-lrel@tlsv13-standard1.sh
  • test/scenarios/releases/el98-lrel@tlsv13-standard2.sh
  • test/scenarios/releases/el98@rpm-standard1.sh
  • test/scenarios/releases/el98@rpm-standard2.sh
  • test/scenarios/releases/el98@rpm-upgrade.sh
💤 Files with no reviewable changes (25)

Comment thread test/scenarios/releases/el96-yminus2@el98-lrel@lvms-standard1.sh Outdated
Comment thread test/scenarios/releases/el96-yminus1@el98-lrel@lvms-standard2.sh Outdated
Comment thread test/scenarios/releases/el96-yminus2@el98-lrel@lvms-standard1.sh Outdated
Refactor the start_image variable in multiple scenario scripts to use the PREVIOUS_MAJOR_VERSION environment variable for improved versioning consistency. This change ensures that the correct image tags are utilized across different scenarios, enhancing maintainability and clarity.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

pre-commit.check-secrets: ENABLED
@agullon

agullon commented Apr 28, 2026

Copy link
Copy Markdown
Contributor Author

/test e2e-aws-tests-release

@agullon

agullon commented Apr 28, 2026

Copy link
Copy Markdown
Contributor Author

/test e2e-aws-tests-arm

@pacevedom pacevedom left a comment

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.

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Apr 28, 2026
@openshift-ci

openshift-ci Bot commented Apr 28, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: agullon, pacevedom

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

@agullon

agullon commented Apr 28, 2026

Copy link
Copy Markdown
Contributor Author

/override ci/prow/e2e-aws-tests-release
/override ci/prow/e2e-aws-tests-release-arm

@openshift-ci

openshift-ci Bot commented Apr 28, 2026

Copy link
Copy Markdown
Contributor

@agullon: Overrode contexts on behalf of agullon: ci/prow/e2e-aws-tests-release, ci/prow/e2e-aws-tests-release-arm

Details

In response to this:

/override ci/prow/e2e-aws-tests-release
/override ci/prow/e2e-aws-tests-release-arm

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.

@agullon

agullon commented Apr 28, 2026

Copy link
Copy Markdown
Contributor Author

/verified by @agullon

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Apr 28, 2026
@openshift-ci-robot

Copy link
Copy Markdown

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

Details

In response to this:

/verified by @agullon

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.

@agullon

agullon commented Apr 28, 2026

Copy link
Copy Markdown
Contributor Author

/cherrypick release-4.22

@openshift-cherrypick-robot

Copy link
Copy Markdown

@agullon: once the present PR merges, I will cherry-pick it on top of release-4.22 in a new PR and assign it to you.

Details

In response to this:

/cherrypick release-4.22

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.

@agullon

agullon commented Apr 28, 2026

Copy link
Copy Markdown
Contributor Author

/retest

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 6add7bd and 2 for PR HEAD d4df60b in total

@agullon

agullon commented Apr 28, 2026

Copy link
Copy Markdown
Contributor Author

/retest

@agullon

agullon commented Apr 28, 2026

Copy link
Copy Markdown
Contributor Author

/override ci/prow/e2e-aws-tests-bootc-release-el10

@openshift-ci

openshift-ci Bot commented Apr 28, 2026

Copy link
Copy Markdown
Contributor

@agullon: Overrode contexts on behalf of agullon: ci/prow/e2e-aws-tests-bootc-release-el10

Details

In response to this:

/override ci/prow/e2e-aws-tests-bootc-release-el10

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.

@openshift-ci

openshift-ci Bot commented Apr 28, 2026

Copy link
Copy Markdown
Contributor

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

@openshift-merge-bot openshift-merge-bot Bot merged commit c8024ef into openshift:main Apr 28, 2026
19 checks passed
@openshift-cherrypick-robot

Copy link
Copy Markdown

@agullon: #6591 failed to apply on top of branch "release-4.22":

Applying: NO-JIRA: remove standalone TLS v1.3 scenarios
Applying: NO-JIRA: move configuration suite into dual-stack scenarios
Applying: NO-JIRA: move FIPS suite into ai-model-serving-online scenarios
Applying: NO-JIRA: consolidate upgrade standard suites into LVMS scenarios
Using index info to reconstruct a base tree...
M	test/scenarios/releases/el96-yminus1@el98-lrel@lvms.sh
M	test/scenarios/releases/el96-yminus1@el98-lrel@standard1.sh
M	test/scenarios/releases/el96-yminus1@el98-lrel@standard2.sh
M	test/scenarios/releases/el96-yminus2@el98-lrel@lvms.sh
M	test/scenarios/releases/el96-yminus2@el98-lrel@standard1.sh
M	test/scenarios/releases/el96-yminus2@el98-lrel@standard2.sh
Falling back to patching base and 3-way merge...
CONFLICT (modify/delete): test/scenarios/releases/el96-yminus2@el98-lrel@standard2.sh deleted in NO-JIRA: consolidate upgrade standard suites into LVMS scenarios and modified in HEAD. Version HEAD of test/scenarios/releases/el96-yminus2@el98-lrel@standard2.sh left in tree.
CONFLICT (modify/delete): test/scenarios/releases/el96-yminus2@el98-lrel@standard1.sh deleted in NO-JIRA: consolidate upgrade standard suites into LVMS scenarios and modified in HEAD. Version HEAD of test/scenarios/releases/el96-yminus2@el98-lrel@standard1.sh left in tree.
Auto-merging test/scenarios/releases/el96-yminus2@el98-lrel@lvms-standard2.sh
CONFLICT (modify/delete): test/scenarios/releases/el96-yminus1@el98-lrel@standard2.sh deleted in NO-JIRA: consolidate upgrade standard suites into LVMS scenarios and modified in HEAD. Version HEAD of test/scenarios/releases/el96-yminus1@el98-lrel@standard2.sh left in tree.
CONFLICT (modify/delete): test/scenarios/releases/el96-yminus1@el98-lrel@standard1.sh deleted in NO-JIRA: consolidate upgrade standard suites into LVMS scenarios and modified in HEAD. Version HEAD of test/scenarios/releases/el96-yminus1@el98-lrel@standard1.sh left in tree.
Auto-merging test/scenarios/releases/el96-yminus1@el98-lrel@lvms-standard1.sh
Removing test/scenarios-bootc/el9/releases/el96-y2@el98-lrel@standard2.sh
Removing test/scenarios-bootc/el9/releases/el96-y2@el98-lrel@standard1.sh
Removing test/scenarios-bootc/el9/releases/el96-y1@el98-lrel@standard2.sh
Removing test/scenarios-bootc/el9/releases/el96-y1@el98-lrel@standard1.sh
Removing test/scenarios-bootc/el10/releases/el96-y2@el102-lrel@standard2.sh
Removing test/scenarios-bootc/el10/releases/el96-y2@el102-lrel@standard1.sh
Removing test/scenarios-bootc/el10/releases/el96-y1@el102-lrel@standard2.sh
Removing test/scenarios-bootc/el10/releases/el96-y1@el102-lrel@standard1.sh
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
hint: When you have resolved this problem, run "git am --continue".
hint: If you prefer to skip this patch, run "git am --skip" instead.
hint: To restore the original branch and stop patching, run "git am --abort".
hint: Disable this message with "git config set advice.mergeConflict false"
Patch failed at 0004 NO-JIRA: consolidate upgrade standard suites into LVMS scenarios

Details

In response to this:

/cherrypick release-4.22

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.

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. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants