Secret store

This commit is contained in:
2026-01-12 02:18:03 +01:00
parent 7a5fc8a9e7
commit f9bf4a7f8b
3 changed files with 58 additions and 20 deletions

View File

@@ -35,28 +35,41 @@ homarr:
#
# PRÉREQUIS:
# 1. External Secrets Operator doit être installé dans le cluster
# 2. Un SecretStore ou ClusterSecretStore doit être configuré pour Vault
# 3. Le secret doit être stocké dans Vault au chemin spécifié
# 2. Le secret doit être stocké dans Vault au chemin spécifié
# 3. Un rôle Vault doit être configuré pour l'authentification Kubernetes
#
# Pour stocker le secret dans Vault:
# vault kv put homarr/dev db-encryption-key=$(openssl rand -hex 32)
# Pour stocker le secret dans Vault (KV v2):
# vault kv put secret/homarr/dev db-encryption-key=$(openssl rand -hex 32)
#
# Ou via l'API Vault:
# curl -H "X-Vault-Token: $VAULT_TOKEN" \
# -H "Content-Type: application/json" \
# -X POST -d '{"data":{"db-encryption-key":"'$(openssl rand -hex 32)'"}}' \
# https://vault.example.com/v1/secret/data/homarr/dev
# Structure dans Vault (KV v2):
# secret/
# homarr/
# dev/
# db-encryption-key: "votre-clé-générée"
vault:
enabled: true
# Nom du SecretStore ou ClusterSecretStore configuré pour Vault
# Configuration du serveur Vault
server: "http://hashicorp-vault.hashi-vault.svc.cluster.local:8200"
# Chemin du mount KV dans Vault (par défaut: "secret")
path: "secret"
# Version du KV store (v1 ou v2)
version: "v2"
# Configuration d'authentification Kubernetes
auth:
kubernetes:
# Chemin du mount d'authentification Kubernetes dans Vault
mountPath: "kubernetes"
# Rôle Vault configuré pour cette application
role: "homarr-dev-role"
# Service Account utilisé pour l'authentification
serviceAccountRef:
name: "homarr-dev-sa"
# Nom du SecretStore créé (utilisé par ExternalSecret)
secretStoreName: "vault-backend"
# Kind du SecretStore (SecretStore ou ClusterSecretStore)
secretStoreKind: "SecretStore"
# Chemin dans Vault où se trouve le secret
# Pour KV v2: "secret/data/homarr/dev" (avec le préfixe "secret/data/")
# Pour KV v1: "homarr/dev" (sans préfixe)
# Chemin dans Vault où se trouve le secret (sans le préfixe "secret/data/")
# Exemple: "homarr/dev" pour secret/data/homarr/dev dans KV v2
secretPath: "homarr/dev"
# Clé dans le secret Vault contenant la clé de chiffrement
secretKey: "db-encryption-key"
# Intervalle de rafraîchissement du secret (par défaut: 1h)
refreshInterval: "1h"
# Intervalle de rafraîchissement du secret (par défaut: 5m)
refreshInterval: "5m"