Skip to content

[WIP] OCPCLOUD-3557: split capi-controllers and machine-api-migration - #622

Open
stefanonardo wants to merge 1 commit into
openshift:mainfrom
stefanonardo:OCPCLOUD-3557
Open

[WIP] OCPCLOUD-3557: split capi-controllers and machine-api-migration#622
stefanonardo wants to merge 1 commit into
openshift:mainfrom
stefanonardo:OCPCLOUD-3557

Conversation

@stefanonardo

@stefanonardo stefanonardo commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Split the single capi-controllers Deployment (two containers sharing one SA) into two independent Deployments with dedicated ServiceAccounts and least-privilege RBAC
  • Aligned machine-api-migration metrics port to :8443 (matching all other binaries)

Test plan

  • make build passes
  • make lint passes (0 issues)
  • make unit passes (pre-existing crdcompatibility failures excluded)
  • CI e2e tests pass with both pods running under separate SAs
  • Run audit2rbac on CI job audit logs to confirm zero 403s for both SAs

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Added a separate Machine API migration controller deployment with dedicated permissions and feature-gate support.
    • Added metrics service and monitoring for the migration controller.
  • Bug Fixes
    • Corrected metrics port and health-check configuration for CAPI controllers.
    • Updated network access rules to support both controller metrics endpoints.
  • Security
    • Tightened existing controller permissions and assigned migration-specific access separately.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jul 9, 2026
@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 9, 2026
@openshift-ci-robot

openshift-ci-robot commented Jul 9, 2026

Copy link
Copy Markdown

@stefanonardo: This pull request references OCPCLOUD-3557 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.

Details

In response to this:

Summary

  • Split the single capi-controllers Deployment (two containers sharing one SA) into two independent Deployments with dedicated ServiceAccounts and least-privilege RBAC
  • Aligned machine-api-migration metrics port to :8443 (matching all other binaries)

Test plan

  • make build passes
  • make lint passes (0 issues)
  • make unit passes (pre-existing crdcompatibility failures excluded)
  • CI e2e tests pass with both pods running under separate SAs
  • Run audit2rbac on CI job audit logs to confirm zero 403s for both SAs

🤖 Generated with Claude Code

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 Jul 9, 2026

Copy link
Copy Markdown

Walkthrough

The change separates machine-api-migration from capi-controllers into its own Deployment, ServiceAccount, RBAC permissions, metrics Service, and ServiceMonitor. Existing controller permissions and metrics port mappings are reduced or renamed accordingly.

Changes

Machine API migration workload split

Layer / File(s) Summary
Dedicated workload definition
manifests/0000_30_cluster-api_02_machine-api-migration-service-account.yaml, manifests/0000_30_cluster-api_17_machine-api-migration-deployment.yaml, ocp-manifests-input/default/capi-controllers-deployment.yaml
Adds the machine-api-migration ServiceAccount and Deployment, and removes the migration container from capi-controllers.
Separate migration RBAC
manifests/0000_30_cluster-api_03_machine-api-migration-rbac-roles.yaml, manifests/0000_30_cluster-api_04_machine-api-migration-rbac-bindings.yaml, manifests/0000_30_cluster-api_03_rbac_roles.yaml, docs/rbac.md
Adds migration-specific roles and bindings, reduces capi-controllers permissions, and documents the separate ServiceAccounts.
Separate metrics endpoints
manifests/0000_30_cluster-api_10_*, manifests/0000_30_cluster-api_12_allow-ingress-to-metrics-operators.yaml
Adds migration metrics resources, updates the controller metrics port, and expands metrics ingress selection.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant machine-api-migration
  participant machine-api-migration-metrics
  participant ServiceMonitor
  machine-api-migration->>machine-api-migration-metrics: Expose HTTPS metrics on port 8443
  ServiceMonitor->>machine-api-migration-metrics: Select migration metrics service
  ServiceMonitor->>machine-api-migration: Scrape metrics using TLS configuration
Loading

Possibly related PRs

Suggested reviewers: mdbooth, sg00dwin, radekmanak

🚥 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: splitting capi-controllers and machine-api-migration.
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 No Ginkgo test titles were added or modified; the PR only changes docs/manifests, so there are no dynamic or unstable test names to flag.
Test Structure And Quality ✅ Passed No Ginkgo test files or test code were changed in this PR; only docs and manifests were modified, so the test-quality criteria are not applicable.
Microshift Test Compatibility ✅ Passed PASS: The PR only changes docs/manifests and adds no Ginkgo e2e test code, so MicroShift test compatibility is not implicated.
Single Node Openshift (Sno) Test Compatibility ✅ Passed No new Ginkgo e2e tests were added; the PR changes only docs and manifests, so SNO compatibility is not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed No unsafe topology constraints were added: the new deployment targets control-plane nodes but is excluded from hosted clusters, and there’s no anti-affinity, spread, PDB, or worker-only selector ch...
Ote Binary Stdout Contract ✅ Passed The PR only changes docs/manifests; no Go entrypoints/TestMain/BeforeSuite/etc. were modified, so no new stdout writes could be introduced.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No new Ginkgo e2e tests were added; the PR only changes docs/manifests, so this IPv4/disconnected-network check is not applicable.
No-Weak-Crypto ✅ Passed PR changes are docs/YAML only; no MD5/SHA1/DES/RC4/3DES/Blowfish/ECB, custom crypto, or secret-comparison code was added.
Container-Privileges ✅ Passed No changed manifest sets privileged/host namespaces/SYS_ADMIN/allowPrivilegeEscalation; both Deployments require restricted-v2 SCC.
No-Sensitive-Data-In-Logs ✅ Passed PASS: The PR only changes docs and Kubernetes manifests; no new logging statements or log outputs with secrets, PII, or customer data were added.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@stefanonardo

Copy link
Copy Markdown
Contributor Author

/test e2e-aws-capi-techpreview

@openshift-ci
openshift-ci Bot requested review from RadekManak and mdbooth July 9, 2026 11:18
@openshift-ci

openshift-ci Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 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 `@docs/rbac.md`:
- Around line 41-43: The RBAC summary for the `machine-api-migration` Role in
`openshift-cluster-api` is mislabeled as “(read)” even though the manifest
grants both read and write verbs. Update the description in `docs/rbac.md` to
reflect the actual permissions from
`0000_30_cluster-api_03_machine-api-migration-rbac-roles.yaml`, using the
`machine-api-migration` Role entry and its Machine/MachineSet permissions as the
reference point.

In `@manifests/0000_30_cluster-api_17_machine-api-migration-deployment.yaml`:
- Around line 26-69: The machine-api-migration Deployment container spec is
missing required hardening and health settings. Update the machine-api-migration
pod/container spec to add an explicit securityContext with
readOnlyRootFilesystem, allowPrivilegeEscalation disabled, and capabilities
dropping all, and set automountServiceAccountToken to false if the controller
does not need the token. Also add resource limits alongside the existing
requests, and define livenessProbe and readinessProbe for the healthz endpoint
exposed by the machine-api-migration container on port 9440.
🪄 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: af553a64-1e21-4c5f-92f4-9de4822110af

📥 Commits

Reviewing files that changed from the base of the PR and between f2f0de3 and bd4c791.

📒 Files selected for processing (12)
  • docs/rbac.md
  • manifests/0000_30_cluster-api_02_machine-api-migration-service-account.yaml
  • manifests/0000_30_cluster-api_03_machine-api-migration-rbac-roles.yaml
  • manifests/0000_30_cluster-api_03_rbac_roles.yaml
  • manifests/0000_30_cluster-api_04_machine-api-migration-rbac-bindings.yaml
  • manifests/0000_30_cluster-api_10_capi-controllers-servicemonitor.yaml
  • manifests/0000_30_cluster-api_10_machine-api-migration-metrics-service.yaml
  • manifests/0000_30_cluster-api_10_machine-api-migration-servicemonitor.yaml
  • manifests/0000_30_cluster-api_10_metrics-service.yaml
  • manifests/0000_30_cluster-api_12_allow-ingress-to-metrics-operators.yaml
  • manifests/0000_30_cluster-api_17_deployment.yaml
  • manifests/0000_30_cluster-api_17_machine-api-migration-deployment.yaml
💤 Files with no reviewable changes (1)
  • manifests/0000_30_cluster-api_10_capi-controllers-servicemonitor.yaml

Comment thread docs/rbac.md
Comment on lines +26 to +69
spec:
serviceAccountName: machine-api-migration
containers:
- name: machine-api-migration
image: registry.ci.openshift.org/openshift:cluster-capi-operator
command:
- /machine-api-migration
args:
- --diagnostics-address=:8443
env:
- name: RELEASE_VERSION
value: "0.0.1-snapshot"
ports:
- containerPort: 8443
name: diagnostics
protocol: TCP
- containerPort: 9440
name: healthz
protocol: TCP
resources:
requests:
cpu: 10m
memory: 50Mi
terminationMessagePolicy: FallbackToLogsOnError
volumeMounts:
- name: metrics-cert
mountPath: /tmp/k8s-metrics-server/serving-certs
readOnly: true
nodeSelector:
node-role.kubernetes.io/control-plane: ""
priorityClassName: system-cluster-critical
restartPolicy: Always
tolerations:
- key: "node-role.kubernetes.io/master"
operator: "Exists"
effect: "NoSchedule"
- key: "node-role.kubernetes.io/control-plane"
operator: "Exists"
effect: "NoSchedule"
volumes:
- name: metrics-cert
secret:
defaultMode: 420
secretName: machine-api-migration-metrics-tls

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Add explicit securityContext, resource limits, and probes to the container spec.

This new Deployment lacks:

  • Pod/container securityContext (readOnlyRootFilesystem: true, allowPrivilegeEscalation: false, capabilities.drop: ["ALL"]). Note restricted-v2 SCC (referenced via the openshift.io/required-scc: restricted-v2 annotation) already drops all capabilities and disallows privilege escalation by default, but it does not enforce readOnlyRootFilesystem, so this must be set explicitly.
  • resources.limits (only requests are set).
  • livenessProbe/readinessProbe, despite exposing a healthz port on 9440.
  • automountServiceAccountToken: false (unless the controller genuinely needs the projected SA token via the pod itself rather than client libraries).

Static analysis flags the missing root-fs/security-context settings (Checkov CKV_K8S_20/CKV_K8S_23, Trivy KSV-0014/KSV-0118).

As per path instructions: "securityContext: runAsNonRoot, readOnlyRootFilesystem, allowPrivilegeEscalation: false", "Drop ALL capabilities, add only what is required", "Resource limits (cpu, memory) on every container", "Liveness + readiness probes defined", "automountServiceAccountToken: false unless needed".

🛡️ Proposed fix
     spec:
       serviceAccountName: machine-api-migration
+      automountServiceAccountToken: false
       containers:
       - name: machine-api-migration
         image: registry.ci.openshift.org/openshift:cluster-capi-operator
         command:
         - /machine-api-migration
         args:
           - --diagnostics-address=:8443
         env:
         - name: RELEASE_VERSION
           value: "0.0.1-snapshot"
         ports:
         - containerPort: 8443
           name: diagnostics
           protocol: TCP
         - containerPort: 9440
           name: healthz
           protocol: TCP
         resources:
           requests:
             cpu: 10m
             memory: 50Mi
+          limits:
+            cpu: 100m
+            memory: 100Mi
+        securityContext:
+          allowPrivilegeEscalation: false
+          readOnlyRootFilesystem: true
+          capabilities:
+            drop:
+              - ALL
+        livenessProbe:
+          httpGet:
+            path: /healthz
+            port: healthz
+        readinessProbe:
+          httpGet:
+            path: /readyz
+            port: healthz
         terminationMessagePolicy: FallbackToLogsOnError
🧰 Tools
🪛 Checkov (3.3.2)

[medium] 2-69: Containers should not run with allowPrivilegeEscalation

(CKV_K8S_20)


[medium] 2-69: Minimize the admission of root containers

(CKV_K8S_23)

🪛 Trivy (0.69.3)

[error] 29-53: Root file system is not read-only

Container 'machine-api-migration' of Deployment 'machine-api-migration' should set 'securityContext.readOnlyRootFilesystem' to true

Rule: KSV-0014

Learn more

(IaC/Kubernetes)


[error] 29-53: Default security context configured

container machine-api-migration in openshift-cluster-api namespace is using the default security context

Rule: KSV-0118

Learn more

(IaC/Kubernetes)


[error] 26-69: Default security context configured

deployment machine-api-migration in openshift-cluster-api namespace is using the default security context, which allows root privileges

Rule: KSV-0118

Learn more

(IaC/Kubernetes)

🤖 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 `@manifests/0000_30_cluster-api_17_machine-api-migration-deployment.yaml`
around lines 26 - 69, The machine-api-migration Deployment container spec is
missing required hardening and health settings. Update the machine-api-migration
pod/container spec to add an explicit securityContext with
readOnlyRootFilesystem, allowPrivilegeEscalation disabled, and capabilities
dropping all, and set automountServiceAccountToken to false if the controller
does not need the token. Also add resource limits alongside the existing
requests, and define livenessProbe and readinessProbe for the healthz endpoint
exposed by the machine-api-migration container on port 9440.

Sources: Path instructions, Linters/SAST tools

@stefanonardo

Copy link
Copy Markdown
Contributor Author

/retest

@openshift-ci

openshift-ci Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

@stefanonardo: 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/prow/e2e-aws-capi-techpreview bd4c791 link true /test e2e-aws-capi-techpreview

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.

Separate the two binaries into independent Deployments with dedicated
ServiceAccounts and least-privilege RBAC.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
manifests/0000_30_cluster-api_10_machine-api-migration-metrics-service.yaml (1)

12-20: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Remove the ineffective targetPort mapping for this headless Service.

With clusterIP: None, Kubernetes ignores targetPort; the Service port must already match the pod’s listening port. Keep the migration listener on 8443 and omit targetPort, or use a non-headless Service if named port remapping is required. (kubernetes.io)

Suggested cleanup
   - name: machine-api-migration-metrics
     port: 8443
-    targetPort: diagnostics
🤖 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 `@manifests/0000_30_cluster-api_10_machine-api-migration-metrics-service.yaml`
around lines 12 - 20, Update the Service definition for
machine-api-migration-metrics by removing the targetPort mapping while retaining
port 8443 and clusterIP: None, so the headless Service uses the pod’s listening
port directly.
🤖 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 `@manifests/0000_30_cluster-api_17_machine-api-migration-deployment.yaml`:
- Around line 54-55: Remove the control-plane nodeSelector entry from the
Deployment manifest, leaving only topology-neutral scheduling rules so the
workload can schedule on HyperShift.

In `@ocp-manifests-input/default/capi-controllers-deployment.yaml`:
- Around line 39-42: Update the generated capi-operator manifests.yaml to
replace the outdated diagnostics-o and healthz-o port references with the
renamed diagnostics and healthz names, matching the source deployment manifest
while preserving the existing port configuration.

---

Nitpick comments:
In `@manifests/0000_30_cluster-api_10_machine-api-migration-metrics-service.yaml`:
- Around line 12-20: Update the Service definition for
machine-api-migration-metrics by removing the targetPort mapping while retaining
port 8443 and clusterIP: None, so the headless Service uses the pod’s listening
port directly.
🪄 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: 128a92f8-b856-4904-bd2c-21119a1479de

📥 Commits

Reviewing files that changed from the base of the PR and between bd4c791 and deab05f.

