> ## 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.

# HashiCorp Vault : source de vérité des secrets applicatifs

> Vault est la source de vérité des secrets applicatifs. external-secrets le consomme via le ClusterSecretStore vault-backend. Structure des chemins : <produit>/<app>-<env>-values.

HashiCorp Vault (vault.kaeyros.org) est la source de vérité des secrets applicatifs pour l'ensemble du cluster RKE2 de production. Les applications Kubernetes consomment ces secrets via l'opérateur external-secrets et un ClusterSecretStore nommé `vault-backend`. Cette page explique la structure des chemins et la procédure pour ajouter un nouveau secret applicatif.

> [!NOTE]
>
> URL d'accès : [vault.kaeyros.org](https://vault.kaeyros.org)

## Structure des chemins Vault

Les secrets sont organisés selon la convention suivante :

```text theme={null}
<produit>/<app>-<env>-values
```

Par exemple, pour l'API `booking-api` du produit `booking` en production :

```text theme={null}
booking/booking-api-production-values
```

Cette structure garantit que chaque secret est isolé par produit, par application et par environnement (`develop`, `staging` ou `production`).

> [!WARNING]
>
> Le `ClusterSecretStore` nommé `vault-backend` n'est pas encore déclaré dans le dépôt `argo-production`. Ce chantier est en cours (chapitre 25). En attendant, les secrets applicatifs peuvent être injectés via [sealed-secrets](https://infra-docs.kaeyros.org/securite/sealed-secrets.md) en fallback temporaire.

## Ajouter un nouveau secret applicatif

**1. Écrire le secret dans Vault**

Connectez-vous à l'interface web de Vault (vault.kaeyros.org) et créez ou modifiez le secret dans le chemin correspondant à votre produit, votre application et votre environnement. Utilisez le format clé/valeur standard.

**2. Ajouter le bloc externalSecrets dans les values Helm**

Dans le fichier `values.yaml` (ou `values-<env>.yaml`) de votre application dans le dépôt `github.com/kaeyros-analytics-org/argo-production`, ajoutez un bloc `externalSecrets` référençant le chemin Vault. Exemple :

```yaml title="values-production.yaml" theme={null}
externalSecrets:
  - name: booking-api-secrets
    secretStoreRef:
      name: vault-backend
      kind: ClusterSecretStore
    target:
      name: booking-api-secrets
    data:
      - secretKey: DATABASE_URL
        remoteRef:
          key: booking/booking-api-production-values
          property: DATABASE_URL
      - secretKey: API_KEY
        remoteRef:
          key: booking/booking-api-production-values
          property: API_KEY
```

**3. Pousser vers argo-production**

Commitez et poussez votre branche vers le dépôt `argo-production`. ArgoCD synchronisera la ressource `ExternalSecret`, qui lira automatiquement les valeurs dans Vault et créera le `Secret` Kubernetes dans le namespace cible.

> [!TIP]
>
> Nommez toujours la cible (`target.name`) de manière explicite pour éviter tout conflit avec d'autres secrets dans le même namespace.

> [!NOTE]
>
> Pour toute question sur Vault ou sur la configuration d'external-secrets, contactez l'équipe DevOps à l'adresse [devops@kaeyros-analytics.com](mailto:devops@kaeyros-analytics.com).


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