docs(compute-plane): derive release names — the kubeconfig Secret is computeplane-cluster-admin-kubeconfig#40
Conversation
…computeplane-cluster-admin-kubeconfig Follow-up from the cozystack/cozystack#3280 review: the aggregated API rebuilds HelmRelease specs without spec.releaseName, so neither the module nor the cluster HelmRelease may set it — release names derive from object names. The stable external contract is therefore the cluster HelmRelease object name computeplane-cluster, and the Kamaji admin-kubeconfig Secret the placement: ComputePlane injection consumes is computeplane-cluster-admin-kubeconfig. Assisted-By: Claude Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Code Review
This pull request updates the compute-plane design proposal to reflect that spec.releaseName is no longer set on HelmRelease objects, meaning release names are now derived from object names. This changes the cluster release name to computeplane-cluster and its admin kubeconfig secret to computeplane-cluster-admin-kubeconfig. Feedback was provided to correct an obsolete sentence in the document that still references the old -module suffix and the reservation of the computeplane name.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
|
|
||
| 1. When a tenant has the module enabled, the **tenant chart** renders the module `HelmRelease` (name `computeplane`, in the tenant namespace on the management cluster) whose `chartRef` points at the **`extra/computeplane`** chart's `ExternalArtifact`. Its own Helm release takes the `-module` suffix so the canonical release name `computeplane` stays reserved for the cluster release below. | ||
| 2. The **`extra/computeplane` chart** in turn renders the cluster `HelmRelease` (object name `computeplane-cluster`, `spec.releaseName: computeplane`) whose `chartRef` points at the **source-only re-sourced `apps/kubernetes`** `ExternalArtifact`, carrying the operator-fixed values. The release name `computeplane` is what makes Kamaji write the admin kubeconfig to the `computeplane-admin-kubeconfig` Secret — the contract `placement: ComputePlane` apps consume. | ||
| 2. The **`extra/computeplane` chart** in turn renders the cluster `HelmRelease` (object name `computeplane-cluster`) whose `chartRef` points at the **source-only re-sourced `apps/kubernetes`** `ExternalArtifact`, carrying the operator-fixed values. Neither `HelmRelease` sets `spec.releaseName` — the aggregated API rebuilds `HelmRelease` specs without that field, so both releases must derive their names from object names. The derived cluster release name `computeplane-cluster` is what makes Kamaji write the admin kubeconfig to the `computeplane-cluster-admin-kubeconfig` Secret — the contract `placement: ComputePlane` apps consume. |
There was a problem hiding this comment.
The changes in this PR remove spec.releaseName from both HelmRelease objects, meaning their release names are now derived directly from their object names (computeplane for the module, and computeplane-cluster for the cluster).\n\nHowever, the preceding sentence in item 1 (line 81) still states:\n> "Its own Helm release takes the -module suffix so the canonical release name computeplane stays reserved for the cluster release below."\n\nThis is now obsolete and incorrect because:\n1. The module's Helm release name no longer takes the -module suffix (it is now computeplane).\n2. The canonical name computeplane is no longer reserved for the cluster release (which is now computeplane-cluster).\n\nPlease update line 81 to remove or correct this sentence to match the new design.
Follow-up amendment from the cozystack/cozystack#3280 review: the aggregated API rebuilds HelmRelease specs without
spec.releaseName, so neither the module nor the cluster HelmRelease may set it — release names derive from object names, like every other tenant module. The stable external contract becomes the cluster HelmRelease object namecomputeplane-cluster, and the Secret the deferredplacement: ComputePlaneinjection consumes iscomputeplane-cluster-admin-kubeconfig. The §1 invariant is restated accordingly (including why an explicit release name is unrepresentable), and all Secret references are updated.