📒 Files selected for processing (12)
  • docs/rbac.md
  • manifests/0000_30_cluster-api_02_machine-api-migration-service-account.yaml
  • manifests/0000_30_cluster-api_03_machine-api-migration-rbac-roles.yaml
  • manifests/0000_30_cluster-api_03_rbac_roles.yaml
  • manifests/0000_30_cluster-api_04_machine-api-migration-rbac-bindings.yaml
  • manifests/0000_30_cluster-api_10_capi-controllers-servicemonitor.yaml
  • manifests/0000_30_cluster-api_10_machine-api-migration-metrics-service.yaml
  • manifests/0000_30_cluster-api_10_machine-api-migration-servicemonitor.yaml
  • manifests/0000_30_cluster-api_10_metrics-service.yaml
  • manifests/0000_30_cluster-api_12_allow-ingress-to-metrics-operators.yaml
  • manifests/0000_30_cluster-api_17_machine-api-migration-deployment.yaml
  • ocp-manifests-input/default/capi-controllers-deployment.yaml
🚧 Files skipped from review as they are similar to previous changes (8)
  • manifests/0000_30_cluster-api_02_machine-api-migration-service-account.yaml
  • manifests/0000_30_cluster-api_10_machine-api-migration-servicemonitor.yaml
  • manifests/0000_30_cluster-api_10_metrics-service.yaml
  • manifests/0000_30_cluster-api_10_capi-controllers-servicemonitor.yaml
  • manifests/0000_30_cluster-api_04_machine-api-migration-rbac-bindings.yaml
  • docs/rbac.md
  • manifests/0000_30_cluster-api_03_machine-api-migration-rbac-roles.yaml
  • manifests/0000_30_cluster-api_03_rbac_roles.yaml

Comment on lines +54 to +55
nodeSelector:
node-role.kubernetes.io/control-plane: ""

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

Remove the control-plane node selector.

This hard requirement prevents the Deployment from scheduling on HyperShift, where these nodes are not available to this workload. Keep only topology-neutral scheduling rules unless this manifest is conditionally excluded for HyperShift.

Proposed fix
-      nodeSelector:
-        node-role.kubernetes.io/control-plane: ""

As per coding guidelines: “nodeSelector/affinity targeting control-plane nodes (breaks on HyperShift).”

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
nodeSelector:
node-role.kubernetes.io/control-plane: ""
🤖 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 `@manifests/0000_30_cluster-api_17_machine-api-migration-deployment.yaml`
around lines 54 - 55, Remove the control-plane nodeSelector entry from the
Deployment manifest, leaving only topology-neutral scheduling rules so the
workload can schedule on HyperShift.

Source: Coding guidelines

Comment on lines +39 to +42
name: diagnostics
protocol: TCP
- containerPort: 9440
name: healthz-o
name: healthz

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

rg -n 'diagnostics-o|healthz-o|targetPort: (diagnostics|healthz)|port: (diagnostics|healthz)' .

Repository: openshift/cluster-capi-operator

Length of output: 1564


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== target file context =="
nl -ba ocp-manifests-input/default/capi-controllers-deployment.yaml | sed -n '30,50p'

echo
echo "== stale port-name references =="
rg -n 'diagnostics-o|healthz-o' \
  capi-operator-manifests/default/manifests.yaml \
  manifests \
  ocp-manifests-input \
  pkg \
  --glob '!**/*.sum' || true

echo
echo "== nearby context in generated manifest =="
nl -ba capi-operator-manifests/default/manifests.yaml | sed -n '980,995p'

Repository: openshift/cluster-capi-operator

Length of output: 235


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== exact consumer references to renamed ports =="
rg -n 'targetPort: (diagnostics|healthz)|port: (diagnostics|healthz)|diagnostics-o|healthz-o' . \
  --glob '!**/node_modules/**' \
  --glob '!**/dist/**' \
  --glob '!**/build/**'

Repository: openshift/cluster-capi-operator

Length of output: 1613


Update the generated manifest capi-operator-manifests/default/manifests.yaml still references diagnostics-o/healthz-o; regenerate or patch it to match the renamed ports.

🤖 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 `@ocp-manifests-input/default/capi-controllers-deployment.yaml` around lines 39
- 42, Update the generated capi-operator manifests.yaml to replace the outdated
diagnostics-o and healthz-o port references with the renamed diagnostics and
healthz names, matching the source deployment manifest while preserving the
existing port configuration.

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

Labels

do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. 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.

2 participants