You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
🐛 [BUG] - ArgoCD : un secret-id Vault AppRole est généré à chaque synchronisation #2622
generateVaultValues (argocd.service.ts:399-416) génère un nouveau secret-id Vault AppRole à chaque synchronisation via vault.createAuthApproleRoleSecretId(projectSlug) (argocd.service.ts:405, méthode vault-client.service.ts:404-413).
Cette méthode fait un POST brut (auth/approle/role/{roleName}/secret-id) qui génère un secret-id frais à chaque appel — aucune vérification d'existence, aucune réutilisation, pas de listing préalable. Appelée sur chaque project.upsert et chaque cron, elle a deux conséquences :
Les secret-id s'accumulent dans Vault au fil des ré-synchronisations.
Le secret-id frais est embarqué dans values → le diff de contenu de generateCreateOrUpdateAction est toujours « sale » → un nouveau commit est écrit à chaque cron/upsert même quand rien n'a changé.
Le .catch(() => undefined) (argocd.service.ts:405-408) masque les échecs au lieu de régler l'idempotence. Le role-id, lui, est bien relu via GET (:401).
Etapes de reproduction
Déclencher deux synchronisations successives du même projet (upsert puis cron, ou deux upserts).
Observer qu'un nouveau secret-id Vault est généré à chaque run et qu'un commit values.yaml est écrit à chaque run.
Constater l'accumulation des secret-id dans Vault.
Version de la console impactée
server-nestjs (module ArgoCD)
Définition du fini
Le secret-id Vault AppRole est relu/réutilisé quand il existe, plutôt que généré à chaque sync
Un run de ré-synchronisation sans changement de configuration ne produit pas de nouveau secret-id ni de nouveau commit
Les tests liés à ce correctif ont été ajoutés
Issues liees
Relie a #2087 : migration des plugins vers une approche declarative (moteur Alchemy.run), dont cette idempotence est un prerequis.
Activity
fix(server-nestjs): reuse Vault AppRole secret-id instead of minting …
fix(server-nestjs): reuse Vault AppRole secret-id instead of minting …
fix(server-nestjs): reuse Vault AppRole secret-id instead of minting …
fix(server-nestjs): reuse Vault AppRole secret-id instead of minting …
fix(server-nestjs): reuse Vault AppRole secret-id instead of minting …
fix(server-nestjs): reuse Vault AppRole secret-id instead of minting …
fix(server-nestjs): reuse Vault AppRole secret-id instead of minting …
fix(server-nestjs): reuse Vault AppRole secret-id instead of minting …
fix(server-nestjs): reuse Vault AppRole secret-id instead of minting …