fix(vault) — PDB pour les évictions volontaires, OnRootMismatch pour les remounts #29

Merged
arcodange merged 1 commits from arcodange/vault-pdb-remount into main 2026-08-20 20:07:32 +02:00
2 changed files with 40 additions and 0 deletions
@@ -0,0 +1,26 @@
# Le sous-chart vendored `vault` ne rend son PodDisruptionBudget qu'en mode HA
# (server.ha.disruptionBudget.enabled, gardé par `eq .mode "ha"` dans
# server-disruptionbudget.yaml). Ce Vault tourne en standalone (storage "file",
# un seul réplica, scellement Shamir sans auto-unseal) : le garde-fou du chart
# ne s'applique jamais ici, d'où ce PDB écrit à la main dans le chart parapluie.
#
# Il ne protège que des évictions VOLONTAIRES (kubectl drain, descheduler) — pas
# d'une panne de nœud ni d'une suppression manuelle. Avec un seul réplica et
# aucun auto-unseal, toute interruption exige un unseal humain ensuite ; ce PDB
# réduit seulement les interruptions évitables.
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: {{ .Release.Name }}-server
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: vault
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
spec:
maxUnavailable: 0
selector:
matchLabels:
app.kubernetes.io/name: vault
app.kubernetes.io/instance: {{ .Release.Name }}
component: server
+14
View File
@@ -9,6 +9,20 @@ vault: &vault_config
auditStorage: auditStorage:
enabled: true enabled: true
statefulSet:
securityContext:
pod:
# Le défaut du chart (runAsNonRoot/runAsGroup/runAsUser/fsGroup) est repris tel
# quel ici — seul fsGroupChangePolicy s'ajoute. Sans lui, chaque remount du
# volume (même sur le MÊME nœud) déclenche un chown -R complet ; mesuré à ~9 min
# sur ce PVC (kubelet event "VolumePermissionChangeInProgress"). OnRootMismatch
# saute le chown si le propriétaire racine est déjà bon.
runAsNonRoot: true
runAsGroup: 1000
runAsUser: 100
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch
ingress: ingress:
enabled: true enabled: true
annotations: annotations: