Skip to main content

Getting Started

Install the chart and onboard your first tenant in under five minutes.


Prerequisitesโ€‹

ToolMinimum version
Kubernetes1.24+
Helm3.10+
kubectl1.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โ€‹