Repo GitOps central pour les apps perso de Sylvain Ladoire. ArgoCD sync
ce repo vers les clusters K8s — toute modif passe par git push.
charts/ol-companion— OL Companion (NestJS + React)charts/finance-tracker— Finance Tracker (NestJS + React + PDF analyse Claude)charts/warhammer40k— Warhammer 40K codex (Angular 19 + NestJS)charts/maritime— AetherWX (ex Maritime Atlas) services statelesscharts/maritime-stateful— AetherWX stateful (CNPG pg-catalog + pg-data + RMQ)charts/cloudflared— Cloudflare Tunnel pour exposer*.sladoire.dev
| Cluster | Rôle | Allumage | Domaine |
|---|---|---|---|
| Big-Blue WSL2 | Preprod / dev | Quand Sylvain code | *.dev.local |
| Mini-Blue WSL2 | Prod 24/7 | Always-on (GEEKOM i9-13900HK 32GB) | *.sladoire.dev |
Préprod et prod sync les mêmes Helm charts via le pattern ArgoCD
app-of-apps. La distinction se fait via values-prod.yaml (à venir)
qui override images tag / replicas / ingress host pour la prod.
# Sur n'importe quel node WSL2 (Big-Blue ou Mini-Blue)
git clone https://github.com/Sylad/developpeur-gitops.git
cd developpeur-gitops
bash bootstrap/mini-blue-k3s.sh # ou big-blue-k3s.sh quand disponibleLe script bootstrappe en 8 étapes :
- k3s install
- kubeconfig user
- helm + mkcert
- Namespaces (preprod, maritime, argocd, infra)
- Helm repos
- Core infra (ingress-nginx hostNetwork, cert-manager, sealed-secrets, ClusterIssuer mkcert)
- Operators (CloudNativePG, KEDA, RabbitMQ Cluster Operator)
- ArgoCD + Application
platform-bootstrapqui sync toutapps/*
developpeur-gitops/
├── apps/ # ArgoCD Application manifests
│ ├── ol-companion.yaml
│ ├── finance-tracker.yaml
│ ├── warhammer40k.yaml
│ ├── maritime.yaml
│ ├── cloudflared.yaml
│ └── ...
├── bootstrap/ # Scripts shell pour bootstrap cluster
│ └── mini-blue-k3s.sh
└── charts/ # Helm charts
├── ol-companion/
├── finance-tracker/
├── warhammer40k/
├── maritime/
├── maritime-stateful/
└── cloudflared/
- Modifier un chart localement (
charts/<app>/values.yamlou template) git commit -m "..." && git push- ArgoCD détecte le drift (sync auto every ~3 min)
- Helm renderer applique les manifests vers le cluster
- K8s reconcile (rolling update si image tag bump)
Anti-pattern critique : ne JAMAIS kubectl patch ou helm upgrade --force
direct sur un objet géré par ArgoCD avec selfHeal: true. Le revert
arrive dans 1-3 min vers la version Git.
Pas de secrets en clair dans Git. 2 patterns supportés :
-
Manuel via kubectl (preprod, démarrage rapide) :
kubectl create secret generic <name> -n <ns> \ --from-env-file=/path/to/.env \ --dry-run=client -o yaml | kubectl apply -f -
-
SealedSecrets (Bitnami) pour la prod, chiffré dans Git :
echo -n "value" | kubeseal --raw --namespace <ns> --name <name>
- maritime-atlas/K8S-MIGRATION-ROADMAP.md
- Case study migration nuit 13→14 mai 2026
- ArgoCD UI Big-Blue : https://argocd.dev.local
- ArgoCD UI Mini-Blue (prod) : https://argocd.sladoire.dev (à venir)