Skip to content

ROSAENG-66154: remove custom-domains-operator configuration from MCC - #2869

Open
aliceh wants to merge 1 commit into
openshift:masterfrom
aliceh:ROSAENG-66154
Open

aliceh wants to merge 1 commit into
openshift:masterfrom
aliceh:ROSAENG-66154

Conversation

@aliceh

@aliceh aliceh commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Remove all custom-domains-operator (CDO) related configuration from managed-cluster-config as part of the CDO fleet-wide decommission (Phase 2).
  • Deletes dedicated-admin ClusterRole, CDO ServiceAccount, rebalancer RoleBinding, and removes CDO references from managed namespaces, recording rules, ownerref cleanup CronJob, infra pod rebalancer, and managed resources allowlist.
  • Regenerates hack/ templates to reflect source changes.

Note: The app-interface SaaS file and labeller cronjob are intentionally retained — they are still needed for spb/spb-dev clusters.

Test plan

  • CI passes (generate-check, SSS conflict check)
  • Verify no CDO references remain in deploy/, resources/, or hack/ directories
  • Confirm managed-namespaces ConfigMap no longer lists openshift-custom-domains-operator
  • Confirm recording rules no longer reference custom-domains-operator in PromQL regexes
  • Post-merge: verify no RBAC errors or missing-recording-rule alerts on managed clusters

Made with Cursor

Summary by CodeRabbit

  • Removed Components

    • Removed deployment, service account, permissions, bindings, and managed-resource configuration for the custom domains operator.
    • Removed its namespace from managed namespaces and cleanup processing.
    • Removed related operator entries from observability recording rules.
  • Configuration Updates

    • Misscheduled-pod rebalancing no longer targets the custom domains operator and now includes the must-gather operator.
    • Removed associated deployment configuration and ownership metadata.

CDO is being decommissioned fleet-wide. Remove all CDO-related
configuration from managed-cluster-config:

- dedicated-admin ClusterRole for CustomDomain resources
- CDO namespace from managed-namespaces list
- CDO rebalancer RoleBinding and infraPodsMisscheduled reference
- CDO ServiceAccount (AWS)
- CDO namespace from ownerref cleanup CronJob
- CDO from OLM and PKO recording rule PromQL regexes
- All CDO entries from managed resources allowlist
- Regenerated hack/ templates

Co-authored-by: Cursor <cursoragent@cursor.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 Sep 2, 2026
@openshift-ci-robot

openshift-ci-robot commented Sep 2, 2026

Copy link
Copy Markdown

@aliceh: This pull request references ROSAENG-66154 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 task to target the "5.1.0" version, but no target version was set.

Details

In response to this:

Summary

  • Remove all custom-domains-operator (CDO) related configuration from managed-cluster-config as part of the CDO fleet-wide decommission (Phase 2).
  • Deletes dedicated-admin ClusterRole, CDO ServiceAccount, rebalancer RoleBinding, and removes CDO references from managed namespaces, recording rules, ownerref cleanup CronJob, infra pod rebalancer, and managed resources allowlist.
  • Regenerates hack/ templates to reflect source changes.

Note: The app-interface SaaS file and labeller cronjob are intentionally retained — they are still needed for spb/spb-dev clusters.

Test plan

  • CI passes (generate-check, SSS conflict check)
  • Verify no CDO references remain in deploy/, resources/, or hack/ directories
  • Confirm managed-namespaces ConfigMap no longer lists openshift-custom-domains-operator
  • Confirm recording rules no longer reference custom-domains-operator in PromQL regexes
  • Post-merge: verify no RBAC errors or missing-recording-rule alerts on managed clusters

Made with Cursor

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.

@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown

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: Team

Run ID: 6b01994f-5af2-4032-a54c-61dfdfd5d2aa

📥 Commits

Reviewing files that changed from the base of the PR and between a268492 and a0fd84b.

⛔ Files ignored due to path filters (3)
  • hack/00-osd-managed-cluster-config-integration.yaml.tmpl is excluded by !hack/**
  • hack/00-osd-managed-cluster-config-production.yaml.tmpl is excluded by !hack/**
  • hack/00-osd-managed-cluster-config-stage.yaml.tmpl is excluded by !hack/**
📒 Files selected for processing (12)
  • deploy/osd-custom-domains/01-dedicated-admins-cluster.ClusterRole.yaml
  • deploy/osd-custom-domains/OWNERS
  • deploy/osd-custom-domains/config.yaml
  • deploy/osd-managed-resources/managed-namespaces.ConfigMap.yaml
  • deploy/osd-rebalance-infra-nodes/07-osd-rebalance-infra-nodes.ConfigMap.yaml
  • deploy/osd-rebalance-infra-nodes/non-fr/06-openshift-custom-domains-operator-pod-rebalance.RoleBinding.yaml
  • deploy/osd-serviceaccounts/aws/00-serviceaccounts.yaml
  • deploy/osd-serviceaccounts/aws/README.md
  • deploy/osd-serviceaccounts/aws/config.yaml
  • deploy/osd-serviceaccounts/cronjob/10-osd-delete-ownerrefs.CronJob.yaml
  • deploy/sre-prometheus/centralized-observability/100-sre-operators-recording-rules.yaml
  • resources/managed/all-osd-resources.yaml
💤 Files with no reviewable changes (9)
  • deploy/osd-serviceaccounts/aws/README.md
  • deploy/osd-managed-resources/managed-namespaces.ConfigMap.yaml
  • deploy/osd-serviceaccounts/aws/00-serviceaccounts.yaml
  • deploy/osd-rebalance-infra-nodes/non-fr/06-openshift-custom-domains-operator-pod-rebalance.RoleBinding.yaml
  • deploy/osd-custom-domains/config.yaml
  • deploy/osd-custom-domains/01-dedicated-admins-cluster.ClusterRole.yaml
  • resources/managed/all-osd-resources.yaml
  • deploy/osd-custom-domains/OWNERS
  • deploy/osd-serviceaccounts/aws/config.yaml

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


Walkthrough

The change removes the custom domains operator from deployment resources, service accounts, RBAC, namespace management, cleanup jobs, pod rebalancing, and operator observability rules.

Changes

Custom domains operator removal

Layer / File(s) Summary
Remove operator resources
deploy/osd-custom-domains/*, deploy/osd-managed-resources/managed-namespaces.ConfigMap.yaml, deploy/osd-serviceaccounts/aws/*, resources/managed/all-osd-resources.yaml
Removes the operator deployment configuration, managed resources, AWS service account, dedicated-admin RBAC, namespace entry, and AWS-specific documentation note.
Update lifecycle cleanup
deploy/osd-rebalance-infra-nodes/07-osd-rebalance-infra-nodes.ConfigMap.yaml, deploy/osd-rebalance-infra-nodes/non-fr/*, deploy/osd-serviceaccounts/cronjob/10-osd-delete-ownerrefs.CronJob.yaml
Stops pod rebalancing and service-account owner-reference cleanup for the custom domains operator namespace. Adds the must-gather operator to the rebalancing list.
Update observability selectors
deploy/sre-prometheus/centralized-observability/100-sre-operators-recording-rules.yaml
Removes custom-domains-operator from the OLM and PKO operator success metric selectors.

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

Merge Risk: ⚪ Minimal · up to a0fd8

This change removes deprecated custom-domains-operator configuration and regenerates the related templates; no actionable merge-blocking risk remains beyond normal checks and review.

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main change: removing custom-domains-operator configuration from MCC as part of its decommission.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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 PASS: The pull request changes only deployment manifests, generated YAML templates, an OWNERS file, and documentation. The exact HEAD^..HEAD diff adds no Ginkgo title calls or dynamic test-title expre…
Test Structure And Quality ✅ Passed PASS: The pull request changes only YAML, template, OWNERS, and README files. The parent-to-HEAD diff contains no test-like paths, Ginkgo constructs, or Gomega assertions. Therefore the stated Ginkgo …
Microshift Test Compatibility ✅ Passed PASS: The pull request adds no Ginkgo e2e tests. The commit changes only YAML, template, and Markdown files, and the diff contains no new .go files or It, Describe, Context, or When declarat…
Single Node Openshift (Sno) Test Compatibility ✅ Passed PASS — The pull request adds no Ginkgo e2e tests. The diff contains only deletions or modifications to YAML, Markdown, and generated template files. No changed path is a test source path, and no added…
Topology-Aware Scheduling Compatibility ✅ Passed The PR introduces no topology-sensitive scheduling constraint. The diff against origin/master contains only deletions and list/PromQL updates. Added lines contain no anti-affinity, topology spread, …
Ote Binary Stdout Contract ✅ Passed PASS: The pull request changes only YAML, Markdown, and generated template configuration. The repository has no tracked Go files, and searches found no OTE process entry points or logging calls. The d…
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PASS: The pull request adds no Ginkgo e2e tests. The parent-to-HEAD diff changes only deployment configuration, templates, resource lists, and documentation; all changed paths were classified as non-t…
No-Weak-Crypto ✅ Passed The pull request introduces no weak-crypto usage. The exact added-line scan found no MD5, SHA-1, DES, 3DES, RC4, Blowfish, ECB, crypto API, HMAC, or constant-time comparison patterns. The changes dele…
Container-Privileges ✅ Passed PASS: The PR diff only deletes CDO resources or removes CDO names from existing configurations. Added lines update namespace lists and PromQL allowlists. No added manifest content sets `privileged: tr…
No-Sensitive-Data-In-Logs ✅ Passed PASS — The PR does not add or broaden sensitive-data logging. The diff removes the CDO namespace from the rebalancer and owner-reference cleanup lists, and the logging statements remain unchanged. Dif…
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (3 skipped: 3 unsupported.)

Full details: Stable And Deterministic Test Names

Explanation

PASS: The pull request changes only deployment manifests, generated YAML templates, an OWNERS file, and documentation. The exact HEAD^..HEAD diff adds no Ginkgo title calls or dynamic test-title expressions, and no test-like paths changed. Therefore, it introduces no unstable or overly-specific test name.

Full details: Test Structure And Quality

Explanation

PASS: The pull request changes only YAML, template, OWNERS, and README files. The parent-to-HEAD diff contains no test-like paths, Ginkgo constructs, or Gomega assertions. Therefore the stated Ginkgo test quality requirements are not applicable.

Full details: Microshift Test Compatibility

Explanation

PASS: The pull request adds no Ginkgo e2e tests. The commit changes only YAML, template, and Markdown files, and the diff contains no new .go files or It, Describe, Context, or When declarations. The MicroShift test compatibility check is therefore not applicable.

Full details: Single Node Openshift (Sno) Test Compatibility

Explanation

PASS — The pull request adds no Ginkgo e2e tests. The diff contains only deletions or modifications to YAML, Markdown, and generated template files. No changed path is a test source path, and no added line contains It(), Describe(), Context(), or When(). Therefore, the SNO multi-node test compatibility check is not applicable.

Full details: Topology-Aware Scheduling Compatibility

Explanation

The PR introduces no topology-sensitive scheduling constraint. The diff against origin/master contains only deletions and list/PromQL updates. Added lines contain no anti-affinity, topology spread, replica, node selector/affinity, toleration, PDB, or control-plane topology settings. The rebalancer and owner-reference CronJob changes remove openshift-custom-domains-operator from existing loops. The generated hack/ template changes mirror these removals.

Full details: Ote Binary Stdout Contract

Explanation

PASS: The pull request changes only YAML, Markdown, and generated template configuration. The repository has no tracked Go files, and searches found no OTE process entry points or logging calls. The diff adds no stdout writes in main or suite setup. The embedded CronJob shell changes are not OTE binary process code.

Full details: Ipv6 And Disconnected Network Test Compatibility

Explanation

PASS: The pull request adds no Ginkgo e2e tests. The parent-to-HEAD diff changes only deployment configuration, templates, resource lists, and documentation; all changed paths were classified as non-test. No added lines contain Ginkgo declarations, IPv4 literals, or external connectivity indicators. The compatibility check is therefore not applicable.

Full details: No-Weak-Crypto

Explanation

The pull request introduces no weak-crypto usage. The exact added-line scan found no MD5, SHA-1, DES, 3DES, RC4, Blowfish, ECB, crypto API, HMAC, or constant-time comparison patterns. The changes delete CDO configuration and remove namespace/operator names from YAML, shell lists, PromQL allowlists, and generated templates. Existing MD5/SHA-1 text in generated templates is unchanged and appears in comments.

Full details: Container-Privileges

Explanation

PASS: The PR diff only deletes CDO resources or removes CDO names from existing configurations. Added lines update namespace lists and PromQL allowlists. No added manifest content sets privileged: true, hostPID, hostNetwork, hostIPC, SYS_ADMIN, allowPrivilegeEscalation: true, or runAsUser: 0. Existing privileged fields in regenerated templates are not added by this commit.

Full details: No-Sensitive-Data-In-Logs

Explanation

PASS — The PR does not add or broaden sensitive-data logging. The diff removes the CDO namespace from the rebalancer and owner-reference cleanup lists, and the logging statements remain unchanged. Diff scans found no added echo, printf, logger, or console statements and no added password, token, API-key, PII, session-ID, or authorization values. Existing pod and node name output is pre-existing behavior and is not introduced by this PR.

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

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

@aliceh

aliceh commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

/hold

@openshift-ci openshift-ci Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Sep 2, 2026
@openshift-ci

openshift-ci Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: aliceh
Once this PR has been reviewed and has the lgtm label, please assign tafhim 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

@openshift-ci

openshift-ci Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are you removing this?

@dustman9000

Copy link
Copy Markdown
Member

/hold
We still need these resources for other non-CDO resources. Also, there are a handful of clusters that still need CDO dependent resources.

openshift-merge-bot Bot pushed a commit that referenced this pull request Sep 16, 2026
Delete the osd-rebalance-infra-nodes RoleBinding targeting
namespace openshift-custom-domains-operator.

Phase 1 of the CDO decommission removed the CDO namespace from
clusters without the keep-label. The rebalancer SSS still tries
to apply this RoleBinding to that namespace, causing ClusterSync
failure on hibernation resume and blocking LS auto-clear.

This is the minimal fix extracted from PR #2869 (full MCC cleanup)
which is still under review.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants