Architecture Decision Record

ADR 007: Use Talos Linux as the Kubernetes OS

An immutable, API-driven, SSH-less OS — chosen to make nodes disposable and eliminate configuration drift.

Status: Accepted  ·  Date: Nov 2025  ·  ← All ADRs


Context

I needed an OS to run Kubernetes on bare-metal Proxmox VMs. Options considered:

The cluster would be running production-like workloads (Vault, Postgres, ArgoCD, Istio) and I wanted the OS layer to be as boring and minimal as possible.


Decision

Use Talos Linux for all Kubernetes nodes (control plane and workers).


Reasoning


Tradeoffs


Outcome

The cluster has been running stably. Upgrades are done by regenerating machine configs and applying them via talosctl — no manual steps on the nodes. I wish I would have made this decision in the beginning!

The k0s experience that drove this decision is written up in Lessons Learned.