Skip to content

🐛 [BUG] - ArgoCD : un secret-id Vault AppRole est généré à chaque synchronisation #2622

Closed

Description

@shikanime

Description

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 :

  1. Les secret-id s'accumulent dans Vault au fil des ré-synchronisations.
  2. 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

  1. Déclencher deux synchronisations successives du même projet (upsert puis cron, ou deux upserts).
  2. Observer qu'un nouveau secret-id Vault est généré à chaque run et qu'un commit values.yaml est écrit à chaque run.
  3. 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

  1. self-assigned this
    on Aug 28, 2026
  2. added this to the 9.25.0 milestone on Aug 28, 2026
  3. modified the milestones: 9.25.0, 9.26.0 on Sep 1, 2026
  4. modified the milestones: 9.26.0, 9.27.0 on Sep 14, 2026
  5. moved this from In Production to In review in Cloud Pi Nativeon Sep 29, 2026
  6. added theissue type on Sep 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions