Skip to content

Migrate prod periodics/presubmits to slot-manager; add validation postsubmit#81669

Open
roivaz wants to merge 1 commit into
openshift:mainfrom
roivaz:aro-hcp-prod-slot-manager-wiring
Open

Migrate prod periodics/presubmits to slot-manager; add validation postsubmit#81669
roivaz wants to merge 1 commit into
openshift:mainfrom
roivaz:aro-hcp-prod-slot-manager-wiring

Conversation

@roivaz

@roivaz roivaz commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

De-risked migration of PROD e2e into the Red Hat tenant slot-manager model, mirroring the INT/STG work in #80467 but without touching the gating postsubmit.

Why the reduced scope

The pj-rehearse plugin can only rehearse presubmits and periodics, not postsubmits — and the gating prod-e2e-parallel job is a postsubmit that blocks production code rollouts. To avoid an unvalidated change to a gating job, this PR keeps the gating postsubmit on the old path and validates the new path out-of-band first.

What changed

  • Presubmits (prod-e2e-parallel + -ocp-{stable,fast,nightly} in main config) and periodics switch to VAULT_SECRET_PROFILE: prod-rh + workflow: aro-hcp-persistent-e2e; per-job quota/MSI leases removed (slot-manager selects subscription/identity at runtime).
  • New temporary non-gating postsubmit prod-e2e-parallel-slot-manager exercises the prod-rh + persistent-e2e path. It is triggered on demand per region via Gangway by the ARO-HCP prow-job-executor to validate every region.
  • Gating prod-e2e-parallel postsubmit left unchanged (still prod + leases + aro-hcp-e2e).
  • Cleanup: existing delete-expired-prod-resource-groups (old subscription) kept, plus new delete-expired-prod-00/01-resource-groups for the two new subscriptions.
  • cluster-secrets-aro-hcp-prod-rh mounted in the shared lease-acquire / test-persistent / gather / deprovision steps.

Follow-up

Once all regions pass via the temporary postsubmit, a follow-up PR will switch the gating prod-e2e-parallel postsubmit to prod-rh, remove prod-e2e-parallel-slot-manager, and drop the old-subscription cleanup job.

Dependencies

Part of ARO-25833. Tracked by ARO-28239.

/cc @geoberle

Summary by CodeRabbit

This PR updates the ARO HCP OpenShift CI configuration for PROD to move from the legacy PROD E2E presubmit/periodics setup to the slot-manager model using the aro-hcp-persistent-e2e workflow and the prod-rh Vault secret profile. As part of this, the PROD parallel E2E jobs (including the -ocp-stable/fast/nightly variants) switch from aro-hcp-e2e to aro-hcp-persistent-e2e, and the previous per-job leases/quota limiting configuration is removed so slot-manager can select subscriptions and identity containers at runtime.

For validation, the PR adds a temporary non-gating postsubmit prod-e2e-parallel-slot-manager (per-region via Gangway) on the new path, while leaving the existing gating prod-e2e-parallel postsubmit on the old prod path for now. A follow-up is expected to migrate that gating job after validation.

The PROD periodic cleanup is also updated: the single delete-expired-prod-resource-groups job is replaced with two subscription-scoped jobs (delete-expired-prod-00-resource-groups and delete-expired-prod-01-resource-groups), both using the prod-rh secret profile and reporting to the same PROD failures channel/cron behavior.

To support the new PROD RH flow, step-registry configurations are extended to mount cluster-secrets-aro-hcp-prod-rh under /var/run/aro-hcp-prod-rh across the relevant lease acquisition, persistent test, and gather/deprovision paths, and the expired-resource-group deprovision credentials are associated with the test-credentials namespace.

@openshift-ci openshift-ci Bot requested a review from geoberle July 9, 2026 10:49
@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 9, 2026
@coderabbitai

coderabbitai Bot commented Jul 9, 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: 72759af9-b337-4925-b12a-9696e59b035d

📥 Commits

Reviewing files that changed from the base of the PR and between fcf38a9 and 4d78ea5.

