Skip to content

Add ROSA Classic STS e2e nightly jobs#78881

Open
dustman9000 wants to merge 3 commits intoopenshift:mainfrom
dustman9000:add-rosa-classic-e2e-job
Open

Add ROSA Classic STS e2e nightly jobs#78881
dustman9000 wants to merge 3 commits intoopenshift:mainfrom
dustman9000:add-rosa-classic-e2e-job

Conversation

@dustman9000
Copy link
Copy Markdown
Member

@dustman9000 dustman9000 commented May 6, 2026

Summary

  • Add rosa-e2e-classic workflow for ROSA Classic STS cluster testing using the rosa-e2e test suite
  • Add CLUSTER_TOPOLOGY env var to the rosa-e2e-test step for explicit topology override
  • Add nightly periodic jobs for Classic STS on 4.19 and 4.23
  • Update test script to handle manager cluster access for both HCP (Management Cluster) and Classic (Hive cluster)

New files

  • ci-operator/step-registry/rosa/e2e/classic/rosa-e2e-classic-workflow.yaml - Classic STS workflow using rosa-aws-sts-provision chain
  • ci-operator/step-registry/rosa/e2e/classic/OWNERS - Same ownership as rosa/e2e

Modified files

  • ci-operator/step-registry/rosa/e2e/test/rosa-e2e-test-ref.yaml - Add CLUSTER_TOPOLOGY env, update docs for multi-topology
  • ci-operator/step-registry/rosa/e2e/test/rosa-e2e-test-commands.sh - Pass CLUSTER_TOPOLOGY, handle HCP vs Classic backplane access
  • ci-operator/config/openshift-online/rosa-e2e/openshift-online-rosa-e2e-main__periodics.yaml - Add Classic STS nightly jobs
  • ci-operator/jobs/openshift-online/rosa-e2e/openshift-online-rosa-e2e-main-periodics.yaml - Generated

Context

