> ## Documentation Index
> Fetch the complete documentation index at: https://infra-docs.kaeyros.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Ajouter un secret via Vault et External Secrets

> Méthode cible pour injecter un secret depuis Vault via External Secrets, avec les deux réserves à connaître sur le parc.

Cette page décrit la méthode cible pour injecter des secrets sensibles dans une application depuis Vault, via l'opérateur External Secrets. Cette méthode est disponible sur les charts `rollout-v2` et `antid-v2`.

## Configuration External Secrets dans le fichier de values

Dans le fichier `values/<namespace>/<app>-<env>.yaml`, ajoutez le bloc suivant :

```yaml External Secrets theme={null}
externalSecrets:
  enabled: true
  global:
    refreshInterval: "1m"
    secretStoreRef: { name: vault-backend, kind: ClusterSecretStore }
  secrets:
    - name: mon-appli-prod-values
      vaultPath: "mon-produit/mon-appli-prod-values"
      format: env
      variables:
        - DATABASE_URL
        - JWT_SECRET
```

## Formats de secret supportés

| Format | Description | Injection |
| - | - | - |
| `env` (défaut) | Une clé par variable | `envFrom` : variables d'environnement |
| `json` | Clé `config.json` | Monté en volume |
| `properties` | Clé `application.properties` | Monté en volume |

> [!WARNING]
>
> **Réserve 1 : chart rollout v1 non supporté**
>
> Le chart `rollout` (v1) ne sait pas interpréter le bloc External Secrets. Sans le bloc `secretStore.vault`, le rendu Helm échoue. Seul `rollout-v2` fonctionne. Une application utilisant encore le chart `rollout` doit migrer (voir `/deploiement/renommage`).

> [!WARNING]
>
> **Réserve 2 : ClusterSecretStore non déclaré dans le dépôt**
>
> Le `ClusterSecretStore` nommé `vault-backend` est référencé mais PAS déclaré dans le dépôt GitOps. Sa mise en place fait partie des chantiers en cours (voir `/operations/chantiers`). Vérifiez avec l'équipe avant d'utiliser cette méthode.

> [!NOTE]
>
> En attendant, la majorité des équipes place des valeurs sensibles dans le bloc `env:` du fichier de values. Cette pratique existe mais n'est pas à reproduire : demandez conseil à l'équipe infrastructure pour la bonne méthode à suivre.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.