Le runbook new-web-app couvre très bien l'app autonome (dépôt / base / Vault / namespace propres, tout nommé <app>). Il manquait le cas du service compagnon : un second service qui partage le namespace — et parfois le stack Vault/DB — d'une app existante (une API cœur à côté de son front, une façade d'analyse).
Ce cas a déjà deux précédents vivants non documentés : kadans-jobs (namespace seul) et kadans-api (namespace + base + Vault). Rédiger le déploiement de kadans-api a fait remonter le piège que cette page capture.
Le piège documenté
Le VaultDynamicSecret a besoin d'un CR VaultAuth dans son namespace. Quand un compagnon réutilise le stack d'une app primaire qui ne consomme pas Vault (un front statique, comme kadans), personne n'a créé de VaultAuth — ni le chart du front, ni le compagnon par défaut. Le compagnon doit alors poser le sien, mais pointant le rôle et le SA du primaire (pas les siens) : c'est la seule entorse à la règle « tout est nommé <app> ».
Changements
Nouvelle page09-service-compagnon.md : compagnon vs app autonome (critères) ; les deux formes (sans état / partage Vault+DB) ; le piège du VaultAuth manquant ; carte mermaid ; précédents ; delta de checklist (saute étapes 2 et 5).
07-argocd-register.md : ajoute la ligne namespace: aux options (elle existe dans values.yaml via kadans-jobs, mais n'était pas documentée) ; corrige le callout qui affirmait le namespace « non configurable ».
conventions.md : note l'exception compagnon à la règle « tout est <app> ».
README.md : entrée 09 dans l'index + Last Updated.
Vérifs
VaultAuth d'erp bien nommé auth (claim de la page vérifié contre le chart réel).
Connexion via pgbouncer.tools (déjà la doctrine du chapitre 4).
Tous les liens internes .md résolus.
Doc pure — aucune ressource déployée modifiée. Indépendante de #41 (fichiers disjoints).
Le runbook `new-web-app` couvre très bien l'**app autonome** (dépôt / base / Vault / namespace propres, tout nommé `<app>`). Il manquait le cas du **service compagnon** : un second service qui partage le namespace — et parfois le stack Vault/DB — d'une app existante (une **API cœur** à côté de son front, une **façade d'analyse**).
Ce cas a déjà **deux précédents vivants non documentés** : `kadans-jobs` (namespace seul) et `kadans-api` (namespace + base + Vault). Rédiger le déploiement de `kadans-api` a fait remonter le **piège** que cette page capture.
## Le piège documenté
Le `VaultDynamicSecret` a besoin d'un CR `VaultAuth` dans son namespace. Quand un compagnon réutilise le stack d'une app primaire **qui ne consomme pas Vault** (un front statique, comme `kadans`), **personne** n'a créé de `VaultAuth` — ni le chart du front, ni le compagnon par défaut. Le compagnon doit alors poser le sien, mais pointant le **rôle et le SA du primaire** (pas les siens) : c'est la seule entorse à la règle « tout est nommé `<app>` ».
## Changements
- **Nouvelle page** `09-service-compagnon.md` : compagnon vs app autonome (critères) ; les deux formes (sans état / partage Vault+DB) ; le piège du VaultAuth manquant ; carte mermaid ; précédents ; delta de checklist (saute étapes 2 et 5).
- `07-argocd-register.md` : ajoute la ligne **`namespace:`** aux options (elle existe dans `values.yaml` via `kadans-jobs`, mais n'était pas documentée) ; corrige le callout qui affirmait le namespace « non configurable ».
- `conventions.md` : note l'exception compagnon à la règle « tout est `<app>` ».
- `README.md` : entrée 09 dans l'index + `Last Updated`.
## Vérifs
- `VaultAuth` d'`erp` bien nommé `auth` (claim de la page vérifié contre le chart réel).
- Connexion via `pgbouncer.tools` (déjà la doctrine du chapitre 4).
- Tous les liens internes `.md` résolus.
Doc pure — aucune ressource déployée modifiée. Indépendante de #41 (fichiers disjoints).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Le runbook new-web-app couvre l'app autonome (dépôt/base/Vault/namespace propres,
tout nommé <app>). Il manquait le cas du SERVICE COMPAGNON : un second service qui
partage le namespace — et parfois le stack Vault/DB — d'une app existante (API cœur
à côté de son front, façade d'analyse). Deux précédents vivants non documentés :
kadans-jobs (namespace seul) et kadans-api (namespace + base + Vault).
- Nouvelle page 09-service-compagnon.md : compagnon vs app autonome ; les deux
formes (sans état / partage Vault+DB) ; le PIÈGE du VaultAuth manquant quand
l'app primaire ne consomme pas Vault (front statique) → le compagnon pose son
propre VaultAuth mais avec le rôle+SA du PRIMAIRE ; carte, précédents, delta de
checklist.
- 07-argocd-register.md : ajoute la ligne `namespace:` aux options (elle existait
dans values.yaml — kadans-jobs — mais n'était pas documentée) ; corrige le
callout qui affirmait le namespace « non configurable ».
- conventions.md : note l'exception compagnon à la règle « tout est <app> ».
- README.md : entrée 09 dans l'index + Last Updated.
Vérifié : VaultAuth erp nommé `auth` ; connexion via pgbouncer.tools ; liens
internes tous résolus.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
Claude-Session: https://claude.ai/code/session_013ws8L74dVZmp97Wu36fm8j
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Le runbook
new-web-appcouvre très bien l'app autonome (dépôt / base / Vault / namespace propres, tout nommé<app>). Il manquait le cas du service compagnon : un second service qui partage le namespace — et parfois le stack Vault/DB — d'une app existante (une API cœur à côté de son front, une façade d'analyse).Ce cas a déjà deux précédents vivants non documentés :
kadans-jobs(namespace seul) etkadans-api(namespace + base + Vault). Rédiger le déploiement dekadans-apia fait remonter le piège que cette page capture.Le piège documenté
Le
VaultDynamicSecreta besoin d'un CRVaultAuthdans son namespace. Quand un compagnon réutilise le stack d'une app primaire qui ne consomme pas Vault (un front statique, commekadans), personne n'a créé deVaultAuth— ni le chart du front, ni le compagnon par défaut. Le compagnon doit alors poser le sien, mais pointant le rôle et le SA du primaire (pas les siens) : c'est la seule entorse à la règle « tout est nommé<app>».Changements
09-service-compagnon.md: compagnon vs app autonome (critères) ; les deux formes (sans état / partage Vault+DB) ; le piège du VaultAuth manquant ; carte mermaid ; précédents ; delta de checklist (saute étapes 2 et 5).07-argocd-register.md: ajoute la lignenamespace:aux options (elle existe dansvalues.yamlviakadans-jobs, mais n'était pas documentée) ; corrige le callout qui affirmait le namespace « non configurable ».conventions.md: note l'exception compagnon à la règle « tout est<app>».README.md: entrée 09 dans l'index +Last Updated.Vérifs
VaultAuthd'erpbien nomméauth(claim de la page vérifié contre le chart réel).pgbouncer.tools(déjà la doctrine du chapitre 4)..mdrésolus.Doc pure — aucune ressource déployée modifiée. Indépendante de #41 (fichiers disjoints).
🤖 Generated with Claude Code