rosa-e2e recently added ROSA Classic STS support (openshift-online/rosa-e2e#27, #28). This PR adds the CI jobs to exercise that support nightly.

Test plan

  • make jobs generates expected periodic job definitions
  • make registry-metadata passes
  • Rehearse rosa-classic-sts-e2e-nightly-4-23 after merge bot posts rehearsal notifier

Summary by CodeRabbit

  • New Features

    • Added periodic E2E tests for ROSA Classic STS clusters (OpenShift 4.19 and 4.23).
    • Introduced a ROSA Classic topology E2E workflow that provisions Classic STS clusters, runs Classic-filtered tests, and performs automated teardown.
  • Chores

    • Added owners for the ROSA Classic E2E steps.
    • Updated E2E test scripts and references to support Classic topology and cluster-context handling.

Add rosa-e2e-classic workflow and periodic jobs for ROSA Classic STS
cluster testing using the rosa-e2e test suite.

- New workflow: rosa-e2e-classic using rosa-aws-sts-provision chain
  with CLUSTER_TOPOLOGY=classic and LABEL_FILTER=Platform:Classic
- Add CLUSTER_TOPOLOGY env var to rosa-e2e-test step for topology
  override (auto-detected from OCM API when empty)
- Update test script to handle manager cluster access for both HCP
  (Management Cluster) and Classic (Hive cluster) via backplane
- Add nightly periodic jobs for Classic STS on 4.19 and 4.23
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 6, 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: ec32a4c6-b62f-4371-ab16-5f910418703e

📥 Commits

Reviewing files that changed from the base of the PR and between b0212ac and b998057.

📒 Files selected for processing (1)
  • ci-operator/config/openshift-online/rosa-e2e/openshift-online-rosa-e2e-main__periodics.yaml

Walkthrough

Adds ROSA Classic STS e2e test infrastructure: two nightly periodic jobs, a new rosa-e2e-classic workflow and metadata/OWNERS, test-script changes to establish manager cluster access via backplane and export topology, and updates to the test reference for new env vars and docs.

Changes

ROSA Classic STS E2E Testing Infrastructure

Layer / File(s) Summary
Workflow Definition
ci-operator/step-registry/rosa/e2e/classic/rosa-e2e-classic-workflow.yaml
New workflow rosa-e2e-classic with env defaults (e.g., CLUSTER_TOPOLOGY: classic, HOSTED_CP: "false", STS: "true", REPLICAS: "2", LABEL_FILTER: "Platform:Classic"). Pre-phase provisions STS cluster and waits for nodes; test-phase runs rosa-e2e-test; post-phase runs deprovision and cleanup steps with best_effort.
Metadata & Ownership
ci-operator/step-registry/rosa/e2e/classic/rosa-e2e-classic-workflow.metadata.json, ci-operator/step-registry/rosa/e2e/classic/OWNERS
Added workflow metadata JSON referencing the new workflow YAML and an OWNERS file listing approvers/reviewers: tiwillia, dustman9000, bmeng, ravitri.
Test Script Changes
ci-operator/step-registry/rosa/e2e/test/rosa-e2e-test-commands.sh
Adds manager-cluster access via ocm backplane login, sets MC_KUBECONFIG, extracts and exports MANAGEMENT_CLUSTER_ID, logs access success, and conditionally exports CLUSTER_TOPOLOGY when set.
Step Reference Updates
ci-operator/step-registry/rosa/e2e/test/rosa-e2e-test-ref.yaml
Adds CLUSTER_TOPOLOGY and EXCLUDE_CLUSTER_OPERATORS env vars and updates LABEL_FILTER and test-run documentation to include Platform:Classic and to reference HCP or Classic STS clusters.
Periodic Test Jobs
ci-operator/config/openshift-online/rosa-e2e/openshift-online-rosa-e2e-main__periodics.yaml
Adds two periodic jobs: rosa-classic-sts-e2e-nightly-4-19 (cron 30 5 * * *, OPENSHIFT_VERSION: "4.19") and rosa-classic-sts-e2e-nightly-4-23 (cron 0 6 * * *, OPENSHIFT_VERSION: "4.23"). Both use cluster_profile: rosa-e2e-01, CHANNEL_GROUP: nightly, CLUSTER_TOPOLOGY: classic, HOSTED_CP: "false", LABEL_FILTER: "Platform:Classic", REPLICAS: "2", STS: "true", and workflow: rosa-e2e-classic.
sequenceDiagram
  participant Periodic as CI Periodic Job
  participant Workflow as rosa-e2e-classic Workflow
  participant OCM as OCM / Backplane
  participant Manager as Manager Cluster
  participant Cluster as Provisioned ROSA Cluster
  participant Test as rosa-e2e-test
  participant AWS as AWS / Cleanup

  Periodic->>Workflow: trigger workflow (env: classic, STS=true)
  Workflow->>OCM: provision via rosa-aws-sts-provision
  OCM->>Manager: ocm backplane login (establish manager access)
  Manager->>Workflow: return MANAGEMENT_CLUSTER_ID
  Workflow->>Cluster: wait for ready nodes (rosa-cluster-wait-ready-nodes)
  Workflow->>Test: run rosa-e2e-test (with LABEL_FILTER Platform:Classic)
  Test->>Cluster: execute tests
  Workflow->>AWS: post steps (deprovision, account role delete, VPC cleanup, stacks) with best_effort
  AWS-->>Workflow: teardown complete
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 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 'Add ROSA Classic STS e2e nightly jobs' directly and clearly describes the main objective of 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 contains only CI/CD configuration (YAML, JSON, shell scripts). No Ginkgo test code files are modified. Check is not applicable.
Test Structure And Quality ✅ Passed This PR adds CI configuration (workflows, scripts, OWNERS) but no Ginkgo test code. The custom check for test code quality is not applicable.
Microshift Test Compatibility ✅ Passed This PR does not add any new Ginkgo e2e tests. It only adds CI/CD configuration, workflow definitions, and test orchestration files. The MicroShift Test Compatibility check is not applicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR adds CI orchestration, not Ginkgo tests. Actual tests are in external rosa-e2e repository. Check applies only to PRs adding new Ginkgo tests.
Topology-Aware Scheduling Compatibility ✅ Passed PR contains CI/test infrastructure files only (job configs, workflows, test scripts, metadata). No deployment manifests, operator code, or pod scheduling constraints. Not applicable to check.
Ote Binary Stdout Contract ✅ Passed No Go source code modifications. The OTE check applies only to Go test code (main, TestMain, BeforeSuite, etc.). This PR modifies only YAML/JSON configs and shell scripts.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR does not introduce new Ginkgo e2e tests. Changes are limited to CI configuration, workflow definitions, and shell scripts. No IPv4 assumptions detected. Check not applicable.

✏️ 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 6, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: dustman9000

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 6, 2026
@openshift-ci openshift-ci Bot requested review from bmeng and ravitri May 6, 2026 03:08
@dustman9000
Copy link
Copy Markdown
Member Author

/retest-required

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-online/rosa-e2e/openshift-online-rosa-e2e-main__periodics.yaml`:
- Around line 133-134: The YAML contains a duplicated top-level key
zz_generated_metadata; remove one of the duplicated zz_generated_metadata
entries so only a single zz_generated_metadata key remains at the top level
(locate the repeated zz_generated_metadata occurrences in the file and delete
the redundant block), ensuring the remaining zz_generated_metadata retains any
necessary child content.
🪄 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: 65f3d457-b69c-45c2-98e9-93668e7cf1ca

📥 Commits

Reviewing files that changed from the base of the PR and between 9b702c5 and b0212ac.

⛔ Files ignored due to path filters (1)
  • ci-operator/jobs/openshift-online/rosa-e2e/openshift-online-rosa-e2e-main-periodics.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (6)
  • ci-operator/config/openshift-online/rosa-e2e/openshift-online-rosa-e2e-main__periodics.yaml
  • ci-operator/step-registry/rosa/e2e/classic/OWNERS
  • ci-operator/step-registry/rosa/e2e/classic/rosa-e2e-classic-workflow.metadata.json
  • ci-operator/step-registry/rosa/e2e/classic/rosa-e2e-classic-workflow.yaml
  • ci-operator/step-registry/rosa/e2e/test/rosa-e2e-test-commands.sh
  • ci-operator/step-registry/rosa/e2e/test/rosa-e2e-test-ref.yaml

REPLICAS: "2"
STS: "true"
workflow: rosa-e2e-classic
- as: rosa-classic-sts-e2e-nightly-4-23
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.

why do we choose this version? I think it is not enabled for rosa yet.

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@dustman9000: 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
periodic-ci-openshift-online-rosa-e2e-main-periodics-rosa-hcp-e2e-nightly-4-22 N/A periodic Registry content changed
periodic-ci-openshift-online-rosa-e2e-main-periodics-rosa-hcp-e2e-nightly-4-23 N/A periodic Registry content changed
periodic-ci-openshift-online-rosa-e2e-main-periodics-rosa-classic-sts-e2e-nightly-4-23 N/A periodic Periodic changed
periodic-ci-openshift-online-rosa-e2e-main-periodics-rosa-classic-sts-e2e-nightly-4-19 N/A periodic Periodic changed
periodic-ci-openshift-online-rosa-e2e-main-periodics-rosa-hcp-e2e-nightly-5-0 N/A periodic Registry content changed
periodic-ci-openshift-online-rosa-e2e-main-periodics-rosa-hcp-e2e-nightly-4-19 N/A periodic Registry content changed
periodic-ci-openshift-online-rosa-e2e-main-periodics-rosa-hcp-e2e-nightly-4-20 N/A periodic Registry content changed
periodic-ci-openshift-online-rosa-e2e-main-periodics-rosa-hcp-e2e-nightly-4-21 N/A periodic Registry content 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 6, 2026

@dustman9000: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/ci-operator-config-metadata b998057 link true /test ci-operator-config-metadata

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.

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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants