apiVersion: apps/v1 kind: Deployment metadata: name: vault-keykeeper namespace: vault spec: replicas: 1 selector: matchLabels: app: vault-keykeeper template: metadata: labels: app: vault-keykeeper spec: serviceAccountName: vault # Allows k8s auth for autounsealing containers: - name: vault image: hashicorp/vault:latest args: ["server"] securityContext: capabilities: add: ["IPC_LOCK"] env: - name: VAULT_LOCAL_CONFIG value: | ui = true storage "file" { path = "/vault/file" } listener "tcp" { address = "0.0.0.0:8200" tls_disable = 1 } disable_mlock = true - name: VAULT_API_ADDR value: "http://vault-keykeeper.vault.svc.cluster.local:8200" - name: SKIP_SETCAP value: "true" - name: VAULT_ADDR value: "http://127.0.0.1:8200" - name: VAULT_K8S_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: VAULT_K8S_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name ports: - containerPort: 8200 name: web-ui volumeMounts: - name: vault-data mountPath: /vault/file volumes: - name: vault-data persistentVolumeClaim: claimName: keykeeper-data-pvc --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: keykeeper-data-pvc namespace: vault labels: recurring-job.longhorn.io/source: "enabled" recurring-job-group.longhorn.io/app-config-group: "enabled" spec: accessModes: - ReadWriteOnce storageClassName: longhorn resources: requests: storage: 1Gi