ArgoCD › GitOps Principles

How are secrets managed securely in a GitOps workflow?

Intermediate

Answer

Because plaintext secrets can't live in Git, common patterns are: Bitnami Sealed Secrets (encrypt secrets that only the in-cluster controller can decrypt), the External Secrets Operator (sync from Vault/AWS/GCP secret managers), or SOPS with age/KMS to store encrypted secrets in Git. ArgoCD applies the encrypted/referencing resource and the operator resolves the real value.
# SealedSecret committed to Git; controller decrypts in-cluster
kind: SealedSecret
spec:
  encryptedData:
    password: AgB2b3c...
Real-world example The team commits SealedSecrets to Git; only the cluster's controller can decrypt them, keeping the repo safe to share.

Common follow-ups: How do Sealed Secrets differ from External Secrets? | What is SOPS?