Rotate Secrets¶
Rotate Doppler service tokens. Covers generation, propagation, and verification.
Purpose¶
Doppler service tokens are long-lived read-only credentials. Rotate on: suspected compromise, engineer offboarding, or scheduled rotation (recommended: every 90 days).
When to use¶
- Suspected token compromise
- Engineer with token access leaves the team
- Scheduled rotation cadence
Steps¶
1. Generate new token in Doppler UI¶
- Go to Doppler ->
oepproject -> select config (oep-stg/mansety-prd/us-prd) - Service Tokens -> Generate Token -> name:
k8s-<env>-<date>-> scope: read-only - Copy token value (shown once)
2. Update GH secret¶
gh secret set DOPPLER_SERVICE_TOKEN_OEP_STG --repo unipuka/soa --body "<new-token>"
# repeat for mansety-prd / us-prd
3. Update K8s Secret via TF¶
Pass new token as TF env var and apply:
export TF_VAR_doppler_service_token_oep_stg="<new-token>"
direnv exec oep-infra terraform -chdir=oep-infra apply -target=kubernetes_secret.doppler_token_oep_stg
4. Force ESO re-sync¶
5. Delete old token in Doppler UI¶
After confirming ESO sync is healthy, delete the old token.
Rollback¶
If new token doesn't work, generate another or restore from prior token if still in Doppler UI history.
V&V¶
kubectl get clustersecretstoreallValidkubectl get externalsecret -n oep-stgallSecretSynceddoppler secrets download --token=$DOPPLER_SERVICE_TOKEN_OEP_STG --no-file --format jsonreturns expected shape