Date: 2026-01-27
Owner: codexops
Scope: Single VM (50 GB RAM) running control plane + worker; scale-out compatible.
The single-node design below is historical. The cluster now has drg-k8s.auth.home.lan as control plane and drg-k8s-worker-01.auth.home.lan as a dedicated worker. AutoCoder task workers and builds/tests use the worker host, including direct-session work; see AutoCoder worker placement.
- Minimal, safe, and reversible implementation.
- Use upstream-compatible tooling to allow future scale-out.
- Keep documentation and operations clear and auditable.
- Node role: One VM running control plane + worker.
- Install method:
kubeadm (upstream, scale-compatible).
- Runtime:
containerd.
- CNI: Calico (simple, widely supported).
- Ingress: NGINX Ingress Controller.
- Storage: local-path provisioner (single-node friendly).
- Add new VMs as workers using
kubeadm join.
- Optionally add additional control plane nodes to reduce single point of failure.
- Migrate storage to shared backend (e.g., NFS/Ceph) when multi-node workloads are needed.
- Replace local-path PVs gradually with network-backed PVs.
- The original single-VM design had a single point of failure; the cluster still has only one control-plane node.
- Local storage is not resilient across node loss.
- kubeadm selected for compatibility with future scale-out.
- Calico selected for simplicity and broad compatibility.
- Local-path storage selected to avoid external dependencies.