Un voyage concis en DevOps : GitOps sur Azure avec ArgoCD

29 Avril 2025

Devops Azure DevOps GitOps

🚀 J’ai récemment terminé un projet pratique DevOps utilisant Azure, ArgoCD et GitOps pour déployer une application Node.js sur un cluster AKS. Voici mon parcours !

Aperçu du projet

Mon objectif était de déployer une application Node.js sur Azure Kubernetes Service (AKS), de la gérer avec ArgoCD en utilisant GitOps, et d’automatiser les déploiements via GitHub Actions. L’application a été conteneurisée, stockée dans Azure Container Registry (ACR), et déployée avec un chart Helm.

Étape 1 : Configuration

J’ai créé un cluster AKS (`AiliDevAKS`) et un ACR (`ailidevacr`), mis en place un dépôt GitHub public (`tesshsu/AzureDev-AppService`), et installé ArgoCD sur AKS.

Étape 2 : Configuration d’ArgoCD

J’ai utilisé le modèle App-of-Apps, définissant `root-app` et `azuredev-appservice` dans mes manifestes (voir : app-of-apps.yaml). Je l’ai appliqué manuellement pour tester.

Défi 1 : Placeholder dans `repoURL`

Le `repoURL` affichait un placeholder (`https://github.com/${{ github.repository }}.git`) car j’ai appliqué le fichier manuellement. Je l’ai remplacé par `https://github.com/tesshsu/AzureDev-AppService.git`, installé le CLI ArgoCD, et réappliqué le fichier après avoir supprimé les Applications.

Défi 2 : Problème d’accès au dépôt

Une erreur `ComparisonError` est apparue ("échec de la liste des refs : authentification requise") car j’avais temporairement rendu le dépôt privé. Je l’ai rendu public à nouveau, actualisé dans ArgoCD, et l’erreur a disparu.

Vérification

L’application était `Healthy` et `Synced`, accessible à `132.220.10.28`. J’ai corrigé un décalage de réplicas en mettant `replicaCount` à `3` dans le chart Helm.

GitOps en action

  • J’ai mis Ă  jour l’application avec "Hello from GitOps v13 !" et ArgoCD a synchronisĂ©.
  • J’ai testĂ© l’auto-rĂ©paration en supprimant un Pod—ArgoCD l’a recréé.
  • J’ai effectuĂ© un rollback vers un commit prĂ©cĂ©dent via l’interface ArgoCD.

Leçons apprises

  • GitOps avec ArgoCD est puissant pour l’automatisation.
  • Assurez un accès constant au dĂ©pĂ´t—les dĂ©pĂ´ts privĂ©s nĂ©cessitent des identifiants.
  • L’interface et le CLI d’ArgoCD sont parfaits pour le dĂ©pannage.

Mon projet est une réussite ! J’ai acquis une base solide en GitOps et j’ai hâte de relever d’autres défis DevOps.

Hashtags :