You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Helm surface for multi-tenancy: a multitenancy.enabled toggle (default off, no-op) that installs the admission webhook and two opinionated tenant RBAC ClusterRoles. Story 5 of #416.
Review-required, not merge-by-morning. This PR is chart/RBAC YAML with no Go test surface. The coder gate is currently blind to non-Go changes (#1072), so a GATE-PASS here is hollow. Human review before merge.
Feature Description
Helm surface for multi-tenancy: a
multitenancy.enabledtoggle (default off, no-op) that installs the admission webhook and two opinionated tenant RBAC ClusterRoles. Story 5 of #416.Proposed Solution
charts/llmkube/values.yaml:multitenancy.enabled: false.charts/llmkube/templates/webhook.yaml: theValidatingWebhookConfiguration, rendered only when enabled.charts/llmkube/templates/rbac/tenant-role.yaml(llmkube-tenant: read own-ns Model/InferenceService/UsageReport/TokenBudget; create/update Model + InferenceService) andtenant-admin-role.yaml(superset; manage own-ns GPUQuota, bind TokenBudget). Namespace-scoped via RoleBinding, not ClusterRoleBinding.make check-helm-rbac(role.yaml union across llmkube + foreman ClusterRoles must stay in sync).Acceptance Criteria
helm templatewithmultitenancy.enabled=falserenders no webhook and no tenant roles (default is a no-op).=true, webhook + both ClusterRoles render and lint (helm lint,make check-helm-rbac).Dependencies
Note
Review-required, not merge-by-morning. This PR is chart/RBAC YAML with no Go test surface. The coder gate is currently blind to non-Go changes (#1072), so a GATE-PASS here is hollow. Human review before merge.
Priority