Il y a de fortes chances que quelqu'un ait fait une modification manuelle sur le cluster (`kubectl edit` ou `patch`) qui n'est pas dans Git. Ou alors un contrôleur Kubernetes a modifié une ressource. Utilise `kubectl diff` sur les ressources listées par ArgoCD pour comparer le live et le manifeste Git localement.
Regarde aussi les annotations et labels. Parfois ArgoCD ajoute des annotations de `last-applied-configuration` ou `resource-version` qui peuvent faire croire qu'il y a un diff alors que ce sont juste des métadonnées gérées par Kubernetes lui-même.
Tu peux essayer un `ArgoCD sync --prune --force` si tu es sûr que la version Git est la source de vérité. Ça va réappliquer tous les manifests et purger ce qui ne correspond pas.
argocd app sync nom_de_l_app --prune --force
Si c'est un `drift` constant sur un champ spécifique, tu peux configurer des `ignoreDifferences` dans ton `Application` ArgoCD pour qu'il ignore ces champs lors du `diff`. C'est utile pour des champs gérés dynamiquement par d'autres contrôleurs.
C'était un `drift` sur les labels `app.kubernetes.io/instance` et `app.kubernetes.io/managed-by` ajoutés par un `HelmRelease` qui n'était pas dans mon repo Git. J'ai ajouté `ignoreDifferences` et c'est `Synced`. Merci à tous !
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
manon-leroux
Membre depuis le 24/07/2024actif
Mon application ArgoCD est constamment en `OutOfSync` alors que j'ai pas touché au repo Git. Le `diff` ArgoCD me montre des changements que je n'ai pas faits. Comment je remets ça d'aplomb sans tout péter ?