# home-network-k3s-impl Implementation of the home k3s + Longhorn platform. This repo holds the **reconciled artifacts** (Flux config, Kustomize overlays, KubeVirt/Helm manifests, ServiceDefinitions, Kyverno policies, Chainsaw conformance tests, CI). It is driven by — and subordinate to — the **read-only specification** at [`../home-network-k3s`](../home-network-k3s). ## Rules (from the spec — non-negotiable) - **The spec is read-only.** Never modify anything under `../home-network-k3s`. Implement against it; escalate spec problems, don't edit them (spec `AGENTS.md` §11, R-TEST-06). - **Done = a green, reproducible, requirement-tagged conformance test** — never "merged," never a manual demo (spec `docs/14`, `agents/definition-of-done.md`). - **No work on `main`.** Every change is a feature branch merged into `main` (spec `CONTRIBUTING.md`). - **No plaintext secrets** — SOPS-encrypted only (spec `docs/07`). - **Phase discipline** — only build what the active roadmap phase authorizes (spec `roadmap/phases.md`). ## Layout ``` platform/ platform services (Flux HelmReleases/Kustomizations): cilium, longhorn, cert-manager, externaldns, gateway, monitoring, velero, kubevirt, image-automation, keycloak, oauth2-proxy, kyverno/ apps/ application workloads, one dir per catalog service catalog/ ServiceDefinition entries (the onboarding surface) schemas/ ServiceDefinition JSON Schema + renderer contract clusters/ Flux entrypoints + dev/ and prod/ overlays conformance/ Chainsaw behavior/conformance suite + harness + coverage report .gitea/ Gitea Actions CI (lint · schema · Kyverno L0 · Chainsaw trigger · merge gate) ``` Current phase: **Phase 0 — Foundations** (repo, CI, ServiceDefinition schema, conformance harness, Kyverno L0 gate). No cluster exists yet; Phase 1 (cluster bring-up) is not authorized.