mirror of
https://github.com/ghndrx/homelab-gitops.git
synced 2026-02-10 06:44:57 +00:00
- 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
87 lines
2.6 KiB
Markdown
87 lines
2.6 KiB
Markdown
# Homelab GitOps
|
|
|
|

|
|

|
|

|
|

|
|
|
|
GitOps repository for homelab Kubernetes infrastructure. Everything as code, auto-synced by ArgoCD.
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Bootstrap cluster (after ArgoCD installed)
|
|
kubectl apply -k clusters/defiant/
|
|
```
|
|
|
|
See [docs/BOOTSTRAP.md](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`.
|
|
|
|
```bash
|
|
# Encrypt a secret
|
|
sops -e -i infrastructure/cert-manager/secret.yaml
|
|
|
|
# Decrypt for editing
|
|
sops infrastructure/cert-manager/secret.yaml
|
|
```
|
|
|
|
## License
|
|
|
|
MIT
|