K3s reference cluster
Bring up a generic k3s cluster ready to receive a Dibbla install.
k3s is a lightweight Kubernetes distribution that ships an ingress controller, a default StorageClass, and a service load balancer out of the box — making it the shortest path to a working Dibbla install on hardware you control.
This page is the cluster bootstrap. Once you’re done, continue to Install with Helm.
Sizing
| Setup | vCPU | Memory | Disk |
|---|---|---|---|
| Single-node evaluation | 4 | 8 GiB | 60 GiB |
| 3-node production | 4 per node | 8 GiB per node | 60 GiB per node |
These numbers are for the cluster + Dibbla + a few small apps. Heavy BuildKit usage benefits from more CPU and faster disk.
Single-node install
On your server (Linux, root or sudo):
curl -sfL https://get.k3s.io | sh -
This installs k3s as a systemd service, sets up Traefik as the ingress controller, configures local-path as the default StorageClass, and registers ServiceLB to give LoadBalancer services external IPs.
Verify:
sudo k3s kubectl get nodes
sudo k3s kubectl get pods -A
To use kubectl from your laptop:
scp root@your-server:/etc/rancher/k3s/k3s.yaml ~/.kube/config-k3s
# Edit ~/.kube/config-k3s and replace `127.0.0.1` with your server's IP
export KUBECONFIG=~/.kube/config-k3s
kubectl get nodes
Multi-node install
On the first node (server):
curl -sfL https://get.k3s.io | sh -
sudo cat /var/lib/rancher/k3s/server/node-token # save this
On each agent node, with the token from above:
curl -sfL https://get.k3s.io | K3S_URL=https://<server-ip>:6443 K3S_TOKEN=<token> sh -
Verify from the server:
sudo k3s kubectl get nodes
Install cert-manager
The Dibbla chart doesn’t include cert-manager. Install it once per cluster:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/latest/download/cert-manager.yaml
kubectl -n cert-manager wait --for=condition=Available --timeout=180s deployment --all
Then create a ClusterIssuer — see the example on the Helm install page.
DNS
Point a wildcard A record at your server’s public IP:
*.example.com. IN A <your-server-ip>
example.com. IN A <your-server-ip>
The in-cluster proxy routes by Host header, so the wildcard is enough — you don’t need to create per-app DNS records as you deploy apps.
Helm values overrides for k3s
When you reach the Helm install, override the ingress class to match k3s’ bundled Traefik:
api-gateway:
ingress:
type: traefik
className: traefik
deploy-api:
ingressClass: traefik
The rest of the minimum values.yaml applies as-is.
Next
Continue to Install with Helm to deploy the platform onto your new cluster.