<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Architecture decision records (homelab) :: Workspace Docs</title><link>https://samplayskeys.github.io/Workspace/homelab/planning/adrs/index.html</link><description>ADRs capture decisions that are stable enough to reference later, with context and trade-offs. They supplement the narrative Decisions page.&#10;Document Status Per-environment Git branches via Komodo ResourceSync Accepted Baremetal Docker Host OS Selection Proposed Container Runtime Tradeoffs Proposed Skip local Docker registry, focus on git pipeline Accepted Docker vs Kubernetes for an Orchestration platform Inconclusive Tailnet-per-environment with declarative node sharing Rejected Workload isolation in a single tailnet — access pools Proposed</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 26 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://samplayskeys.github.io/Workspace/homelab/planning/adrs/index.xml" rel="self" type="application/rss+xml"/><item><title>ADR: Tailnet-per-environment (Prod / Test / Dev) with declarative node sharing</title><link>https://samplayskeys.github.io/Workspace/homelab/planning/adrs/0006-tailnet-per-environment/index.html</link><pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate><guid>https://samplayskeys.github.io/Workspace/homelab/planning/adrs/0006-tailnet-per-environment/index.html</guid><description>Status Rejected. The homelab will not split Prod/Test/Dev into separate tailnets. Environment separation stays as it is today: a single tailnet with tag-based grants.&#10;The investigation is retained in full because the rejection is the useful part — it documents why an appealing structural-isolation story doesn’t survive contact with an already-working Services deployment.</description></item><item><title>ADR: Workload isolation in a single tailnet — access pools</title><link>https://samplayskeys.github.io/Workspace/homelab/planning/adrs/0007-workload-tailnet-separation/index.html</link><pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate><guid>https://samplayskeys.github.io/Workspace/homelab/planning/adrs/0007-workload-tailnet-separation/index.html</guid><description>Status Proposed. Direction settled: workload/dev traffic stays in the current tailnet, separated by ACLs organized as access pools. The separate-tailnet option is deferred to a named trigger, not discarded.&#10;Extends ADR-0006, which rejected splitting Prod/Test/Dev into separate tailnets. That investigation’s useful finding was that the boundary axis was wrong, not the boundary idea. This ADR takes the next step of that finding: separation of workload from homelab is real, but the mechanism is pools within one boundary, with structural separation preserved as an off-ramp.</description></item><item><title>ADR: Orchestration Model — Docker-native vs Kubernetes/ArgoCD for the Homelab</title><link>https://samplayskeys.github.io/Workspace/homelab/planning/adrs/0005-docker-vs-k8s-orchestration/index.html</link><pubDate>Tue, 25 Aug 2026 00:00:00 +0000</pubDate><guid>https://samplayskeys.github.io/Workspace/homelab/planning/adrs/0005-docker-vs-k8s-orchestration/index.html</guid><description>Context The homelab currently standardizes on Docker (rootful, on Fedora Server baremetal hosts) managed through Komodo for GitOps. The prior narrative decision (“Komodo over Kubernetes (K3s + ArgoCD)” in planning/decisions.md) chose Docker-native Komodo over a K3s + ArgoCD stack on the grounds of complexity, risk tolerance, and concept alignment with existing familiarity with compose files.</description></item><item><title>ADR: Skip local Docker registry, focus on git pipeline</title><link>https://samplayskeys.github.io/Workspace/homelab/planning/adrs/0004-local-registry-skip/index.html</link><pubDate>Wed, 19 Aug 2026 00:00:00 +0000</pubDate><guid>https://samplayskeys.github.io/Workspace/homelab/planning/adrs/0004-local-registry-skip/index.html</guid><description>Context The homelab needs a strategy for managing container images between the local environment and production. Initial considerations included running a local container registry (Artifactory/Lightwell analog) or relying on Docker Hub with version pinning. The homelab already uses Komodo GitOps, GitHub Actions for rendering, and Ansible validation playbooks.&#10;Goals:&#10;Avoid infrastructure overhead — A local registry adds a running service, storage management, and maintenance burden for a feature (offline access) that isn’t actually required. Leverage existing pipeline investment — GitHub Actions, Ansible validation, and Komodo ResourceSync are already in place and can be extended to cover image governance. Security evaluation through PR process — Image scanning and review can happen in Git before anything gets deployed, rather than after images sit in a registry. Version pinning is already the pattern — Komodo configs and Git branches already provide effective version control; a registry would be redundant. Decision Skip running a local Docker registry as a stop-gap. Instead:</description></item><item><title>ADR: Baremetal Docker Host OS Selection</title><link>https://samplayskeys.github.io/Workspace/homelab/planning/adrs/0002-baremetal-host-os/index.html</link><pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate><guid>https://samplayskeys.github.io/Workspace/homelab/planning/adrs/0002-baremetal-host-os/index.html</guid><description>Context The homelab needs a host OS for baremetal Docker nodes (LenovoMini 1 for Prod, LenovoMini 2 for Test, and the DevDocker VM on ProxMox). Requirements:&#10;RPM/DNF-based — user preference, already familiar with the ecosystem. Komodo GitOps compatibility — Periphery agent must be able to manage container workloads. Low-maintenance — set once and forget; not something to constantly troubleshoot. Easily automatable — host provisioning should be reproducible via Ansible, including Periphery agent setup. Options Considered Host OS Option Release Cadence Support Window Notes Fedora Server ~6mo ~13mo Latest kernel + tooling, frequent upgrades Rocky / Alma Linux Major (9.x) ~10yr RHEL-compatible, boring &amp; stable Fedora CoreOS Auto-updating streams Per stream Immutable, no package management at runtime CentOS Stream Rolling between RHEL releases Continuous Between Fedora and RHEL Container Runtime Factor Docker Podman Komodo Periphery support First-class (native socket or API) Rough — community workarounds only (DOCKER_HOST to socket emulation) Rootless Available (opt-in via dockerd-rootless-setuptool.sh) Built-in, rootless by default Compose Docker Compose v2 podman-compose or podman play kube Research Findings Podman + Komodo Compatibility After investigation, Podman support in Komodo relies on workarounds:</description></item><item><title>ADR: Container Runtime Tradeoffs — Docker (Rootful), Docker (Rootless), and Podman</title><link>https://samplayskeys.github.io/Workspace/homelab/planning/adrs/0003-container-runtime-tradeoffs/index.html</link><pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate><guid>https://samplayskeys.github.io/Workspace/homelab/planning/adrs/0003-container-runtime-tradeoffs/index.html</guid><description>Context Selecting a container runtime for baremetal Docker hosts involves balancing security, operational convenience, and tooling compatibility. This ADR breaks down three approaches and the fundamental tension between central-socket management and daemonless isolation.&#10;The host OS decision is handled in ADR 0002: Baremetal Docker Host OS Selection.&#10;Runtime Options Docker (Rootful) The classic model: dockerd runs as root, exposes /var/run/docker.sock.</description></item><item><title>ADR: Per-environment Git branches via Komodo ResourceSync</title><link>https://samplayskeys.github.io/Workspace/homelab/planning/adrs/0001-komodo-resourcesync-branch-per-environment/index.html</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://samplayskeys.github.io/Workspace/homelab/planning/adrs/0001-komodo-resourcesync-branch-per-environment/index.html</guid><description>Context The homelab uses Komodo with ResourceSync to declare servers, stacks, deployments, and related resources from Git (an “app-of-apps” style flow: Git remains the audit trail; Komodo reconciles).&#10;Goals:&#10;main shows the whole picture — dev/, test/, and prod/ (or equivalent komodo/{dev,test,prod}/) layouts exist together on main so reviews and long-lived docs match reality after merges. Per-environment steering — each environment’s sync can follow main or follow a named branch (for example to soak a stack change in Dev before it lands on main). Homelab-realistic ergonomics — accept some manual merge hygiene instead of building full release automation up front. An earlier sketch of this approach lived in wip/komodo-artifact-templates/scratch/branch_management_ideas.md.</description></item></channel></rss>