Skip to content

NO-JIRA: Remove openstack-beta RPM mirror repos and services#80480

Open
stephenfin wants to merge 1 commit into
openshift:mainfrom
shiftstack:osc-repos
Open

NO-JIRA: Remove openstack-beta RPM mirror repos and services#80480
stephenfin wants to merge 1 commit into
openshift:mainfrom
shiftstack:osc-repos

Conversation

@stephenfin

@stephenfin stephenfin commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

These repos mirrored OpenStack Platform beta packages for RHEL 8. No CI job has consumed the openstack-beta mirrors since 2020: the ironic images switched to osp16 repos in Oct 2019 (4b6c9c7) and kuryr-kubernetes moved to the regular openstack repos in Apr 2020 (e538f6e). Any remaining CI config references were removed in Nov 2025 (3a32b56) when all OpenStack jobs for OCP < 4.14 were cleaned up.

In addition, these repos were based on RHEL 8 packages, which is no longer the base OS for OCP (RHEL 9 is the current base, with RHEL 10 being adopted for newer releases).

This removes the 20 ocp-*-openstack-beta.repo files, drops the openstack-beta special-case naming logic from the RPM mirroring service generator, and regenerates all rpms-ocp-*.yaml deployment manifests.

Summary by CodeRabbit

This PR removes OpenStack Platform beta package mirror repositories and related CI infrastructure that had been unused since 2020. Specifically:

Repository Files Removed:

  • 20 ocp-*-openstack-beta.repo configuration files (covering OCP versions 4.6 through 5.1) are deleted from core-services/release-controller/_repos/. These files contained YUM/DNF repository stanzas for RHEL 8 OpenStack beta packages that are no longer needed.

Kubernetes Manifest Updates:

  • All rpms-ocp-*.yaml deployment manifests across two cluster configurations (build-shared and vsphere02) are regenerated. The changes systematically remove openstack-beta-* Kubernetes Service and Deployment resources (one pair per OCP version) and replace many with base-* equivalents that reference the default repository configuration instead.
  • For versions 4.6-4.23 and 5.0: openstack-beta-* resources are removed and replaced with base-* resources pointing to ocp-X.X-default.repo ConfigMaps.
  • For versions 4.15 and 4.7 (vsphere02): Additional base-openstack-* resources pointing to ocp-X.X-openstack.repo are also introduced.

Generator Code Change:

  • The art_rpm_mirroring_services.py generator that auto-generates the RPM mirror service manifests is simplified by removing the special-case logic that handled the openstack-beta repository key naming convention.

Context:
The PR notes that no CI jobs have consumed these openstack-beta mirrors since 2020 (ironic moved to osp16 in October 2019; kuryr-kubernetes switched to regular openstack repos in April 2020). The mirrors targeted RHEL 8 packages, while OpenShift Container Platform now uses RHEL 9 and is adopting RHEL 10. Remaining CI references to OpenStack jobs for OCP < 4.14 were cleaned up in November 2025.

These repos mirrored OpenStack Platform beta packages for RHEL 8. No CI
job has consumed the openstack-beta mirrors since 2020: the ironic images
switched to osp16 repos in Oct 2019 (4b6c9c7) and kuryr-kubernetes
moved to the regular openstack repos in Apr 2020 (e538f6e). Any
remaining CI config references were removed in Nov 2025 (3a32b56)
when all OpenStack jobs for OCP < 4.14 were cleaned up.

In addition, these repos were based on RHEL 8 packages, which is no
longer the base OS for OCP (RHEL 9 is the current base, with RHEL 10
being adopted for newer releases).

This removes the 20 ocp-*-openstack-beta.repo files, drops the
openstack-beta special-case naming logic from the RPM mirroring service
generator, and regenerates all rpms-ocp-*.yaml deployment manifests.

Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jun 12, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@stephenfin: This pull request explicitly references no jira issue.

Details

In response to this:

