Skip to content

Sylad/developpeur-gitops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

440 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

developpeur-gitops

Repo GitOps central pour les apps perso de Sylvain Ladoire. ArgoCD sync ce repo vers les clusters K8s — toute modif passe par git push.

Apps gérées

Clusters

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.

Bootstrap d'un nouveau cluster

# 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 disponible

Le script bootstrappe en 8 étapes :

  1. k3s install
  2. kubeconfig user
  3. helm + mkcert
  4. Namespaces (preprod, maritime, argocd, infra)
  5. Helm repos
  6. Core infra (ingress-nginx hostNetwork, cert-manager, sealed-secrets, ClusterIssuer mkcert)
  7. Operators (CloudNativePG, KEDA, RabbitMQ Cluster Operator)
  8. ArgoCD + Application platform-bootstrap qui sync tout apps/*

Structure

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/

Workflow GitOps

  1. Modifier un chart localement (charts/<app>/values.yaml ou template)
  2. git commit -m "..." && git push
  3. ArgoCD détecte le drift (sync auto every ~3 min)
  4. Helm renderer applique les manifests vers le cluster
  5. 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.

Secrets

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>

Refs

About

GitOps manifests for the 5 personal apps (k3s preprod + Scaleway phase 2)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors