RFC: multi-tenant control plane
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 11.5k
- Forks
- 1.4k
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 53
Description
Many k8s clusters are multi-tenant (for some definition of multi-tenant, probably requires more definition).
The list of functionality that should be isolated:
- dashboard
- stat
- tap
- inject
A user should only be able to see and interact with things that their roles allow them to.
What's the best way for us to work in these environments?
## Restrict control plane credentials
Take advantage of (most) users isolating in kubernetes with namespaces. Install a control plane to a specific namespace and restrict its roles (maybe remove ClusterRoles?).
## Delegate credentials
This is very similar to how the latest kubernetes-dashboard is working. By default, there is a base set of permissions that anyone can use (mostly nothing). When passed a user's token, the dashboard passes their permissions through and controls visibility that way.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
This RFC names dashboard, stat, tap, and inject as control-plane functionality but does not identify files, tests, or entry points. Before implementation, define the tenant and role boundaries and decide between namespace-scoped credentials and delegated user credentials; done means users can only see and interact with resources their roles allow.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kubernetes
- Domain
- authorization, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100