From 51d01f47c23edd8aa44b533f7818f8fb255b2ec8 Mon Sep 17 00:00:00 2001 From: CI Bot Date: Fri, 24 Jul 2026 11:29:17 +0200 Subject: [PATCH] =?UTF-8?q?docs(runbook)=20=E2=80=94=20corrige=2009=20:=20?= =?UTF-8?q?NE=20PAS=20=C3=A9crire=20vaultConnectionRef=20dans=20un=20ns=20?= =?UTF-8?q?applicatif?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le chapitre « service compagnon » montrait `vaultConnectionRef: default` dans l'exemple VaultAuth — c'est faux hors du namespace `tools` et ça a réellement bloqué le déploiement de kadans-api (pods en CreateContainerConfigError, VaultDynamicSecret sur « VaultConnection default not found »). VSO résout vaultConnectionRef dans le namespace DU CR ; la VaultConnection `default` ne vit que dans `tools`. Les apps hors `tools` (erp, webapp) OMETTENT le champ et laissent VSO retomber sur sa defaultVaultConnection. On retire donc la ligne de l'exemple + on ajoute un encart WARNING dédié au piège. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_013ws8L74dVZmp97Wu36fm8j --- doc/runbooks/new-web-app/09-service-compagnon.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/doc/runbooks/new-web-app/09-service-compagnon.md b/doc/runbooks/new-web-app/09-service-compagnon.md index 0092b6d..234c2a1 100644 --- a/doc/runbooks/new-web-app/09-service-compagnon.md +++ b/doc/runbooks/new-web-app/09-service-compagnon.md @@ -82,7 +82,7 @@ Le host DB reste **`pgbouncer.tools`**, base = celle du primaire ([étape 4](04- > name: kadans # ou « auth » ; l'important est spec.kubernetes.* > namespace: {{ .Release.Namespace }} > spec: -> vaultConnectionRef: default # VaultConnection cluster-wide (VSO) +> # PAS de vaultConnectionRef → VSO retombe sur sa connexion globale (comme erp/webapp). > method: kubernetes > mount: kubernetes > kubernetes: @@ -93,6 +93,9 @@ Le host DB reste **`pgbouncer.tools`**, base = celle du primaire ([étape 4](04- > > C'est la seule raison pour laquelle le SA et le rôle du VaultAuth ne portent **pas** le nom du service qui le déploie. Ne crée **pas** un second SA `kadans-api` : le rôle K8s Vault `kadans` n'accepte que le SA `kadans`. +> [!WARNING] +> **N'écris PAS `vaultConnectionRef: default` dans un namespace applicatif.** VSO résout `vaultConnectionRef` **dans le namespace du CR** — or la VaultConnection `default` n'existe que dans le namespace **`tools`**. La nommer explicitement ailleurs fait chercher `/default` (inexistant) : le `VaultDynamicSecret` reste bloqué sur `VaultConnection "default" not found`, le Secret n'est jamais matérialisé, et le pod tourne en `CreateContainerConfigError`. Les apps hors `tools` (erp, webapp) **omettent** ce champ et laissent VSO utiliser sa `defaultVaultConnection`. (crowdsec/plausible peuvent l'écrire car ils vivent **dans** `tools`.) + ## Carte ```mermaid