From 253b6600f406d464f1f1badad05758ab8050a077 Mon Sep 17 00:00:00 2001 From: Keith Jackson Date: Sat, 15 Aug 2026 23:41:43 -0500 Subject: [PATCH] Initial skeleton: home-network-k3s implementation repo Phase 0 foundation shell (read-only spec at ../home-network-k3s). Top-level tree + rules; workstream agents fill their subtrees on feature branches. Co-Authored-By: Claude Opus 4.8 (1M context) --- .gitea/workflows/README.md | 3 +++ .gitignore | 28 ++++++++++++++++++++++++++++ README.md | 31 +++++++++++++++++++++++++++++++ apps/README.md | 3 +++ catalog/README.md | 3 +++ clusters/README.md | 3 +++ conformance/README.md | 3 +++ platform/README.md | 3 +++ platform/kyverno/README.md | 3 +++ schemas/README.md | 3 +++ 10 files changed, 83 insertions(+) create mode 100644 .gitea/workflows/README.md create mode 100644 .gitignore create mode 100644 README.md create mode 100644 apps/README.md create mode 100644 catalog/README.md create mode 100644 clusters/README.md create mode 100644 conformance/README.md create mode 100644 platform/README.md create mode 100644 platform/kyverno/README.md create mode 100644 schemas/README.md diff --git a/.gitea/workflows/README.md b/.gitea/workflows/README.md new file mode 100644 index 0000000..290666e --- /dev/null +++ b/.gitea/workflows/README.md @@ -0,0 +1,3 @@ +# .gitea/workflows + +_Placeholder — populated in Phase 0. See ../home-network-k3s (read-only spec)._ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..db86a1d --- /dev/null +++ b/.gitignore @@ -0,0 +1,28 @@ +# OS / editor +.DS_Store +*.swp +*~ +.idea/ +.vscode/ + +# Secrets — SOPS-encrypted only; never commit plaintext (spec docs/07) +*.dec.yaml +*.decrypted.* +*.key +age.key +*.kubeconfig +kubeconfig + +# IaC state / local runtime +.terraform/ +*.tfstate +*.tfstate.* +.terraform.lock.hcl +*.tfvars +!*.example.tfvars + +# Test / build artifacts +/results/ +/reports/ +*.junit.xml +coverage/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..fbb5ff1 --- /dev/null +++ b/README.md @@ -0,0 +1,31 @@ +# 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. diff --git a/apps/README.md b/apps/README.md new file mode 100644 index 0000000..00727d5 --- /dev/null +++ b/apps/README.md @@ -0,0 +1,3 @@ +# apps + +_Placeholder — populated in Phase 0. See ../home-network-k3s (read-only spec)._ diff --git a/catalog/README.md b/catalog/README.md new file mode 100644 index 0000000..2746f7c --- /dev/null +++ b/catalog/README.md @@ -0,0 +1,3 @@ +# catalog + +_Placeholder — populated in Phase 0. See ../home-network-k3s (read-only spec)._ diff --git a/clusters/README.md b/clusters/README.md new file mode 100644 index 0000000..7574723 --- /dev/null +++ b/clusters/README.md @@ -0,0 +1,3 @@ +# clusters + +_Placeholder — populated in Phase 0. See ../home-network-k3s (read-only spec)._ diff --git a/conformance/README.md b/conformance/README.md new file mode 100644 index 0000000..2251d00 --- /dev/null +++ b/conformance/README.md @@ -0,0 +1,3 @@ +# conformance + +_Placeholder — populated in Phase 0. See ../home-network-k3s (read-only spec)._ diff --git a/platform/README.md b/platform/README.md new file mode 100644 index 0000000..707e1b0 --- /dev/null +++ b/platform/README.md @@ -0,0 +1,3 @@ +# platform + +_Placeholder — populated in Phase 0. See ../home-network-k3s (read-only spec)._ diff --git a/platform/kyverno/README.md b/platform/kyverno/README.md new file mode 100644 index 0000000..3a86672 --- /dev/null +++ b/platform/kyverno/README.md @@ -0,0 +1,3 @@ +# platform/kyverno + +_Placeholder — populated in Phase 0. See ../home-network-k3s (read-only spec)._ diff --git a/schemas/README.md b/schemas/README.md new file mode 100644 index 0000000..e43dc3f --- /dev/null +++ b/schemas/README.md @@ -0,0 +1,3 @@ +# schemas + +_Placeholder — populated in Phase 0. See ../home-network-k3s (read-only spec)._