Pourquoi le GitOps transforme la gestion d'un Homelab ?
Avant l'adoption du GitOps, administrer un homelab consistait souvent à exécuter des kubectl apply -f, des scripts bash éparpillés, ou à bidouiller des interfaces web sans historique. Le résultat inévitable : le jour où il faut reconstruire un service ou réinstaller un nœud, personne ne sait exactement quelle version tournait ni avec quelles variables d'environnement.
Avec ArgoCD, le dépôt Git devient l'unique source de vérité (Single Source of Truth).
La chaîne de livraison automatisée
Le flux de déploiement de comoweb.fr suit un schéma strict :
- IaC (Terraform & Ansible) :
- Terraform provisionne les VMs sous Proxmox et les réseaux VLAN associés.
- Ansible configure les clés, la préparation des disques et les configurations de base.
- CI applicative (GitLab CI) :
- Chaque
git pushsur un projet déclenche le linting, le build de l'image conteneur (ex: Dockerfile multi-stage) et le push vers le registre privé GitLab.
- Chaque
- Réconciliation continue (ArgoCD) :
- ArgoCD surveille le dépôt de manifestes K8s (Helm / Kustomize).
- Dès qu'une modification survient sur la branche
main(ou qu'une nouvelle version d'image est détectée), ArgoCD compare l'état désiré dans Git avec l'état réel du cluster et synchronise les ressources (Sync).
# Application ArgoCD pour comoweb
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: site-vitrine-comoweb
namespace: argocd
spec:
project: default
source:
repoURL: 'https://gitlab.comoweb.fr/comoweb/k8s-manifests.git'
targetRevision: HEAD
path: apps/site-vitrine
destination:
server: 'https://kubernetes.default.svc'
namespace: web
syncPolicy:
automated:
prune: true
selfHeal: true
Auto-healing et sérénité
Si une ressource est modifiée par mégarde en CLI directement sur le cluster, le flag selfHeal: true d'ArgoCD détecte la dérive en quelques secondes et rétablit automatiquement la configuration exacte déclarée dans Git.