🎯 Objectifs de conception#
Ce homelab est à la fois un bac à sable personnel et un environnement de production local, conçu pour expérimenter, apprendre et automatiser en conditions réelles.

⚙️ Principes fondamentaux#
💡 Simplicité pragmatique
Architecture sobre, lisible, facile à maintenir. Je privilégie la cohérence et la transparence.🚀 GitOps natif
Toute la stack est déclarée dans Git. Ungit push= un déploiement traçable via Argo CD.🔁 Idempotence totale
Chaque playbook Ansible ou manifeste K8s peut être rejoué sans crainte. Rien n’est fait “à la main”.📦 Modularité des apps
Chaque application est isolée dans son propre dossier avec sonapp.yaml, et déployée via une structureapps/récursive.🧱 Infrastructures déclaratives
De K3s à MetalLB en passant par Longhorn, tout est défini, versionné et reproducible.🔐 Sécurité intégrée dès le début
Cert-manager + ingress + IP fixes via MetalLB = une base solide et exposable proprement en HTTPS.📊 Observabilité dès le départ
Prometheus, Grafana et Loki sont en place pour tout monitorer. Car un cluster non observé est un cluster aveugle.
🧬 Stack de base#
| Composant | Rôle |
|---|---|
K3s | Cluster Kubernetes minimaliste |
Ansible | Provisioning initial des nœuds |
Semaphore | Interface pour déclencher les playbooks |
Argo CD | GitOps controller (App-of-Apps) |
Longhorn | Stockage persistant (via iSCSI NAS) |
MetalLB | Attribution d’IP pour services LoadBalancer |
Ingress-NGINX | Entrée réseau + TLS |
Cert-manager | Gestion des certificats Let’s Encrypt |
Prometheus | Collecte métriques |
Grafana | Dashboards |
Loki | Logs |
🔁 GitOps Workflow#
1. kubectl apply -f bootstrap/homelab.yaml
↓
2. homelab.yaml crée l'application “apps”
↓
3. apps.yaml scanne récursivement le dossier apps/
↓
4. Chaque app.yaml est déployé automatiquement
💭 Pourquoi ce homelab ?#
- Pour expérimenter sans casser en prod
- Pour documenter des déploiements complexes
- Pour monter en compétences (K8s, GitOps, observabilité)
- Pour centraliser mes services auto-hébergés (Home Assistant, etc.)
🔚 En résumé#
Un cluster personnel, propre, traçable et prêt à grandir.
🔁 Du provisioning au monitoring, tout est piloté depuis Git.
Dernière mise à jour : juillet 2025
