Architecture Decision Records
Every meaningful component in Atlas has a corresponding ADR explaining why it was picked over its alternatives. ADRs are numbered, immutable, and only superseded — never silently rewritten. The numbering follows the causal order of the decisions: first the orchestrator, then the OS, then how it is provisioned and deployed, then the platform building blocks layered on top.
Index
Foundations
| # | Title |
|---|---|
| 001 | Kubernetes over Docker (Swarm / Compose) |
| 002 | Talos Linux over k3s on Debian |
IaC and GitOps
| # | Title |
|---|---|
| 003 | OpenTofu over Terraform and Pulumi |
| 004 | Argo CD over Flux |
Deployed solutions
| # | Title |
|---|---|
| 005 | Traefik as ingress controller |
| 006 | cert-manager for TLS certificates |
| 007 | local-path-provisioner + Restic for storage and backup |
| 008 | Authentik as OIDC identity provider |
| 009 | Infisical as secret manager |
| 010 | Harbor as image registry |
| 011 | Prometheus + Loki + Alertmanager + Grafana for observability |
| 013 | SonarQube for code quality (Postgres via CloudNativePG) |
| 014 | Home Assistant for home automation |
Bootstrap orchestration
| # | Title |
|---|---|
| 012 | In-cluster automation owns the identity/secret bootstrap handshake (L3) |