> ## Documentation Index
> Fetch the complete documentation index at: https://infra-docs.kaeyros.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Cycle complet d'un changement, du code au trafic

> Parcours d'un commit depuis le push GitHub jusqu'à la bascule progressive du trafic par Argo Rollouts.

Un changement de code suit un pipeline automatisé de bout en bout : du push sur GitHub jusqu'à la bascule progressive du trafic sur le cluster. Ce cycle est entièrement piloté par GitOps : aucune intervention manuelle sur le cluster n'est nécessaire.

**1. Push du code sur GitHub**

Vous poussez votre code sur le dépôt de l'organisation `kaeyros-analytics-org`. Le tag de version (sémantique ou SHA) est créé selon la convention du projet.

**2. Construction et publication de l'image**

GitHub Actions se déclenche automatiquement, construit l'image Docker et la publie sur `ghcr.io/kaeyros-analytics-org/<image>:<tag>`.

**3. Détection par argocd-image-updater**

L'outil `argocd-image-updater`, qui scrute `ghcr.io` en continu, détecte le nouveau tag en quelques minutes (fréquence de polling configurée).

**4. Écriture du tag dans l'Application**

L'image-updater écrit le nouveau tag dans les paramètres Helm de l'Application ArgoCD concernée (méthode `write-back-method: argocd`). Le fichier de valeurs dans Git reste inchangé.

**5. Application par ArgoCD**

ArgoCD détecte la modification de l'Application, rend le chart Helm avec les nouvelles valeurs et applique les ressources sur le cluster.

**6. Bascule progressive par Argo Rollouts**

Si l'application utilise le chart `rollout-v2`, Argo Rollouts déploie la nouvelle version par paliers canary : 10 %, 25 %, 50 %, 75 %, 100 %. Le temps total par défaut est d'environ 10 minutes.

**7. Notification par courriel**

Un courriel est envoyé à `devops@kaeyros-analytics.com` pour signaler la fin du déploiement ou toute anomalie détectée.

## Changement de configuration (pas de code)

Pour un changement de configuration uniquement (variable d'environnement, ressources CPU/mémoire, domaine d'ingress), le cycle est plus court :

1. Modifiez le fichier de valeurs correspondant dans `argo-production/values/`
2. Poussez sur la branche `main`
3. ArgoCD détecte le changement et applique directement (pas d'image-updater, pas de canary)

> [!TIP]
>
> Les changements de config passent plus vite car ils ne nécessitent ni build Docker, ni détection de nouvelle image, ni paliers canary. ArgoCD les applique en quelques dizaines de secondes.

> [!WARNING]
>
> Si vous devez annuler un déploiement canary en cours, utilisez la commande `kubectl argo rollouts abort <app>-rollout-v2 -n <ns>`. Voir la page [Canary](https://infra-docs.kaeyros.org/deploiement/canary.md) pour les détails des commandes.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.