Greg Hendrickson 124a29a0a9 feat: add ArgoCD bootstrap with ApplicationSet pattern
- Add root ApplicationSet using Git Directory Generator
- Configure AppProjects for infrastructure and apps separation
- Add cert-manager with Let's Encrypt ClusterIssuers (staging/prod)
- Add SOPS configuration for age-encrypted secrets
- Add bootstrap documentation (docs/BOOTSTRAP.md)
- Scaffold infrastructure dirs (networking, storage, monitoring)
- Update README with quick start and architecture

GitOps pattern: directories auto-discovered by ArgoCD ApplicationSets
Reference: CNCF App-of-Apps best practices 2025
2026-02-02 18:02:42 +00:00

Homelab GitOps

Kubernetes ArgoCD SOPS License

GitOps repository for homelab Kubernetes infrastructure. Everything as code, auto-synced by ArgoCD.

Quick Start

# Bootstrap cluster (after ArgoCD installed)
kubectl apply -k clusters/defiant/

See docs/BOOTSTRAP.md for full setup guide.

Infrastructure

System Role Stack
defiant k3s cluster AMD Ryzen 9 7940HS, Istio, Knative
truenas Storage + Docker 50TB RAIDZ2, Plex, *arr stack
dell01 Gateway Clawdbot AI

Structure

├── apps/                    # Application deployments
│   ├── base/               # Base manifests (Kustomize)
│   └── overlays/           # Environment overrides
│       ├── prod/           # → Auto-discovered by ApplicationSet
│       └── dev/
├── infrastructure/          # Cluster infrastructure
│   ├── cert-manager/       # ✅ TLS with Let's Encrypt
│   ├── networking/         # Istio gateway, NetworkPolicies
│   ├── storage/            # NFS StorageClass
│   └── monitoring/         # Prometheus, Grafana, Loki
├── clusters/
│   └── defiant/            # Cluster bootstrap
│       ├── kustomization.yaml
│       ├── root-applicationset.yaml  # Git Directory Generator
│       └── projects.yaml   # ArgoCD AppProjects
└── docs/
    └── BOOTSTRAP.md        # Setup guide

GitOps Pattern

Uses ArgoCD ApplicationSets with Git Directory Generator:

  • infrastructure/* → Auto-creates ArgoCD Applications
  • apps/overlays/prod/* → Auto-creates prod Applications
  • Add a directory, push, ArgoCD syncs automatically

Defiant (k3s) Workloads

  • 🏥 MediSynth - FHIR healthcare platform
  • 🔧 Istio - Service mesh
  • Knative - Serverless
  • 📜 Cert-Manager - TLS certificates
  • 🗄️ CNPG - Cloud Native PostgreSQL

TrueNAS (Docker - not in this repo)

  • 📺 Plex, Sonarr, Radarr, Prowlarr
  • 📷 Immich
  • 🏠 Home Assistant
  • 📊 Homepage, Uptime Kuma

Secrets Management

Encrypted with SOPS + age. Configuration in .sops.yaml.

# Encrypt a secret
sops -e -i infrastructure/cert-manager/secret.yaml

# Decrypt for editing
sops infrastructure/cert-manager/secret.yaml

License

MIT

Description
No description provided
Readme 41 KiB