add vault
This commit is contained in:
25
helm/homarr/dev/templates/db-encryption-externalsecret.yaml
Normal file
25
helm/homarr/dev/templates/db-encryption-externalsecret.yaml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{{- if .Values.vault.enabled }}
|
||||||
|
apiVersion: external-secrets.io/v1beta1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: db-encryption
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: homarr
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
spec:
|
||||||
|
refreshInterval: {{ .Values.vault.refreshInterval | default "1h" }}
|
||||||
|
secretStoreRef:
|
||||||
|
name: {{ .Values.vault.secretStoreName }}
|
||||||
|
kind: {{ .Values.vault.secretStoreKind | default "SecretStore" }}
|
||||||
|
target:
|
||||||
|
name: db-encryption
|
||||||
|
creationPolicy: Owner
|
||||||
|
data:
|
||||||
|
- secretKey: db-encryption-key
|
||||||
|
remoteRef:
|
||||||
|
key: {{ .Values.vault.secretPath }}
|
||||||
|
property: {{ .Values.vault.secretKey }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: db-encryption
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: homarr
|
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
||||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
|
||||||
type: Opaque
|
|
||||||
stringData:
|
|
||||||
# Clé de chiffrement pour la base de données Homarr
|
|
||||||
# La valeur est définie dans values.yaml sous homarr.dbEncryptionKey
|
|
||||||
# Pour générer une nouvelle clé: openssl rand -hex 32
|
|
||||||
# La valeur sera automatiquement encodée en base64 par Kubernetes
|
|
||||||
db-encryption-key: {{ .Values.homarr.dbEncryptionKey }}
|
|
||||||
|
|
||||||
@@ -22,13 +22,41 @@ homarr:
|
|||||||
# Configuration TLS (optionnel)
|
# Configuration TLS (optionnel)
|
||||||
# tls: []
|
# tls: []
|
||||||
|
|
||||||
# Configuration du secret de chiffrement de la base de données
|
# Configuration pour le chart homarr (référence au secret créé par External Secrets)
|
||||||
# IMPORTANT: Le secret doit être créé manuellement avant le déploiement
|
|
||||||
# Créez-le avec: kubectl create secret generic db-encryption -n homarr-dev \
|
|
||||||
# --from-literal=db-encryption-key=$(openssl rand -hex 32)
|
|
||||||
envSecrets:
|
envSecrets:
|
||||||
dbEncryption:
|
dbEncryption:
|
||||||
# Nom du secret Kubernetes existant
|
# Nom du secret Kubernetes créé par External Secrets
|
||||||
existingSecret: "db-encryption"
|
existingSecret: "db-encryption"
|
||||||
# Clé dans le secret contenant la clé de chiffrement
|
# Clé dans le secret contenant la clé de chiffrement
|
||||||
key: "db-encryption-key"
|
key: "db-encryption-key"
|
||||||
|
|
||||||
|
# Configuration spécifique au wrapper (non passée au chart homarr)
|
||||||
|
# Configuration du secret de chiffrement de la base de données via HashiCorp Vault
|
||||||
|
#
|
||||||
|
# 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é
|
||||||
|
#
|
||||||
|
# Pour stocker le secret dans Vault:
|
||||||
|
# vault kv put 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
|
||||||
|
vault:
|
||||||
|
enabled: true
|
||||||
|
# Nom du SecretStore ou ClusterSecretStore configuré pour Vault
|
||||||
|
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)
|
||||||
|
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"
|
||||||
|
|||||||
Reference in New Issue
Block a user