ArgoCD app-of-apps for the mymh.dev cloud clusters: vCluster definitions, platform components, and application manifests — per ADR-002 in platform-docs. This is the repo ArgoCD pulls from directly, hub-spoke, from Forgejo (on-prem) over WireGuard. Full project context, decisions, and runbooks live in platform-docs.
Find a file
2026-10-28 14:05:04 +01:00
apps Fix AVP plugin name version suffix and broken discover.find exit code 2026-10-28 12:57:56 +01:00
bootstrap Add argocd-vault-plugin sidecar (ADR-031), route kube-snake through it 2026-10-28 11:57:01 +01:00
platform Use ArgoCD's own image for AVP sidecars instead of busybox, gives them helm for free 2026-10-28 14:05:04 +01:00
LICENSE.md License: Added MIT License and updated README to reflect that. 2026-07-09 23:02:59 +02:00
README.md Docs: renamed homelab references to platform to better reflect a production system 2026-09-10 14:08:50 +02:00

platform-gitops — ArgoCD App-of-Apps

ArgoCD app-of-apps for the mymh.dev cloud clusters: vCluster definitions, platform components, and application manifests — per ADR-002 in platform-docs. This is the repo ArgoCD pulls from directly, hub-spoke, from Forgejo (on-prem) over WireGuard. Full project context, decisions, and runbooks live in platform-docs; this repo's own docs cover only how to use its tooling.

Repository structure

platform-gitops/
├─ apps/                    # ArgoCD Application manifests, synced by bootstrap/root-app.yaml
├─ bootstrap/               # Day-1.5 steps outside GitOps: bootstrap.sh, root app-of-apps, see ADR-019
├─ platform/                # Vendored/patched manifests for platform components (Traefik, CNPG, local-path-provisioner, ...)
├─ LICENSE.md
└─ README.md                # This file

Further structure (vCluster definitions, app manifests, .gitignore) lands once work starts here, per ADR-002 — "repos are created when they get content, not upfront."

Rules for this repo

  • No file — tracked or untracked — ever contains a real IP, MAC address, hostname, or credential. Environment-specific values are runtime parameters (env vars/CLI args), never persisted to disk in the repo.
  • No plaintext secrets, ever — secrets management mechanism (Vault / Sealed Secrets / SOPS) is an open decision tracked in platform-docs; until one is chosen, no secrets are committed here in any form.
  • One app-of-apps entry per vCluster (website, kube-snake, sauna, later training) plus platform components (Traefik, CNPG, Keycloak, Redis, Prometheus/Grafana) and app manifests. Currently synced via ArgoCD's default polling plus manual refresh; a webhook from Forgejo is the intended eventual state, not yet wired up.

Out of scope

  • On-prem machine provisioning (platform-iac).
  • Talos machine configs and cluster bootstrap (platform-cluster-config).
  • Decision records and runbooks (platform-docs).

Documentation

  • Decisions: ADRs in platform-docs
  • Operational procedures: runbooks in platform-docs
  • Progress: roadmap/journal in platform-docs

License

Licensed under the MIT License — free to use, share, and adapt with attribution (keep the copyright notice).