Skip to content

feat(charts): control-plane namespace as the first tenant-isolation dial#28

Merged
stxkxs merged 1 commit into
mainfrom
feat/tenant-control-plane-namespace-dial
May 31, 2026
Merged

feat(charts): control-plane namespace as the first tenant-isolation dial#28
stxkxs merged 1 commit into
mainfrom
feat/tenant-control-plane-namespace-dial

Conversation

@stxkxs

@stxkxs stxkxs commented May 31, 2026

Copy link
Copy Markdown
Member

Makes where a tenant's control-plane CRs (Platform/BudgetPolicy/ModelGateway/AgentFleet/EvalSuite) land a value — controlPlaneNamespace, default eks-agent-platform — instead of the implicit helm release namespace.

This is the "template you grow with" move: the shared-namespace default is a degenerate case of the scalable model, so a tenant graduates to a dedicated control-plane namespace (eap-tenant-<name>) by a value change, never a migration. Works because the Tenant CR is cluster-scoped (stable identity anchor) and the operator watches Platform cluster-wide (placement is policy, not a constraint). Control-plane CRs stay platform-owned — out of the tenant's workload namespace + reach.

Adds docs/architecture/tenant-isolation-tiers.md documenting the full trajectory (shared → dedicated CP ns → vcluster → dedicated cluster) and the no-migration promotion path. Verified: default → eks-agent-platform, override moves all CRs wholesale, lint clean.

Make where a tenant's control-plane CRs (Platform/BudgetPolicy/ModelGateway/
AgentFleet/EvalSuite) land a value — `controlPlaneNamespace`, default
`eks-agent-platform` — instead of the implicit helm release namespace. This is
the "template you grow with" move: the shared-namespace default is a degenerate
case of the scalable model, so a tenant graduates to a dedicated control-plane
namespace (eap-tenant-<name>) by a value change, never a migration.

It works because the Tenant CR is cluster-scoped (stable identity anchor) and
the operator watches Platforms cluster-wide (placement is policy, not a
constraint). Control-plane CRs stay in a platform-owned namespace, out of the
tenant's workload namespace and reach — the privilege-escalation footgun of
co-locating boundary definitions with the workloads they govern.

Adds docs/architecture/tenant-isolation-tiers.md documenting the full
trajectory (shared → dedicated CP ns → vcluster → dedicated cluster) and the
no-migration promotion path. Verified: default renders to eks-agent-platform,
override moves all CRs wholesale, lint clean.
@stxkxs stxkxs merged commit b258179 into main May 31, 2026
15 checks passed
@stxkxs stxkxs deleted the feat/tenant-control-plane-namespace-dial branch May 31, 2026 18:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant