Ministères
sociaux

Atlas
Plateforme d'hébergement des ministères sociaux
Utiliser ArgoCD pour le déploiement continu
Ce guide pratique vous montre comment utiliser ArgoCD pour visualiser et gérer vos ressources déployées sur la plateforme Atlas.
Prérequis
- Avoir un compte sur la plateforme Atlas
- Avoir les droits appropriés sur un workspace ou un DeploymentTarget
- Avoir accès à ArgoCD via l'interface Atlas
Qu'est-ce qu'ArgoCD ?
ArgoCD est un outil GitOps qui permet aux utilisateurs de voir les ressources déployées (deploymenttargets, ressources, databases, buckets) en fonction de leur rôle. Il surveille en permanence les dépôts Git et synchronise l'état souhaité (défini dans les fichiers YAML) avec l'état réel des ressources déployées.
Accès à ArgoCD
- Accédez à l'interface Atlas via l'URL https://atlas.fabrique.social.gouv.fr/
- Connectez-vous en utilisant vos identifiants (l'authentification se fait via OIDC)
- Cliquez sur le lien vers ArgoCD dans l'interface Atlas
- Authentifiez-vous à nouveau si nécessaire
Structure d'ArgoCD dans Atlas
Dans Atlas, ArgoCD est organisé selon la hiérarchie des ressources :
- Applications d'organisation : Représentent les organisations et surveillent les dépôts Git des organisations pour détecter les workspaces.
- Applications de workspace : Représentent les workspaces et surveillent les dépôts Git des workspaces pour détecter les ressources (buckets, databaseclusters, deploymenttargets).
- Applications de DeploymentTarget : Représentent les DeploymentTargets et surveillent les dossiers
deployment-targets/<nom-du-deployment-target>/
dans les dépôts Git des workspaces pour détecter les ressources Kubernetes à déployer.
Navigation dans ArgoCD
Vue d'ensemble des applications
La page d'accueil d'ArgoCD affiche la liste des applications auxquelles vous avez accès. Vous pouvez filtrer cette liste par :
- Nom
- Projet
- Statut de synchronisation
- Statut de santé
Vue détaillée d'une application
En cliquant sur une application, vous accédez à sa vue détaillée, qui affiche :
- Résumé : Informations générales sur l'application (nom, projet, dépôt Git, etc.)
- Statut de synchronisation : Indique si l'état réel correspond à l'état souhaité
- Statut de santé : Indique si l'application fonctionne correctement
- Ressources : Liste des ressources Kubernetes déployées par l'application
- Événements : Liste des événements liés à l'application
- Paramètres : Paramètres de l'application
Vue des ressources
La vue des ressources affiche la liste des ressources Kubernetes déployées par l'application. Vous pouvez filtrer cette liste par :
- Type de ressource
- Namespace
- Statut de synchronisation
- Statut de santé
En cliquant sur une ressource, vous accédez à sa vue détaillée, qui affiche :
- Manifeste : Le manifeste YAML de la ressource
- Événements : Liste des événements liés à la ressource
- Logs : Logs de la ressource (pour les pods)
Surveillance de l'état des ressources
ArgoCD surveille en permanence l'état des ressources déployées et affiche leur statut de synchronisation et de santé.
Statut de synchronisation
Le statut de synchronisation indique si l'état réel correspond à l'état souhaité :
- Synchronized (vert) : L'état réel correspond à l'état souhaité
- OutOfSync (jaune) : L'état réel ne correspond pas à l'état souhaité
- Unknown (gris) : ArgoCD ne peut pas déterminer l'état de synchronisation
Statut de santé
Le statut de santé indique si l'application fonctionne correctement :
- Healthy (vert) : L'application fonctionne correctement
- Degraded (rouge) : L'application ne fonctionne pas correctement
- Progressing (bleu) : L'application est en cours de déploiement
- Suspended (jaune) : L'application est suspendue
- Missing (gris) : ArgoCD ne peut pas déterminer l'état de santé
Synchronisation manuelle
Si l'état réel ne correspond pas à l'état souhaité (statut OutOfSync), vous pouvez déclencher une synchronisation manuelle :
- Accédez à la vue détaillée de l'application
- Cliquez sur le bouton "Sync"
- Sélectionnez les ressources à synchroniser
- Cliquez sur "Synchronize"
Visualisation des différences
Vous pouvez visualiser les différences entre l'état réel et l'état souhaité :
- Accédez à la vue détaillée de l'application
- Cliquez sur le bouton "App Diff"
- ArgoCD affiche les différences entre l'état réel et l'état souhaité
Historique des déploiements
Vous pouvez consulter l'historique des déploiements d'une application :
- Accédez à la vue détaillée de l'application
- Cliquez sur l'onglet "History"
- ArgoCD affiche la liste des déploiements précédents
Rollback
Si un déploiement pose problème, vous pouvez effectuer un rollback vers une version précédente :
- Accédez à la vue détaillée de l'application
- Cliquez sur l'onglet "History"
- Trouvez la version vers laquelle vous souhaitez revenir
- Cliquez sur le bouton "Rollback"
- Confirmez le rollback
Gestion des ressources
Suppression d'une ressource
Si vous avez les droits nécessaires, vous pouvez supprimer une ressource :
- Accédez à la vue détaillée de l'application
- Cliquez sur l'onglet "Resources"
- Trouvez la ressource que vous souhaitez supprimer
- Cliquez sur les trois points à droite de la ressource
- Sélectionnez "Delete"
- Confirmez la suppression
Attention : La suppression d'une ressource via ArgoCD est temporaire. Si la ressource est toujours définie dans le dépôt Git, elle sera recréée lors de la prochaine synchronisation. Pour supprimer définitivement une ressource, vous devez la supprimer du dépôt Git.
Redémarrage d'un pod
Si vous avez les droits nécessaires, vous pouvez redémarrer un pod :
- Accédez à la vue détaillée de l'application
- Cliquez sur l'onglet "Resources"
- Trouvez le pod que vous souhaitez redémarrer
- Cliquez sur les trois points à droite du pod
- Sélectionnez "Delete"
- Confirmez la suppression
Le pod sera automatiquement recréé par son contrôleur (Deployment, StatefulSet, etc.).
Bonnes pratiques
Workflow GitOps
- Toutes les modifications doivent être effectuées dans le dépôt Git, pas directement dans Kubernetes.
- ArgoCD synchronisera automatiquement les changements poussés vers le dépôt Git.
- Utilisez des branches et des pull requests pour les changements importants.
- Testez vos changements dans un environnement de développement avant de les appliquer en production.
Organisation des ressources
- Utilisez des noms significatifs pour vos ressources.
- Organisez vos ressources de manière logique dans le dépôt Git.
- Utilisez des labels et des annotations pour faciliter la recherche et le filtrage des ressources.
Surveillance
- Surveillez régulièrement l'état de vos applications dans ArgoCD.
- Configurez des alertes pour être notifié en cas de problème.
- Consultez les logs et les événements pour diagnostiquer les problèmes.
Résolution des problèmes courants
Application OutOfSync
Si une application est OutOfSync, cela signifie que l'état réel ne correspond pas à l'état souhaité. Voici les étapes pour résoudre ce problème :
- Vérifiez les différences entre l'état réel et l'état souhaité en cliquant sur "App Diff".
- Si les différences sont attendues, déclenchez une synchronisation manuelle en cliquant sur "Sync".
- Si les différences ne sont pas attendues, vérifiez que les fichiers YAML dans le dépôt Git sont corrects.
- Vérifiez que les ressources référencées existent.
- Vérifiez que vous avez les droits nécessaires pour créer ou modifier les ressources.
Application Degraded
Si une application est Degraded, cela signifie qu'elle ne fonctionne pas correctement. Voici les étapes pour résoudre ce problème :
- Vérifiez l'état des ressources en cliquant sur l'onglet "Resources".
- Identifiez les ressources qui sont en erreur (statut Degraded).
- Consultez les événements et les logs de ces ressources pour identifier la cause du problème.
- Corrigez le problème en modifiant les fichiers YAML dans le dépôt Git.
- Poussez les changements vers le dépôt Git et attendez qu'ArgoCD synchronise les changements.
Impossible d'accéder à ArgoCD
- Vérifiez que vous êtes bien connecté à l'interface Atlas.
- Vérifiez que vous avez les droits nécessaires pour accéder à ArgoCD.
- Contactez l'administrateur de la plateforme si le problème persiste.
Ressource non visible dans ArgoCD
- Vérifiez que la ressource est bien définie dans le dépôt Git.
- Vérifiez que vous avez les droits nécessaires pour voir la ressource.
- Vérifiez que l'application ArgoCD est configurée pour surveiller le bon dépôt Git et le bon chemin.
- Contactez l'administrateur de la plateforme si le problème persiste.