0002. No Kubernetes
Status: accepted, 2026-10-09
Context
apps needs to place containers on servers, share servers between teams with quotas and let teams bring
their own servers. Kubernetes (or k3s, Nomad) does scheduling, but the target servers start at 1 vCPU /
4 GB, self-hosters would have to run and upgrade a cluster, and the problems Kubernetes solves at scale
(thousands of pods, autoscaling, service mesh) are not ours.
Decision
No Kubernetes, no Nomad. apps has its own small scheduler (place a workload on a node the team may use,
with enough free quota and capacity) and xvii-node drives Docker on each server.
Consequences
- We own placement, health checks, restarts and rollouts. They stay simple: one replica by default,
a handful at most, rolling replacement, no autoscaling.
- If one day we need a real orchestrator, Nomad is the closest model (nodes, namespaces, quotas); the
agent protocol is the seam where it would plug in.