Aller au contenu principal

Comprendre pourquoi une application n'est pas synchronisée ou est en erreur

Ton application affiche OutOfSync ou Degraded ? L'onglet Argo CD te dit quel objet est en cause et pourquoi, sans ouvrir Argo CD.

Ce que l'onglet montre, et à qui​

  • Tous ceux qui peuvent ouvrir le composant voient les objets de l'application et la raison qu'Argo CD donne pour chacun.
  • Événements et Logs sont réservés à ceux qui ont les permissions argocd.events.read et argocd.logs.read. Par défaut, les administrateurs d'Astrolabe.

1. 📋 Trouver l'objet en cause​

  1. Ouvre le composant depuis Catalogue, puis clique sur l'onglet Argo CD.
  2. Clique sur Ressources.

Les objets en écart viennent en premier : ceux dont la Synchronisation n'est pas Synced, ou dont la Santé est Degraded, Missing ou Progressing. La colonne Raison donne le message d'Argo CD, par exemple back-off 5m0s restarting failed container=app.

2. 🔍 Ouvrir ses événements​

Dans la colonne Pourquoi, clique sur Pourquoi … ? suivi du nom de l'objet (ici Pourquoi settings ?).

Sous le tableau, l'objet s'ouvre avec sa raison, puis Événements : Type (Warning ou Normal), Raison, Message, Fois, Dernier. Le plus récent vient en premier.

3. 📄 Lire ses logs​

Sous Logs :

  1. Dans Pod, choisis le pod (un Deployment ou un ReplicaSet peut en avoir plusieurs).
  2. Dans Conteneur, choisis le conteneur.

Les 200 dernières lignes s'affichent. Clique sur Actualiser pour les relire, sur Copier les logs pour les coller ailleurs.

Donner au jeton le droit de lire les logs

Astrolabe lit les logs avec le jeton de l'intégration Argo CD. Son compte a besoin de cette ligne dans policy.csv, en plus de celle qui lit les applications (Créer un jeton) :

p, astrolabe, logs, get, */*, allow

✅ C'est tout !

🛠️ Dépannage​

Ce que tu voisQuoi faire
Argo CD refuse de donner les logs au jeton de l’intégration Argo CD. Demandez à l’administrateur d’Astrolabe de donner au compte du jeton le droit de lire les logs (p, <compte>, logs, get, */*, allow).Ajoute p, astrolabe, logs, get, */*, allow au policy.csv d'argocd-rbac-cm, avec le nom du compte du jeton.
Argo CD refuse de donner les événements au jeton de l’intégration Argo CD. Demandez à l’administrateur d’Astrolabe de donner au compte du jeton le droit de lire les applications (p, <compte>, applications, get, */*, allow).Le compte du jeton ne peut pas lire l'application. Ajoute p, astrolabe, applications, get, */*, allow au policy.csv.
Vous n’avez pas le droit de lire les logs de cet objet. Demandez à l’administrateur d’Astrolabe la permission argocd.logs.read.Demande à l'administrateur d'Astrolabe la permission argocd.logs.read. Même chose pour les événements avec argocd.events.read.
Argo CD ne trouve plus cet objet ou ce pod. Rechargez l’onglet : il a peut-être été remplacé.Un pod a redémarré sous un autre nom. Recharge la page et clique de nouveau sur Pourquoi.
Cet objet n’a pas encore de pod, il n’a donc pas de log.L'objet ne fait encore rien tourner (une ConfigMap, ou un Deployment dont les pods ne sont pas créés). Regarde ses Événements.
Cet objet n’existe pas dans le cluster, il n’a donc aucun événement.L'objet est dans Git mais pas encore dans le cluster (OutOfSync, Missing). Sa Raison dit pourquoi Argo CD ne l'a pas créé.