Skip to content

KFLUXVNGD-1306 remove crossplane from Lightwell clusters - #13832

Open
amisstea wants to merge 1 commit into
redhat-appstudio:mainfrom
amisstea:KFLUXVNGD-1306
Open

KFLUXVNGD-1306 remove crossplane from Lightwell clusters#13832
amisstea wants to merge 1 commit into
redhat-appstudio:mainfrom
amisstea:KFLUXVNGD-1306

Conversation

@amisstea

@amisstea amisstea commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

What

  • Stop deploying the Crossplane control plane to the Lightwell clusters by routing them to empty overlays.

Clusters affected: lightwell-dev, kflux-lw-p01

KFLUXVNGD-1306

Why

Ephemeral clusters cannot currently be provisioned from the Lightwell clusters without additional configuration. Remove the Crossplane control plane until there is clear guidance for supporting ephemeral namespaces and explicit cost-management consideration for ephemeral clusters provisioned through OpenShift CI cluster profiles.

Validation

  • kustomize build --enable-helm components/crossplane-control-plane/staging/lightwell-dev passes and renders no resources.
  • kustomize build --enable-helm components/crossplane-control-plane/production/kflux-lw-p01 passes and renders no resources.
  • The staging-downstream and production-downstream ArgoCD overlays render successfully.
  • The render-diff “build error” is a known false positive caused by valid empty Kustomize output.

Risk Assessment

Risk Level: Low
What could go wrong: An unrecognized dependency on Crossplane could stop reconciliation or disrupt ephemeral-cluster provisioning. This is unlikely because provisioning is not currently functional without additional configuration.
Rollback: Revert this PR and resync the Crossplane applications. Restore any deleted Crossplane custom resources manually if necessary.
Blast radius: lightwell-dev and kflux-lw-p01 only.

Assisted-by: Codex (GPT-5)
Signed-off-by: amisstea <amisstea@redhat.com>
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Kustomize Render Diff

Comparing 28c201bf05fd7a6b1f

Component Environment Changes
components/crossplane-control-plane/production/kflux-lw-p01 production build error
components/crossplane-control-plane/staging/lightwell-dev staging build error

Total: 2 components, +0 -0 lines

📋 Full diff available in the workflow summary and as a downloadable artifact.

@qodo-for-redhat-appstudio

Copy link
Copy Markdown

PR Summary by Qodo

Remove Crossplane from Lightwell clusters

⚙️ Configuration changes 🕐 10-20 Minutes

Grey Divider

AI Description

• Routes both Lightwell clusters to dedicated Crossplane overlays.
• Uses empty overlays so automated Argo CD pruning removes Crossplane resources.
Diagram

graph TD
  Inventory["Registered Clusters"] --> AppSet["Crossplane AppSet"] --> Route{"Lightwell Cluster"} -->|Yes| Empty["Empty Overlay"] --> Sync["Argo CD Sync"] --> Cluster["Member Cluster"]
  Route -->|No| Managed["Crossplane Overlay"] --> Sync
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Exclude Lightwell from the ApplicationSet
  • ➕ Avoids maintaining empty placeholder overlays.
  • ➕ Removes the generated Crossplane applications entirely.
  • ➖ Application deletion may not prune deployed resources without verified cascading behavior.
  • ➖ Requires separate cleanup and more complex generator exclusion logic.
  • ➖ Does not preserve an explicit disabled state for each cluster.

Recommendation: Keep the PR's empty-overlay approach. It follows the existing per-cluster routing model and lets automated Argo CD pruning remove managed Crossplane resources deterministically before maintaining an explicitly empty desired state.

Files changed (3) +10 / -0

Other (3) +10 / -0
crossplane-control-plane.yamlRoute Lightwell clusters to dedicated Crossplane overlays +4/-0

Route Lightwell clusters to dedicated Crossplane overlays

• Adds cluster-directory overrides for lightwell-dev and kflux-lw-p01. Their generated Argo CD applications now resolve to empty cluster-specific overlays instead of the shared Crossplane base.

argo-cd-apps/base/member/infra-deployments/crossplane-control-plane/crossplane-control-plane.yaml

kustomization.yamlDisable Crossplane resources on production Lightwell +3/-0

Disable Crossplane resources on production Lightwell

• Adds an empty Kustomization for kflux-lw-p01. Argo CD renders no Crossplane resources and can prune the cluster's existing managed deployment.

components/crossplane-control-plane/production/kflux-lw-p01/kustomization.yaml

kustomization.yamlDisable Crossplane resources on development Lightwell +3/-0

Disable Crossplane resources on development Lightwell

• Adds an empty Kustomization for lightwell-dev. Argo CD renders no Crossplane resources and can prune the cluster's existing managed deployment.

components/crossplane-control-plane/staging/lightwell-dev/kustomization.yaml

@qodo-for-redhat-appstudio

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Tip of the day
💡 Did you know, you can turn on the rule miner and Qodo learns your standards from review history

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

@codecov

codecov Bot commented Sep 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 60.38%. Comparing base (28c201b) to head (f5116e5).
⚠️ Report is 34 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main   #13832   +/-   ##
=======================================
  Coverage   60.38%   60.38%           
=======================================
  Files          24       24           
  Lines        1628     1628           
=======================================
  Hits          983      983           
  Misses        563      563           
  Partials       82       82           
Flag Coverage Δ
go 60.38% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@hugares hugares left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

/lgtm

@openshift-ci

openshift-ci Bot commented Sep 2, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: amisstea, hugares

The full list of commands accepted by this bot can be found here.

The pull request process is described 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 added the approved label Sep 2, 2026
@eedri

eedri commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Risk Assessment

AI calculated Risk — based on code changes and PR description.
Override this by adding your own ## Risk Assessment section to the PR description.

Risk Level: Very High
Description: This change removes the Crossplane control plane deployment from two clusters, including a production cluster, by configuring an empty Kustomization for them. This is very high risk because if Crossplane was actively managing external infrastructure, its removal without prior de-provisioning of those resources could lead to orphaned cloud resources or service disruption.
Rollback: Revert this PR to restore the previous Argo CD application configuration and remove the empty Kustomization files, which would re-enable Crossplane deployment if it was previously configured.

@svatares

svatares commented Sep 3, 2026

Copy link
Copy Markdown
Member

Production Approval Record

Field Value
Action APPROVED
Reviewer @svatares
Timestamp 2026-09-03T14:20:49.392Z
Risk Level low

Approved

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants