--- # ClusterSecretStore — connects ESO to Vault # # CURRENT STATE: token auth (root token). This works but the root token # has no expiry and full Vault access — it's a single credential that # compromises everything if leaked. # # MIGRATION TO APPROLE (do this before GCP migration): # ───────────────────────────────────────────────────── # 1. Enable AppRole on Vault (if not already): # vault auth enable approle # # 2. Create a policy scoped to only the paths ESO reads: # vault policy write eso-read - < \ # --from-literal=secretId= # # 6. Flip this file to the appRole stanza below, commit, push. # ESO will hot-reload when the manifest changes. # # 7. Delete the old vault-token secret: # kubectl delete secret vault-token -n external-secrets # ───────────────────────────────────────────────────── apiVersion: external-secrets.io/v1beta1 kind: ClusterSecretStore metadata: name: vault spec: provider: vault: server: "https://vault.neuralplatform.ai" path: "secret" version: "v2" auth: # ── Current: root token auth ────────────────────────────────────────── # TODO: replace with appRole stanza once AppRole is bootstrapped (see above). tokenSecretRef: name: vault-token namespace: external-secrets key: token # ── Target: AppRole auth (uncomment after bootstrap) ────────────────── # appRole: # path: "approle" # roleId: "eso" # secretRef: # name: vault-approle # namespace: external-secrets # key: secretId