argocd-image-updater v1.2.2 (mode CRD) ignore les annotations — auto-update d'images mort pour toute la flotte #30

Open
opened 2026-07-16 20:40:48 +02:00 by arcodange · 0 comments
Owner

Constat (2026-07-16, diagnostic kadans)

Le chart argocd-image-updater déployé via argocd/templates/argocd_image_updater.yaml installe aujourd'hui v1.2.2 (chart 1.2.4, deployment argocd-image-updater-controller, ns argocd). Depuis la réécriture controller-runtime (v1.x), l'updater est piloté par des CRs ImageUpdater et n'exploite plus les annotations argocd-image-updater.argoproj.io/* posées sur les Applications.

Preuves :

  • Log du controller au démarrage : No ImageUpdater CRs to process puis plus aucun cycle — aucune mention des apps annotées.
  • kubectl get imageupdaters.argocd-image-updater.argoproj.io -A0 CR.
  • registries.conf absent (Registry configuration not found … using default configuration) → même avec des CRs, le registry Gitea (auth obligatoire) serait invisible.
  • Aucune Application ne porte de write-back helm (spec.source.helm.parameters vides partout) ; ex. webapp : dernier deploy dans l'history = 2026-01-01.

Conséquence : toutes les annotations image-list/update-strategy: digest de argocd/values.yaml (webapp, cms, prospection, telegram-gateway, dance-lessons-coach, kadans) sont des lettres mortes. Les apps en :latest ne se redéploient que si un rollout est déclenché par ailleurs.

Contournement en place pour kadans

chart/values.yaml de kadans est passé à imagePullPolicy: Always (commit arcodange/kadans@27e21993) : chaque rollout (sync ArgoCD, restart) re-tire le dernier :latest. Ça ne redéploie pas automatiquement à chaque push CI, mais ça garantit qu'un rollout sert le dernier build.

Options de remise en route (à arbitrer)

  1. Pin du chart en 0.x (annotations-driven, ex. chart 0.12.x / app v0.16.x) dans argocd/templates/argocd_image_updater.yaml — retour au comportement historique, zéro migration ; mais branche 0.x en fin de vie.
  2. Migrer vers les CRs ImageUpdater (un CR par app ou un CR multi-apps) + config.registries (registries.conf) pointant sur gitea.arcodange.lab avec un secret de creds registry — pattern pérenne, demande de câbler les credentials côté chart values (argocd_image_updater_chart_values).
  3. Abandonner l'updater et déclencher les redéploiements depuis la CI (kubectl rollout restart ou bump de tag immuable + commit dans le chart — le vrai GitOps par tags).

Le point 2 nécessite de décider où vivent les creds registry (Vault ?) — non traité pendant le dépannage kadans pour ne pas toucher aux secrets.

## Constat (2026-07-16, diagnostic kadans) Le chart `argocd-image-updater` déployé via `argocd/templates/argocd_image_updater.yaml` installe aujourd'hui **v1.2.2** (chart 1.2.4, deployment `argocd-image-updater-controller`, ns argocd). Depuis la réécriture controller-runtime (v1.x), l'updater est piloté par des **CRs `ImageUpdater`** et n'exploite **plus** les annotations `argocd-image-updater.argoproj.io/*` posées sur les Applications. Preuves : - Log du controller au démarrage : `No ImageUpdater CRs to process` puis plus aucun cycle — aucune mention des apps annotées. - `kubectl get imageupdaters.argocd-image-updater.argoproj.io -A` → **0 CR**. - `registries.conf` absent (`Registry configuration not found … using default configuration`) → même avec des CRs, le registry Gitea (auth obligatoire) serait invisible. - Aucune Application ne porte de write-back helm (`spec.source.helm.parameters` vides partout) ; ex. `webapp` : dernier deploy dans l'history = 2026-01-01. Conséquence : **toutes** les annotations `image-list`/`update-strategy: digest` de `argocd/values.yaml` (webapp, cms, prospection, telegram-gateway, dance-lessons-coach, kadans) sont des lettres mortes. Les apps en `:latest` ne se redéploient que si un rollout est déclenché par ailleurs. ## Contournement en place pour kadans `chart/values.yaml` de kadans est passé à `imagePullPolicy: Always` (commit arcodange/kadans@27e21993) : chaque rollout (sync ArgoCD, restart) re-tire le dernier `:latest`. Ça ne redéploie pas automatiquement à chaque push CI, mais ça garantit qu'un rollout sert le dernier build. ## Options de remise en route (à arbitrer) 1. **Pin du chart en 0.x** (annotations-driven, ex. chart 0.12.x / app v0.16.x) dans `argocd/templates/argocd_image_updater.yaml` — retour au comportement historique, zéro migration ; mais branche 0.x en fin de vie. 2. **Migrer vers les CRs `ImageUpdater`** (un CR par app ou un CR multi-apps) + `config.registries` (registries.conf) pointant sur gitea.arcodange.lab avec un secret de creds registry — pattern pérenne, demande de câbler les credentials côté chart values (`argocd_image_updater_chart_values`). 3. **Abandonner l'updater** et déclencher les redéploiements depuis la CI (`kubectl rollout restart` ou bump de tag immuable + commit dans le chart — le vrai GitOps par tags). Le point 2 nécessite de décider où vivent les creds registry (Vault ?) — non traité pendant le dépannage kadans pour ne pas toucher aux secrets.
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: arcodange-org/factory#30