Mitt repo för mitt hemlabb som jag försöker köra IaC på
- Shell 86.3%
- Jinja 13.7%
| .vscode | ||
| ansible | ||
| docs | ||
| kind | ||
| kubernetes | ||
| scripts | ||
| talos | ||
| .gitignore | ||
| .sops.yaml | ||
| CLAUDE.md | ||
| README.md | ||
kobbo-homelab
Homelab Kubernetes-kluster med tre controlplane-noder som kör Talos Linux. Workloads driftsätts via GitOps med Flux.
Kluster
| Hostname | Roll | IP |
|---|---|---|
| starlord | controlplane | 192.168.30.108 |
| rocky | controlplane | — |
| groot | controlplane | — |
Kubernetes: v1.36.1 · Talos: v1.13.3 · Flux: v2.x
Repo-struktur
kind/ # Kind-klusterkonfig för lokal dev
kubernetes/
apps/ # Workloads: appflowy, newt, postgres
core/ # Infrastruktur: metallb, local-path-provisioner, traefik
flux/
*.yaml # Flux GitRepository + Kustomizations (prod, main-branch)
local/ # Flux GitRepository + Kustomizations (lokal kind, develop-branch)
overlays/
local/ # kubectl apply-overlays för lokal kind (manuellt)
flux-local/ # Kustomize-overlays som Flux i kind reconciliar
talos/ # Talos machine configs
ansible/ # Server-side setup
scripts/ # Hjälpskript
docs/ # Dokumentation
GitOps-flöde
develop → PR → main
│ │
│ └─ Flux (prod) deployr till klustret
│
└─ Flux (kind) reconciliar lokalt — testa innan PR
- Allt arbete sker på
develop mainär skyddad — kräver PR- Flux i prod tittar enbart på
main
Kom igång
Se docs/local-dev.md för fullständig guide — ny dator, lokal setup, lägga till services, och vägen till produktion.
Snabbstart (redan satt upp)
# Starta kind-klustret
bash scripts/kind-setup.sh
# Applicera en app lokalt
bash scripts/local-apply.sh postgres
# Kolla Flux-status
flux get all -A
Secrets
Secrets krypteras med SOPS och age. Age-publicknyckeln finns i .sops.yaml.
sops -e secret.yaml > secret.enc.yaml # kryptera
sops -d secret.enc.yaml # dekryptera
Den privata age-nyckeln lagras lokalt på ~/.config/sops/age/keys.txt — säkerhetskopiera den.