Getting Started
Install the chart and onboard your first tenant in under five minutes.
Prerequisitesโ
| Tool | Minimum version |
|---|---|
| Kubernetes | 1.24+ |
| Helm | 3.10+ |
| kubectl | 1.24+ |
You need cluster-admin access to create namespaces, RBAC resources, and network policies.
1. Add the Helm repositoryโ
helm repo add k8s-multitenant https://clouddrove.github.io/k8s-multitenant
helm repo update
Verify the chart is available:
helm search repo k8s-multitenant
2. Create a values fileโ
# values.yaml
tools:
create: true
namespace: k8s-tools
tenants:
- name: team-alpha
labels:
environment: production
cost-center: eng-platform
rbac:
subjects:
- kind: Group
name: team-alpha-admins
apiGroup: rbac.authorization.k8s.io
rbac:
create: true
serviceAccountName: default
resourceQuota:
enabled: true
default:
requests.cpu: "2"
requests.memory: 4Gi
limits.cpu: "4"
limits.memory: 8Gi
pods: "20"
services: "5"
networkPolicy:
enabled: true
vpcCidr: "10.0.0.0/8" # replace with your VPC/VNet CIDR
allowInternetEgress: false
3. Installโ
helm upgrade --install tenants k8s-multitenant/k8s-multitenant \
-f values.yaml \
-n platform-system --create-namespace
4. Verifyโ
# Namespace created
kubectl get namespace team-alpha
# ResourceQuota applied
kubectl get resourcequota -n team-alpha
# LimitRange applied
kubectl get limitrange -n team-alpha
# RBAC created
kubectl get role,rolebinding -n team-alpha
# NetworkPolicy created
kubectl get networkpolicy -n team-alpha
5. Add more tenantsโ
Edit values.yaml, add entries to the tenants list, then upgrade:
helm upgrade tenants k8s-multitenant/k8s-multitenant -f values.yaml
Helm reconciles the diff โ existing tenants are unchanged, new ones are created.
6. Uninstallโ
helm uninstall tenants -n platform-system
warning
Uninstalling removes all Helm-managed resources including the tenant namespaces. Migrate workloads first.
Next stepsโ
- Configuration โ full values reference
- Platform guides: EKS ยท AKS ยท GKE