Files
qinglong/deploy/kubernetes/ql3-cluster/vault-kv-worker-secret

Vault KV v2 Worker Secret custody

This overlay replaces the base mounted-files value projection with direct, TLS 1.3 Vault KV v2 resolution. The control Pods mount only the private Vault CA and one short-lived read token; Secret values and opaque Legacy Env bundles remain in Vault and are fetched only after the durable Worker delivery authority has been validated.

The exact Vault policy is read-only:

path "worker-secrets/data/values/production/*" {
  capabilities = ["read"]
}

path "auth/token/lookup-self" {
  capabilities = ["read"]
}

Issue an orphan, non-renewable service token with only that policy and a TTL no greater than 15 minutes. Rotate the projected token atomically before expiry; the adapter rereads and revalidates it for every authorized resolution. A Vault Agent or external Secret operator may own this projection, but must not project the actual Worker Secret values.

Store each value at worker-secrets/data/values/production/<sha256(canonical SecretRef)> with this exact KV payload:

{
  "schemaVersion": 1,
  "secretRefDigest": "<same 64-hex path key>",
  "encoding": "base64",
  "value": "<canonical base64 bytes>"
}

Create the two private Kubernetes Secret objects from credentials.example.yaml through the deployment authority, then render:

kubectl kustomize deploy/kubernetes/ql3-cluster/vault-kv-worker-secret

The overlay intentionally does not create a NetworkPolicy because the base control-plane deployment has no universal egress policy and external Vault topologies differ. If the namespace is default-deny, explicitly allow DNS, PostgreSQL, the artifact store and TCP 8200 only to the reviewed Vault identity.