These repos mirrored OpenStack Platform beta packages for RHEL 8. No CI job has consumed the openstack-beta mirrors since 2020: the ironic images switched to osp16 repos in Oct 2019 (4b6c9c7) and kuryr-kubernetes moved to the regular openstack repos in Apr 2020 (e538f6e). Any remaining CI config references were removed in Nov 2025 (3a32b56) when all OpenStack jobs for OCP < 4.14 were cleaned up.

In addition, these repos were based on RHEL 8 packages, which is no longer the base OS for OCP (RHEL 9 is the current base, with RHEL 10 being adopted for newer releases).

This removes the 20 ocp-*-openstack-beta.repo files, drops the openstack-beta special-case naming logic from the RPM mirroring service generator, and regenerates all rpms-ocp-*.yaml deployment manifests.

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-merge-bot openshift-merge-bot Bot added the rehearsals-ack Signifies that rehearsal jobs have been acknowledged label Jun 12, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@stephenfin: no rehearsable tests are affected by this change

Note: If this PR includes changes to step registry files (ci-operator/step-registry/) and you expected jobs to be found, try rebasing your PR onto the base branch. This helps pj-rehearse accurately detect changes when the base branch has moved forward.

@coderabbitai

coderabbitai Bot commented Jun 12, 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: 27e106b2-bdd4-49fb-a48c-74e572632f1f

📥 Commits

Reviewing files that changed from the base of the PR and between 76ba986 and 960b9b6.

📒 Files selected for processing (59)
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.10.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.11.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.12.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.13.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.14.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.15.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.16.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.17.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.18.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.19.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.20.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.21.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.22.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.23.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.6.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.7.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.8.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.9.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-5.0.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.10.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.11.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.12.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.13.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.14.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.15.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.16.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.17.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.18.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.19.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.20.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.21.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.22.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.23.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.6.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.7.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.8.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.9.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-5.0.yaml
  • core-services/release-controller/_repos/ocp-4.10-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.11-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.12-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.13-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.14-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.15-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.16-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.17-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.18-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.19-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.20-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.21-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.22-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.23-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.6-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.7-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.8-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.9-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-5.0-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-5.1-openstack-beta.repo
  • hack/generators/release-controllers/content/art_rpm_mirroring_services.py
💤 Files with no reviewable changes (58)
  • core-services/release-controller/_repos/ocp-4.7-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.12-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.10-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.22-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.11-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.9-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.14-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.15-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-5.0-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.19-openstack-beta.repo
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.21.yaml
  • core-services/release-controller/_repos/ocp-4.8-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.18-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.16-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.21-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.6-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.17-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.23-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-4.20-openstack-beta.repo
  • core-services/release-controller/_repos/ocp-5.1-openstack-beta.repo
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.18.yaml
  • core-services/release-controller/_repos/ocp-4.13-openstack-beta.repo
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.20.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.12.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-5.0.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.18.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.14.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.15.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.22.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.23.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.23.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.8.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.12.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.8.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.10.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-5.0.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.9.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.7.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.20.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.17.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.19.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.13.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.6.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.21.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.10.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.16.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.11.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.17.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.13.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.14.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.7.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.22.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.15.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.16.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.9.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.6.yaml
  • clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.19.yaml
  • clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.11.yaml

Walkthrough

This PR removes OpenStack Beta (openstack-beta-*) RPM mirroring support from the release controller. The generator logic is refactored to change conditional structure, Kubernetes manifests across two cluster locations and multiple versions (4.6–5.1) are updated to replace beta service pairs with base equivalents, and associated repository configuration files are cleaned up by removing their beta stanzas.

Changes

Remove OpenStack Beta RPM mirroring support

