Dibbla Docs Get started Guides Workflows Changelog
Open Console
Self-host

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

SetupvCPUMemoryDisk
Single-node evaluation48 GiB60 GiB
3-node production4 per node8 GiB per node60 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.