⛔ Files ignored due to path filters (2)
  • ci-operator/jobs/Azure/ARO-HCP/Azure-ARO-HCP-main-periodics.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/Azure/ARO-HCP/Azure-ARO-HCP-main-postsubmits.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (8)
  • ci-operator/config/Azure/ARO-HCP/Azure-ARO-HCP-main.yaml
  • ci-operator/config/Azure/ARO-HCP/Azure-ARO-HCP-main__e2e.yaml
  • ci-operator/config/Azure/ARO-HCP/Azure-ARO-HCP-main__periodic-cleanup.yaml
  • ci-operator/config/Azure/ARO-HCP/Azure-ARO-HCP-main__periodic.yaml
  • ci-operator/step-registry/aro-hcp/deprovision/expired-resource-groups/aro-hcp-deprovision-expired-resource-groups-ref.yaml
  • ci-operator/step-registry/aro-hcp/gather/custom-link-tools/aro-hcp-gather-custom-link-tools-ref.yaml
  • ci-operator/step-registry/aro-hcp/lease/acquire/aro-hcp-lease-acquire-ref.yaml
  • ci-operator/step-registry/aro-hcp/test/persistent/aro-hcp-test-persistent-ref.yaml
✅ Files skipped from review due to trivial changes (1)
  • ci-operator/step-registry/aro-hcp/lease/acquire/aro-hcp-lease-acquire-ref.yaml
🚧 Files skipped from review as they are similar to previous changes (7)
  • ci-operator/step-registry/aro-hcp/test/persistent/aro-hcp-test-persistent-ref.yaml
  • ci-operator/step-registry/aro-hcp/deprovision/expired-resource-groups/aro-hcp-deprovision-expired-resource-groups-ref.yaml
  • ci-operator/step-registry/aro-hcp/gather/custom-link-tools/aro-hcp-gather-custom-link-tools-ref.yaml
  • ci-operator/config/Azure/ARO-HCP/Azure-ARO-HCP-main__e2e.yaml
  • ci-operator/config/Azure/ARO-HCP/Azure-ARO-HCP-main__periodic.yaml
  • ci-operator/config/Azure/ARO-HCP/Azure-ARO-HCP-main.yaml
  • ci-operator/config/Azure/ARO-HCP/Azure-ARO-HCP-main__periodic-cleanup.yaml

Walkthrough

ARO-HCP production E2E jobs now use prod-rh with aro-hcp-persistent-e2e, cleanup is split across two production subscriptions, and step-registry configurations include the matching prod-rh credential mounts.

Changes

ARO-HCP prod-rh CI and credential updates