Layer / File(s) Summary
Generator conditional refactoring
hack/generators/release-controllers/content/art_rpm_mirroring_services.py
The add_rpm_mirror_service function changes the repo_key == 'default' case from an elif branch to a standalone if statement, restructuring conditional flow while preserving existing assignment paths.
Build-shared cluster manifest updates
clusters/build-clusters/build-shared/release-controller/rpms-ocp-4.{6..23}.yaml, rpms-ocp-5.0.yaml
Kubernetes manifests across versions 4.6–5.0 remove openstack-beta-* Service/Deployment pairs and replace with base-* equivalents referencing ocp-*-default.repo ConfigMap keys; the 4.6 and 4.15 versions also add new base-* variant resources.
VSphere02 cluster manifest updates
clusters/build-clusters/vsphere02/release-controller/rpms-ocp-4.{6..23}.yaml, rpms-ocp-5.0.yaml
Kubernetes manifests across versions 4.6–5.0 similarly remove openstack-beta-* Service/Deployment pairs; most are replaced with base-* resources using default repos, while 4.18 replaces with base-openstack-* using ocp-*-openstack.repo; 4.7 also adds a separate base-openstack-* resource.
Repository configuration cleanup
core-services/release-controller/_repos/ocp-4.{6..23}-openstack-beta.repo, ocp-5.{0..1}-openstack-beta.repo
The [openstack-beta-rhel8] repository stanza, including base URLs, authentication file paths, and GPG verification settings, is removed from all beta repo configuration files.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Suggested reviewers

  • csrwng
🚥 Pre-merge checks | ✅ 14 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ 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 clearly and concisely describes the main change: removal of openstack-beta RPM mirror repos and services across multiple versions and clusters.
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 Scanned Go files changed in this PR commit for Ginkgo It/Describe/Context/When title strings and for onsi/ginkgo imports; found 0 Ginkgo test title definitions to flag.
Test Structure And Quality ✅ Passed PR changes only .yaml (38), .repo (20), and 1 .py generator file; no Ginkgo test code is present/modified, so the test-structure quality rules don’t apply.
Microshift Test Compatibility ✅ Passed PR updates rpm mirror generator/YAML; searched affected paths for *_test.go and ginkgo/microshift patterns; none found, so no new MicroShift-incompatible e2e tests.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR #80480 only changes .py, .repo, and .yaml files (no *.go / ginkgo / e2e test additions found in the PR files view).
Topology-Aware Scheduling Compatibility ✅ Passed Generator add_rpm_mirror_service only sets nodeSelector (linux/amd64) and replicas=2; rpms-ocp-*.yaml lacks anti-affinity, topologySpreadConstraints, DoNotSchedule, control-plane node selectors, or...
Ote Binary Stdout Contract ✅ Passed This PR modifies YAML manifests, repo files, and a Python generator utility—not OTE test binaries. The custom check for OTE Binary Stdout Contract is not applicable to this PR.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR files changed are only rpms-ocp YAML/.repo and art_rpm_mirroring_services.py; no new Ginkgo *_test.go e2e tests are added, so no IPv4/IPv6 or disconnected-internet assumptions to check.
No-Weak-Crypto ✅ Passed PR changes only remove openstack-beta repo stanzas and adjust generator naming logic; scanned generator and repo content for MD5/SHA1/DES/RC4/3DES/Blowfish/ECB and constant-time compare_digest—no m...
Container-Privileges ✅ Passed Checked rpms-ocp-*.yaml (release-controller build-clusters/vsphere02) and the rpms mirroring generator for privileged/hostPID/hostNetwork/hostIPC/SYS_ADMIN/allowPrivilegeEscalation; found 0 occurre...
No-Sensitive-Data-In-Logs ✅ Passed Scanned hack/generators/.../art_rpm_mirroring_services.py: no print/logging calls or sensitive tokens/values are emitted; only secretName references in generated YAML.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@openshift-ci

openshift-ci Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

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

@hector-vido

Copy link
Copy Markdown
Contributor

/lgtm

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

openshift-ci Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: hector-vido, stephenfin
Once this PR has been reviewed and has the lgtm label, please assign jcpowermac for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. rehearsals-ack Signifies that rehearsal jobs have been acknowledged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants