ArgoCD app-of-apps for the mymh.dev cloud clusters: vCluster definitions, platform components, and application manifests — per ADR-002 in homelab-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 homelab-docs.
Find a file
2026-08-25 21:20:30 +02:00
apps Fix: add CreateNamespace=true, cert-manager namespace vanished and neither Application could self-heal 2026-08-25 21:20:30 +02:00
bootstrap Fix: add CreateNamespace=true, cert-manager namespace vanished and neither Application could self-heal 2026-08-25 21:20:30 +02:00
platform cert-manager webhook: full deployment manifests, parameterized Application script 2026-08-25 14:33:10 +02:00
LICENSE.md License: Added MIT License and updated README to reflect that. 2026-07-09 23:02:59 +02:00
README.md README: corrected sync mechanism to reflect actual current state (polling, not webhook yet) 2026-08-19 20:30:21 +02:00

homelab-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 homelab-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 homelab-docs; this repo's own docs cover only how to use its tooling.

Repository structure

homelab-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 homelab-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 (homelab-iac).
  • Talos machine configs and cluster bootstrap (homelab-cluster-config).
  • Decision records and runbooks (homelab-docs).

Documentation

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

License

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