Vault Cheatsheet

Vault CheatsheetKapitel 06 von 10

Vault Kubernetes-Integration

Stand Vault 2.2 · Edition 2026.11 · Release-Daten geprüft am 30. Oktober 2026

Agent Injector (Annotations)

Mutating Webhook injiziert einen Vault-Agent-Sidecar; Secrets landen als Dateien unter /vault/secrets/. Templates rendern beliebige Formate. agent-pre-populate-only für Jobs/CronJobs (nur Init-Container, Pod terminiert sauber).

vault-helm 0.34.1 setzt per Default Vault 2.0.4 (keine Fixes mehr seit 2.1.0): server.image.tag, injector.agentImage.tag und csi.agent.image.tag selbst pinnen, dazu injector.image.tag (vault-k8s 1.7.7).

metadata:
  annotations:
    vault.hashicorp.com/agent-inject: "true"
    vault.hashicorp.com/role: "app"
    vault.hashicorp.com/agent-inject-secret-db:
      "secret/data/app/db"
    vault.hashicorp.com/agent-inject-template-db: |
      {{- with secret "secret/data/app/db" -}}
      pg://{{ .Data.data.user }}:{{ .Data.data.pass }}@db
      {{- end -}}

Vault CSI Provider

Der Secrets-Store-CSI-Driver mountet Secrets als Volume (SecretProviderClass), Auth über den Pod-ServiceAccount (kubernetes/JWT). Optionaler Sync in K8s-Secrets für Env-Vars. Alle Secrets Engines nutzbar.

VSO: Vault Secrets Operator

Operator synct Vault-Secrets in native K8s-Secrets: CRDs VaultConnection, VaultAuth, VaultStaticSecret, VaultDynamicSecret, VaultPKISecret. Remediert Drift am Ziel-Secret, rotiert und kann Deployments per rolloutRestartTargets neu ausrollen.

apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata: {name: app-db, namespace: prod}
spec:
  vaultAuthRef: app-auth
  mount: secret
  type: kv-v2
  path: app/db
  refreshAfter: 60s
  destination: {name: app-db, create: true}