Skip to content

Revert catalog name to redhat-operator-index for 0.1.0 compatibility#509

Merged
maorfr merged 1 commit into
mainfrom
fix/revert-catalog-name-for-0.1.0-compatibility
Jun 16, 2026
Merged

Revert catalog name to redhat-operator-index for 0.1.0 compatibility#509
maorfr merged 1 commit into
mainfrom
fix/revert-catalog-name-for-0.1.0-compatibility

Conversation

@maorfr

@maorfr maorfr commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator

Summary

Reverts mirror_rh_operator_catalog from "mirror-redhat-operators" to "redhat-operator-index" to maintain backward compatibility with 0.1.0 deployments and eliminate the need for default operator migrations.

Problem

Commit c973e73 (62 commits after 0.1.0 release) renamed the core catalog from cs-redhat-operator-index-v4-20 to cs-mirror-redhat-operators-v4-20. This cosmetic change broke upgrades from 0.1.0 because:

  • 0.1.0 deployments: All operator subscriptions reference cs-redhat-operator-index-v4-20
  • Post-rename: New deployments use cs-mirror-redhat-operators-v4-20
  • Upgrade impact: Existing subscriptions can't find the catalog source with the new name

Solution

Revert the catalog name back to the original redhat-operator-index. This is simpler than creating a migration for all default operators in defaults/operators.yaml.

Changes

Variable Change

  • defaults/catalogs.yaml: mirror_rh_operator_catalog: "redhat-operator-index"

Hardcoded References Updated

  • operators/advanced-cluster-management/configure_mch.yaml: MCE subscription source
  • docs/UPGRADE.md: Documentation examples
  • playbooks/tasks/migrations/*.yaml: Comment examples
  • src/enclave/tools/node_image_digests.py: Catalog image filter
  • src/tests/test_node_image_digests.py: Test fixture

Impact

Default operators: Use cs-redhat-operator-index-v4-20 (matches 0.1.0)
Foundation plugins: Use cs-redhat-operator-index-<plugin>-v4-20 (e.g., cs-redhat-operator-index-odf-v4-20)
Foundation plugin migrations: Continue to work correctly (migrate FROM cs-redhat-operator-index-v4-20 TO cs-redhat-operator-index-<plugin>-v4-20)
No migration needed: Default operators work seamlessly across upgrades from 0.1.0
Certified catalog unchanged: mirror_certified_rh_operator_catalog remains "mirror-certified-operators" (was never used as a core catalog, only plugin-specific)

Testing

  • All hardcoded references to mirror-redhat-operators updated
  • Migration comments updated to reflect correct catalog names
  • Verified no breaking changes to certified catalog plugins

Related

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Bug Fixes

    • Updated Red Hat operator catalog defaults to use the latest operator index references
    • Updated Advanced Cluster Management operator configurations with new catalog sources
    • Updated catalog source filtering in image digest extraction
  • Documentation

    • Revised upgrade migration documentation with new catalog source naming
  • Tests

    • Updated test validations for catalog source references

Changes mirror_rh_operator_catalog from "mirror-redhat-operators" back to
"redhat-operator-index" to maintain backward compatibility with 0.1.0
deployments and eliminate the need for default operator migrations.

Background: Commit c973e73 (62 commits after 0.1.0) renamed the catalog
from cs-redhat-operator-index-v4-20 to cs-mirror-redhat-operators-v4-20.
This cosmetic change broke upgrades from 0.1.0, as existing operator
subscriptions reference the old name. Reverting the rename is simpler
than creating a migration for all default operators.

Impact:
- Default operators use cs-redhat-operator-index-v4-20 (matches 0.1.0)
- Foundation plugins use cs-redhat-operator-index-<plugin>-v4-20
  (e.g., cs-redhat-operator-index-odf-v4-20)
- Foundation plugin migrations continue to work correctly
- No migration needed for default operators
- Seamless upgrades from 0.1.0 to 0.1.1+

Changes:
- defaults/catalogs.yaml: Change mirror_rh_operator_catalog variable
- operators/advanced-cluster-management/configure_mch.yaml: Update MCE source
- docs/UPGRADE.md: Update catalog name examples
- playbooks/tasks/migrations/*.yaml: Update comments with correct names
- src/enclave/tools/node_image_digests.py: Update catalog filter
- src/tests/test_node_image_digests.py: Update test fixture

Assisted-by: Claude Code <noreply@anthropic.com>
@github-actions github-actions Bot added deployment Deployment-related changes operators Operator installation/config labels Jun 16, 2026
@coderabbitai

coderabbitai Bot commented Jun 16, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 6a5fcf6d-8814-4f4e-a655-1e9ca4e1f936

📥 Commits

Reviewing files that changed from the base of the PR and between de12088 and a60d5d0.

📒 Files selected for processing (8)
  • defaults/catalogs.yaml
  • docs/UPGRADE.md
  • operators/advanced-cluster-management/configure_mch.yaml
  • playbooks/tasks/migrations/foundation_plugin_catalog_sources.yaml
  • playbooks/tasks/migrations/foundation_plugin_fleet_catalogs.yaml
  • playbooks/tasks/migrations/operator_catalog_source.yaml
  • src/enclave/tools/node_image_digests.py
  • src/tests/test_node_image_digests.py

Walkthrough

All references to the mirror-redhat-operators catalog source name are replaced with redhat-operator-index across the codebase: the mirror_rh_operator_catalog default variable, the ACM MCE disconnected subscription spec source, the Python digest exclude-contains filter and its test, migration playbook header comments, and upgrade documentation examples.

Changes

Catalog Source Name Rename: mirror-redhat-operatorsredhat-operator-index

Layer / File(s) Summary
Default variable and ACM MCE subscription source
defaults/catalogs.yaml, operators/advanced-cluster-management/configure_mch.yaml
mirror_rh_operator_catalog default changed to "redhat-operator-index"; disconnected MCE subscription spec.source updated to cs-redhat-operator-index-v4-20.
Node image digest exclude-contains filter
src/enclave/tools/node_image_digests.py, src/tests/test_node_image_digests.py
DEFAULT_PINNED_IMAGE_EXCLUDE_CONTAINS entry and its comment updated from mirror-redhat-operators to redhat-operator-index; test fixture image reference updated accordingly.
Migration playbook comments and upgrade docs
playbooks/tasks/migrations/foundation_plugin_catalog_sources.yaml, playbooks/tasks/migrations/operator_catalog_source.yaml, playbooks/tasks/migrations/foundation_plugin_fleet_catalogs.yaml, docs/UPGRADE.md
Header comment examples and the UPGRADE.md "After" example updated to cs-redhat-operator-index-* names; no executable logic changed.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • rh-ecosystem-edge/enclave#485: Directly modifies the same MCE disconnected subscription source (cs-mirror-redhat-operators-v4-20) that this PR renames to cs-redhat-operator-index-v4-20.
  • rh-ecosystem-edge/enclave#507: Modifies the foundation plugin catalog source migration to derive new_source from mirror_rh_operator_catalog, whose default value this PR changes.
  • rh-ecosystem-edge/enclave#309: Derives operator subscription spec.source from mirror_rh_operator_catalog/default_operator_source, which this PR updates.

Suggested labels

deployment, infrastructure, operators

Suggested reviewers

  • eliorerz
  • rporres

Poem

⚠️ Catalog rename detected — severity: cosmetic 🔍
mirror-redhat-operators has left the building,
redhat-operator-index takes its place.
Across defaults, playbooks, and digest filtering,
a consistent rename, no logic to chase.
Risk: LOW. Impact: clarity achieved. ✅

🚥 Pre-merge checks | ✅ 10 | ❌ 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 (10 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically summarizes the main change: reverting the catalog name from 'mirror-redhat-operators' to 'redhat-operator-index' for 0.1.0 compatibility, which is the primary objective across all modified files.
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.
No-Hardcoded-Secrets ✅ Passed No hardcoded secrets, API keys, tokens, passwords, credentials, or sensitive data found. Changes only involve catalog source names, registry paths, and documentation updates.
No-Weak-Crypto ✅ Passed PR contains no cryptographic code, weak algorithms (MD5/SHA1/DES/RC4/3DES/Blowfish/ECB), custom crypto, or secret comparisons; changes are purely configuration string updates for Kubernetes catalog...
No-Injection-Vectors ✅ Passed PR makes only string/value replacements in configuration, documentation, and test files. No injection vectors detected: no SQL, shell=True, eval/exec, pickle.loads, unsafe yaml.load, os.system, or...
Container-Privileges ✅ Passed No container privilege escalation settings found. PR updates catalog names in configs/docs; no privileged, hostPID, hostNetwork, hostIPC, SYS_ADMIN, or allowPrivilegeEscalation:true present.
No-Sensitive-Data-In-Logs ✅ Passed No sensitive data exposed in logs. PR only updates catalog variable names and corresponding references; existing logging statements log only non-sensitive metadata (image names, node names, counts).
Ai-Attribution ✅ Passed PR mentions Claude Code generation. Commit includes proper "Assisted-by: Claude Code noreply@anthropic.com" trailer. No improper Co-Authored-By usage for AI tool detected.

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

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/revert-catalog-name-for-0.1.0-compatibility

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 and usage tips.

@pgodowski

Copy link
Copy Markdown
Contributor

Can we please request this PR to get reviewed/merged today?

@maorfr maorfr merged commit 33f9781 into main Jun 16, 2026
22 checks passed
@maorfr maorfr deleted the fix/revert-catalog-name-for-0.1.0-compatibility branch June 16, 2026 16:01
@mwakao

mwakao commented Jun 18, 2026

Copy link
Copy Markdown

@maorfr it was mirror-redhat-operators at 0.1.0. Please see https://github.com/rh-ecosystem-edge/enclave/blob/0.1.0/defaults/catalogs.yaml
so, I think we should use mirror-redhat-operators for 0.1.1 if we want to make it compatible with 0.1.0?

@maorfr

maorfr commented Jun 18, 2026

Copy link
Copy Markdown
Collaborator Author

#523

maorfr added a commit that referenced this pull request Jun 18, 2026
PR #509 changed mirror_rh_operator_catalog from "mirror-redhat-operators"
to "redhat-operator-index" which fixed management cluster compatibility
but broke spoke cluster upgrades from 0.1.0.

In 0.1.0, spoke clusters had a CatalogSource named "mirror-redhat-operators"
(see https://github.com/rh-ecosystem-edge/enclave/blob/0.1.0/defaults/catalogs.yaml#L6).
After the change in #509, the catalog source name changed to "redhat-operator-index",
but existing subscriptions on spoke clusters still reference the old name,
causing operator installation failures.

This fix hardcodes the spoke cluster catalog source name to
"mirror-redhat-operators" while keeping the image path dynamic.
This maintains compatibility with 0.1.0 spoke clusters without
affecting the management cluster fix from #509.

Assisted-by: Claude Code <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

deployment Deployment-related changes operators Operator installation/config

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants