develop déclenche automatiquement une chaîne de déploiement sans porte de validation humaine : c’est le lieu où le code est intégré, testé et visualisé en conditions réelles le plus rapidement possible.
Rôles et responsabilités
Étapes du processus
1
Push sur develop
Le développeur merge une PR ou pousse directement sur
develop. Cette branche n’exige pas de review obligatoire, mais la CI doit être verte.2
Déclenchement de la CI
GitHub Actions exécute le workflow
ci.yml : lint, tests unitaires, coverage, Semgrep SAST, gitleaks, build Docker.3
Publication de l'image
L’image Docker est tagguée avec le SHA court du commit (7 caractères) et poussée vers
ghcr.io/kaeyros-analytics-org/<service>:<sha-court>.4
Détection par argocd-image-updater
L’updater surveille ghcr.io toutes les 2 minutes. Il détecte le nouveau tag et met à jour l’Application ArgoCD via la méthode
write-back-method: argocd.5
Synchronisation ArgoCD
ArgoCD détecte la modification de l’Application et synchronise les manifests. Le champ
image.tag dans les values est mis à jour.6
Rollout canary court
Le Rollout déploie la nouvelle version avec une stratégie canary rapide : 100% du trafic bascule dès que les pods sont ready (pas de phase progressive en dev).
7
Validation automatique
Les healthchecks Kubernetes et les sondes de readiness valident que l’application démarre correctement. En cas d’échec, le Rollout annule automatiquement.
Diagramme du flux
Caractéristiques du déploiement dev
Auto-review sans obstacle
Pas de review obligatoire, pas d’approbation DevOps. Le développeur itère rapidement. La CI verte est la seule porte.
Canary court
Le Rollout en dev n’utilise pas de phase progressive. Dès que les nouveaux pods passent les readiness probes, 100% du trafic bascule.
Tags SHA court
Les images sont identifiées par les 7 premiers caractères du hash du commit. Traçabilité immédiate entre code et déploiement.
Durée typique
De push à pods running : 3 à 5 minutes (build CI : ~2 min, détection updater : ~2 min, sync + rollout : ~1 min).
L’environnement de développement est volontairement permissif. C’est le terrain de jeu où les développeurs valident leurs hypothèses. En contrepartie, aucune donnée client ou sensible n’y transite.
Monitoring du déploiement
Pour suivre un déploiement en cours :En cas de problème
La CI échoue
La CI échoue
Consultez les logs GitHub Actions. Les échecs les plus fréquents sont : tests unitaires en échec, findings Semgrep bloquants, ou secrets détectés par gitleaks. Corrigez le problème en local et repoussez.
L'image n'apparaît pas dans ArgoCD
L'image n'apparaît pas dans ArgoCD
Vérifiez que argocd-image-updater est bien configuré pour surveiller l’image. Contrôlez les annotations de l’Application :
Le Rollout reste bloqué
Le Rollout reste bloqué
Inspectez les événements du Rollout et les logs des pods. Le blocage est généralement dû à un healthcheck échouant ou à une erreur de démarrage de l’application.