ART-14263: Migrate OCP 4.13 RPM repos to R2 CloudFlare#79213
Conversation
Updated baseurl in 14 ocp-4.13-*.repo files under core-services/release-controller/_repos/ to use the Cloudflare Workers R2 endpoint instead of mirror2.openshift.com. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
@ashwindasr: This pull request references ART-14263 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 story to target the "5.0.0" version, but no target version was set. DetailsIn response to this:
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. |
|
[REHEARSALNOTIFIER] Note: If this PR includes changes to step registry files ( |
WalkthroughFourteen repository configuration files are updated to migrate from the ChangesRepository Mirror Migration
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes 🚥 Pre-merge checks | ✅ 12✅ Passed checks (12 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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 `@core-services/release-controller/_repos/ocp-4.13-default.repo`:
- Line 33: This change to ocp-4.13-default.repo touches repository mirror URLs
and must be validated before merge: run the /test-repo-files slash command to
validate the ocp-4.13-default.repo update and fix any reported issues (ensure
mirror2 and CDN URLs follow the expected patterns and that the baseurl value for
rhel-server-ose-rpms matches the validated mirror2/CDN formats); if the test
flags problems, update the baseurl accordingly and re-run /test-repo-files until
it passes.
🪄 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: 3f1ee3f8-a768-4b7c-8372-50964e0db0c6
📒 Files selected for processing (14)
core-services/release-controller/_repos/ocp-4.13-default.repocore-services/release-controller/_repos/ocp-4.13-openstack-beta.repocore-services/release-controller/_repos/ocp-4.13-openstack.repocore-services/release-controller/_repos/ocp-4.13-ppc64le.repocore-services/release-controller/_repos/ocp-4.13-rhel-8-ironic-prevalidation.repocore-services/release-controller/_repos/ocp-4.13-rhel-8-server-ironic.repocore-services/release-controller/_repos/ocp-4.13-rhel-9-ironic-prevalidation.repocore-services/release-controller/_repos/ocp-4.13-rhel-9-server-ironic.repocore-services/release-controller/_repos/ocp-4.13-rhel8-aarch64.repocore-services/release-controller/_repos/ocp-4.13-rhel8.repocore-services/release-controller/_repos/ocp-4.13-rhel810.repocore-services/release-controller/_repos/ocp-4.13-rhel9.repocore-services/release-controller/_repos/ocp-4.13-rhel92.repocore-services/release-controller/_repos/ocp-4.13-s390x.repo
| [rhel-server-ose] | ||
| name = rhel-server-ose | ||
| baseurl = https://mirror2.openshift.com/enterprise/reposync/4.13/rhel-server-ose-rpms/ | ||
| baseurl = https://openshift-mirror-list.ci-systems.workers.dev/enterprise/reposync/4.13/rhel-server-ose-rpms/ |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# First, let's locate the file and check its content
fd -t f "ocp-4.13-default.repo" core-services/release-controller/_repos/Repository: openshift/release
Length of output: 123
🏁 Script executed:
# Check the repository structure
ls -la core-services/release-controller/_repos/ 2>/dev/null | head -20Repository: openshift/release
Length of output: 1479
🏁 Script executed:
# Read the specific file to verify line 33
if [ -f "core-services/release-controller/_repos/ocp-4.13-default.repo" ]; then
cat -n core-services/release-controller/_repos/ocp-4.13-default.repo | sed -n '25,40p'
fiRepository: openshift/release
Length of output: 1079
🏁 Script executed:
# Check for all .repo files matching ocp-*.repo pattern
fd -t f "ocp-.*\.repo" core-services/release-controller/_repos/Repository: openshift/release
Length of output: 18588
🏁 Script executed:
# Search for references to /test-repo-files in the repository
rg "test-repo-files" --type-add 'docs:*.md' -t docsRepository: openshift/release
Length of output: 350
🏁 Script executed:
# Check for CI/workflow files that might document this validation
fd -t f "*.md" | xargs grep -l "test-repo-files" 2>/dev/null | head -20Repository: openshift/release
Length of output: 345
🏁 Script executed:
# Look for CONTRIBUTING or similar guidelines
fd -t f "CONTRIBUTING*" -o "GUIDELINES*" -o "README*" core-services/release-controller/ | head -10Repository: openshift/release
Length of output: 203
🏁 Script executed:
# Read CLAUDE.md to understand the /test-repo-files command
head -200 CLAUDE.md | grep -A 20 "test-repo-files"Repository: openshift/release
Length of output: 992
🏁 Script executed:
# Get full section about test-repo-files
cat CLAUDE.md | grep -A 30 "### \`/test-repo-files\`"Repository: openshift/release
Length of output: 1119
🏁 Script executed:
# Check .claude/SLASH_COMMANDS.md for detailed documentation
cat .claude/SLASH_COMMANDS.md | grep -A 50 "test-repo-files"Repository: openshift/release
Length of output: 2496
🏁 Script executed:
# Verify the URL format in the changed file looks correct
cat -n core-services/release-controller/_repos/ocp-4.13-default.repo | grep -E "baseurl|sslverify"Repository: openshift/release
Length of output: 919
🏁 Script executed:
# Check git status/diff to see what files were changed in this PR
git diff --name-only HEAD~1 2>/dev/null | grep "\.repo$" | head -20Repository: openshift/release
Length of output: 43
Run /test-repo-files validation before merge.
Per coding guidelines, changes to core-services/release-controller/_repos/ocp-*.repo files must be validated using the /test-repo-files slash command to ensure mirror2 and CDN URLs are correct.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@core-services/release-controller/_repos/ocp-4.13-default.repo` at line 33,
This change to ocp-4.13-default.repo touches repository mirror URLs and must be
validated before merge: run the /test-repo-files slash command to validate the
ocp-4.13-default.repo update and fix any reported issues (ensure mirror2 and CDN
URLs follow the expected patterns and that the baseurl value for
rhel-server-ose-rpms matches the validated mirror2/CDN formats); if the test
flags problems, update the baseurl accordingly and re-run /test-repo-files until
it passes.
|
@ashwindasr: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
|
/hold /uncc @hector-vido |
|
/unhold |
|
/lgtm |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: ashwindasr, jupierce The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
@ashwindasr: Updated the following 15 configmaps:
DetailsIn response to this:
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. |
Updated baseurl in 14 ocp-4.13-*.repo files under core-services/release-controller/_repos/ to use the Cloudflare Workers R2 endpoint instead of mirror2.openshift.com. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Summary
Migrates OCP 4.13 RPM repository downloads from
mirror2.openshift.comto the Cloudflare Workers R2 endpoint (openshift-mirror-list.ci-systems.workers.dev) to eliminate CloudFront egress costs.Changes
baseurlin 14ocp-4.13-*.repofiles undercore-services/release-controller/_repos/https://mirror2.openshift.comwithhttps://openshift-mirror-list.ci-systems.workers.devcdn.redhat.com) baseurls are unchangedScope
Follows the same pattern as #78292 (OCP 4.12 pilot migration).
Related
Summary
This PR migrates OCP 4.13 RPM repository downloads from mirror2.openshift.com to the Cloudflare Workers R2 endpoint at openshift-mirror-list.ci-systems.workers.dev to reduce CloudFront egress costs. This follows the successful pilot migration for OCP 4.12 (PR #78292).
Changes
Updated the repository
baseurlin 14 OCP 4.13 repo configuration files located incore-services/release-controller/_repos/:ocp-4.13-default.repoocp-4.13-openstack.repoocp-4.13-openstack-beta.repoocp-4.13-ppc64le.repoocp-4.13-rhel8.repoocp-4.13-rhel8-aarch64.repoocp-4.13-rhel810.repoocp-4.13-rhel9.repoocp-4.13-rhel92.repoocp-4.13-s390x.repoocp-4.13-rhel-8-ironic-prevalidation.repoocp-4.13-rhel-8-server-ironic.repoocp-4.13-rhel-9-ironic-prevalidation.repoocp-4.13-rhel-9-server-ironic.repoEach file's
baseurlwas changed fromhttps://mirror2.openshift.com/enterprise/reposync/...tohttps://openshift-mirror-list.ci-systems.workers.dev/enterprise/reposync/..., preserving all path structures and authentication configuration (username_file/password_file settings). CDN-based baseurls (cdn.redhat.com) remain unchanged.Impact
This configuration change affects OCP 4.13 CI builds and release processes, redirecting RPM downloads for multiple architectures (x86_64, ppc64le, aarch64, s390x) and environments (RHEL 8, RHEL 9, ironic, OpenStack) to use the R2 endpoint instead of the CloudFront mirror, reducing infrastructure costs while maintaining availability and package authentication.