Layer / File(s) Summary
Persistent prod-rh E2E workflows
ci-operator/config/Azure/ARO-HCP/Azure-ARO-HCP-main.yaml, ci-operator/config/Azure/ARO-HCP/Azure-ARO-HCP-main__e2e.yaml, ci-operator/config/Azure/ARO-HCP/Azure-ARO-HCP-main__periodic.yaml
Production parallel E2E jobs switch to VAULT_SECRET_PROFILE: prod-rh, use aro-hcp-persistent-e2e, and remove lease blocks; a slot-manager postsubmit job is added.
Subscription-specific cleanup
ci-operator/config/Azure/ARO-HCP/Azure-ARO-HCP-main__periodic-cleanup.yaml
The production cleanup job is split into Prod - 00 and Prod - 01 subscription jobs using prod-rh.
prod-rh credential wiring
ci-operator/step-registry/aro-hcp/{deprovision/expired-resource-groups,gather/custom-link-tools,lease/acquire,test/persistent}/*
Step-registry entries add or update cluster-secrets-aro-hcp-prod-rh with the test-credentials namespace and /var/run/aro-hcp-prod-rh mount path.

Estimated code review effort: 2 (Simple) | ~15 minutes

Possibly related PRs

Suggested labels: ok-to-test

Suggested reviewers: bear-redhat, danilo-gemoli, raelga


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error)

Check name Status Explanation Resolution
No-Sensitive-Data-In-Logs ❌ Error The PR adds prod-rh credential mounts to xtraced steps; those scripts run az login -p "$AZURE_CLIENT_SECRET" under set -x, so secrets can appear in job logs. Mask secret-sensitive commands with set +x/set -x around auth or use a non-traced auth path before shipping prod-rh jobs.
✅ Passed checks (14 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: migrating prod periodics/presubmits to slot-manager and adding a validation postsubmit.
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 Only CI YAML/step-registry files changed; no Ginkgo test titles or test source files were added or modified.
Test Structure And Quality ✅ Passed The PR changes only ci-operator YAMLs; no Go/Ginkgo test code or test-pattern diffs are present.
Microshift Test Compatibility ✅ Passed No Ginkgo test code was added or changed; the PR only updates CI/job YAML and step credentials, so MicroShift compatibility is not applicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PASS: The PR only changes CI/job YAML and step-registry config; no Ginkgo test definitions or Go test files were added, so the SNO test check is not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed Only CI/job and step-registry YAMLs changed; searches found no nodeSelector, affinity, anti-affinity, topology spread, or replica logic.
Ote Binary Stdout Contract ✅ Passed PR only edits ci-operator YAML/step-registry refs; no Go/main/TestMain code or stdout writes were added, so the OTE stdout contract is unaffected.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No new Ginkgo tests were added; this PR only changes CI/YAML job configs and step-registry mounts, so there’s no IPv4/external-connectivity test code to flag.
No-Weak-Crypto ✅ Passed Touched YAML only; no MD5/SHA1/DES/RC4/3DES/Blowfish/ECB, custom crypto, or secret-comparison code was added.
Container-Privileges ✅ Passed Changed YAMLs only adjust workflows/credentials; no privileged:true, hostPID/hostNetwork/hostIPC, SYS_ADMIN, or allowPrivilegeEscalation:true found.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@roivaz

roivaz commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

/retest

@roivaz roivaz force-pushed the aro-hcp-prod-slot-manager-wiring branch from f4ac8a8 to fcf38a9 Compare July 9, 2026 16:07
@roivaz roivaz changed the title Migrate prod e2e jobs to slot-manager Migrate prod periodics/presubmits to slot-manager; add validation postsubmit Jul 9, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@roivaz: pj-rehearse could not automatically process this event because the request waited in queue for longer than 5 minutes. Use /pj-rehearse to trigger rehearsals manually.

@raelga raelga 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
/approve

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

openshift-ci Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: raelga, roivaz

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

…tsubmit

De-risked prod migration to the Red Hat tenant slot-manager model. Because the
pj-rehearse plugin cannot exercise postsubmits (the gating prod-e2e-parallel job
is a postsubmit), this PR intentionally leaves the gating postsubmit untouched:

* Presubmits (optional prod-e2e-parallel variants) and periodics switch to the
  prod-rh Vault profile (two customer subscriptions) and the
  aro-hcp-persistent-e2e workflow; per-job quota/MSI leases removed.
* New temporary non-gating postsubmit prod-e2e-parallel-slot-manager exercises
  the prod-rh + persistent-e2e path; triggered per region via Gangway by the
  ARO-HCP prow-job-executor for validation.
* Cleanup: keep the existing delete-expired-prod-resource-groups (old
  subscription) alongside new delete-expired-prod-00/01-resource-groups for the
  two new subscriptions.
* Mount cluster-secrets-aro-hcp-prod-rh in the shared e2e and cleanup steps.

The gating prod-e2e-parallel postsubmit will be switched to prod-rh and the
temporary job removed once every region is validated.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@roivaz roivaz force-pushed the aro-hcp-prod-slot-manager-wiring branch from fcf38a9 to 4d78ea5 Compare July 10, 2026 11:02
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Jul 10, 2026
@openshift-ci

openshift-ci Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

New changes are detected. LGTM label has been removed.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@roivaz: 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-Azure-ARO-HCP-main-prod-e2e-parallel Azure/ARO-HCP presubmit Ci-operator config changed
pull-ci-Azure-ARO-HCP-main-prod-e2e-parallel-ocp-fast Azure/ARO-HCP presubmit Ci-operator config changed
pull-ci-Azure-ARO-HCP-main-prod-e2e-parallel-ocp-nightly Azure/ARO-HCP presubmit Ci-operator config changed
pull-ci-Azure-ARO-HCP-main-prod-e2e-parallel-ocp-stable Azure/ARO-HCP presubmit Ci-operator config changed
pull-ci-Azure-ARO-HCP-main-capz-e2e-dev Azure/ARO-HCP presubmit Registry content changed
pull-ci-Azure-ARO-HCP-main-e2e-parallel Azure/ARO-HCP presubmit Registry content changed
pull-ci-Azure-ARO-HCP-main-integration-e2e-parallel Azure/ARO-HCP presubmit Registry content changed
pull-ci-Azure-ARO-HCP-main-integration-e2e-parallel-ocp-stable Azure/ARO-HCP presubmit Registry content changed
pull-ci-Azure-ARO-HCP-main-integration-e2e-parallel-ocp-fast Azure/ARO-HCP presubmit Registry content changed
pull-ci-Azure-ARO-HCP-main-integration-e2e-parallel-ocp-nightly Azure/ARO-HCP presubmit Registry content changed
pull-ci-Azure-ARO-HCP-main-stage-e2e-parallel Azure/ARO-HCP presubmit Registry content changed
pull-ci-Azure-ARO-HCP-main-stage-e2e-parallel-ocp-stable Azure/ARO-HCP presubmit Registry content changed
pull-ci-Azure-ARO-HCP-main-stage-e2e-parallel-ocp-fast Azure/ARO-HCP presubmit Registry content changed
pull-ci-Azure-ARO-HCP-main-stage-e2e-parallel-ocp-nightly Azure/ARO-HCP presubmit Registry content changed
periodic-ci-Azure-ARO-HCP-main-periodic-cleanup-delete-expired-dev-ci-shard1-resource-groups N/A periodic Registry content changed
periodic-ci-Azure-ARO-HCP-main-periodic-cleanup-delete-expired-stage-resource-groups N/A periodic Registry content changed
periodic-ci-Azure-ARO-HCP-main-periodic-cleanup-delete-expired-dev-ci-shard2-resource-groups N/A periodic Registry content changed
periodic-ci-Azure-ARO-HCP-main-periodic-cleanup-delete-expired-integration-resource-groups N/A periodic Registry content changed
periodic-ci-Azure-ARO-HCP-main-periodic-prod-e2e-parallel-ocp-nightly N/A periodic Ci-operator config changed
periodic-ci-Azure-ARO-HCP-main-periodic-cleanup-delete-expired-prod-00-resource-groups N/A periodic Periodic changed
periodic-ci-Azure-ARO-HCP-main-periodic-prod-e2e-parallel N/A periodic Ci-operator config changed
periodic-ci-Azure-ARO-HCP-main-periodic-cleanup-delete-expired-prod-01-resource-groups N/A periodic Periodic changed
periodic-ci-Azure-ARO-HCP-main-periodic-integration-e2e-parallel N/A periodic Registry content changed
periodic-ci-Azure-ARO-HCP-main-periodic-cleanup-delete-expired-prod-resource-groups N/A periodic Registry content changed
periodic-ci-Azure-ARO-HCP-main-periodic-stage-e2e-parallel N/A periodic Registry content changed

A total of 29 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-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.

@roivaz

roivaz commented Jul 10, 2026

Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-Azure-ARO-HCP-main-prod-e2e-parallel

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

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

@openshift-ci

openshift-ci Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

@roivaz: 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/rehearse/Azure/ARO-HCP/main/prod-e2e-parallel 4d78ea5 link unknown /pj-rehearse pull-ci-Azure-ARO-HCP-main-prod-e2e-parallel

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