feat(self-managed): isolate multiple control planes - #1483
Draft
mikeyrcamp wants to merge 1 commit into
Draft
Conversation
Derive control-plane-specific names, namespaces, routes, migration state, and operator scope from a validated identity while preserving legacy single-plane behavior. Make secret mirroring converge safely during startup and concurrent updates, retain only intentional shared resources, and clean up plane-specific hook RBAC after uninstall. Add unit, render, lifecycle, and local-cluster regression coverage. Closes #1481 Signed-off-by: Mike Camp <mcamp@nvidia.com>
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueComment |
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Customer Summary
Self-managed NVCF can run multiple isolated control planes in one Kubernetes
cluster by assigning each plane a stable identity and unique domain.
TL;DR
Self-managed NVCF deployments can run multiple independent control planes in
one Kubernetes cluster without namespace or resource collisions. A validated
control-plane identity scopes control-plane and compute-plane namespaces,
release names, routes, data-store state, operator watches, and lifecycle
operations. An empty identity preserves the existing single-control-plane
behavior.
Additional Details
NVCFBackendCRD in an explicit prerequisite release so removing one plane cannot remove the API used by another.and teardown operate only on namespaces carrying the matching ownership
label.
the selected plane. Require the canonical per-plane name for managed issuers
while continuing to support shared external issuers.
Customer Release Notes
Self-managed NVCF supports multiple isolated control planes in one Kubernetes
cluster by assigning each plane a stable identity and unique domain.
Plan Summary
global.controlPlane.id.deleting namespaces and retained managed issuers.
Usage
Configure a distinct identity and domain for each named control plane:
Install shared cert-manager, Gateway API, and observability prerequisites once,
then use the selected environment for every lifecycle command:
Repeat with a different ID, domain, and environment for the second plane. See
the current installation guide and compute-plane README for the complete
command sequence and lifecycle safeguards.
For the Reviewer
Please focus on:
controlPlane.idis empty;derivation;
For QA
Is QA needed? Yes.
Source checks run on the proposed PR tree:
All checks passed except the full targeted Bazel selection on macOS. Twelve of
13 Bazel test targets passed. The remaining target failed only the unchanged
TestMetricsBackwardCompatibilitycheck because the Darwin process collectordid not emit
process_virtual_memory_bytesorprocess_resident_memory_bytes. The direct Go suite and a focused Bazel rerunof the changed control-plane and Secret-mirroring regressions passed. Linux CI
is pending.
An earlier reference implementation was exercised in a local Kubernetes
cluster with:
Those results validate the design and regression scenarios. They are not
evidence that the final PR commit or its published artifacts have passed the
same live smoke test.
Notes
mainbranch only. It does not modify orbackport a released-version branch or package.
helm-nvcf-pkichart. Named issuer live behavior requires publishing thechart change and updating the stack pin through the normal release process.
first-party stack, charts, CLI, and images, followed by a non-production
two-plane install, staged upgrade, and uninstall smoke test.
Issues
Closes #1481
Related Pull Requests
None yet.
Dependencies
No new or updated third-party dependencies. No NOTICE change is required.
Checklist