Recommended: Destination Cluster Secret Management
In this approach, secrets are populated directly on the destination cluster, and Argo CD does not need to manage them.How It Works
Store Secrets Externally
Secrets are stored in external systems like AWS Secrets Manager, HashiCorp Vault, Azure Key Vault, or Google Secret Manager.
Deploy Operator
An operator runs on the destination cluster to sync secrets from the external system.
Advantages
Enhanced Security
Argo CD never has access to secrets, reducing risk of leakage through API, cache, or logs.
Decoupled Updates
Secret updates are independent from app sync operations, avoiding unintended secret changes during releases.
Rendered Manifests Compatible
Works with the “Rendered Manifests” GitOps pattern, an emerging best practice.
Zero Trust Architecture
Follows principle of least privilege—Argo CD has no secret access.
Popular Solutions
Sealed Secrets
Sealed Secrets encrypts secrets that can be stored safely in Git.The controller running on the cluster decrypts SealedSecrets and creates corresponding Kubernetes Secrets.
External Secrets Operator
External Secrets Operator syncs secrets from external secret management systems.- AWS Secrets Manager
- HashiCorp Vault
- Google Secret Manager
Kubernetes Secrets Store CSI Driver
Secrets Store CSI Driver mounts secrets from external stores as volumes.Other Solutions
AWS Secret Operator
Kubernetes operator for AWS Secrets Manager
Vault Secrets Operator
Official HashiCorp Vault operator for Kubernetes
Not Recommended: Manifest Generation-Based
In this approach, Argo CD uses a Config Management Plugin to inject secrets during manifest generation.Disadvantages
Security Risks
Security Risks
- Argo CD needs access to secrets, increasing attack surface
- Generated manifests with secrets stored in plaintext in Redis cache
- Secrets exposed via repo-server API (gRPC service)
- Anyone with Redis or repo-server access can view secrets
Operational Risks
Operational Risks
- Secret updates coupled with application sync operations
- Risk of unintentional secret changes during unrelated releases
- Difficult to audit when secrets were actually updated
Compatibility Issues
Compatibility Issues
- Incompatible with “Rendered Manifests” pattern
- Limits adoption of emerging GitOps best practices
- May complicate future migrations
Mitigating Risks (If You Must Use This Approach)
Many users have already adopted generation-based solutions. Argo CD will continue to support this approach, but will not prioritize new features that solely support this style.
Dedicated Cluster
Run Argo CD on its own cluster with no other applications.
- Reduces blast radius if secrets are compromised
- Limits potential lateral movement
- Simplifies security auditing
Access Controls
Strictly limit RBAC permissions for accessing:
- Redis pods and services
- repo-server pods and services
- argocd namespace resources
Popular Plugin: argocd-vault-plugin
argocd-vault-plugin is a popular Config Management Plugin for secret injection.Migration Strategy
If you’re currently using manifest generation-based secrets, consider migrating:Choose Destination Approach
Select an operator-based solution:
- External Secrets Operator (multi-cloud)
- Sealed Secrets (Git-native)
- Cloud-specific operators
Migrate Incrementally
Migrate applications one at a time:
- Create ExternalSecret/SealedSecret resources
- Update application to reference new Secrets
- Remove plugin configuration
- Test thoroughly
Comparison Table
| Feature | Destination Cluster | Manifest Generation |
|---|---|---|
| Argo CD Secret Access | ❌ No | ✅ Yes (High Risk) |
| Secret in Redis Cache | ❌ No | ✅ Yes (Plaintext) |
| Update Coupling | ✅ Decoupled | ❌ Coupled with Sync |
| Rendered Manifests | ✅ Compatible | ❌ Incompatible |
| Security Posture | ✅ Strong | ⚠️ Weak |
| Complexity | ⚠️ Medium | ✅ Simple |
| Argo CD Version | Any | Any |
Best Practices
Principle of Least Privilege
Argo CD should only have permissions it absolutely needs—not secret access
Secret Rotation
Use operators that support automatic secret rotation from external systems
Separate Concerns
Decouple secret management from application deployment workflows
Audit Trail
Leverage external secret manager audit logs for compliance
Related Resources
Security Overview
Comprehensive Argo CD security architecture
TLS Configuration
Secure inter-component communication
RBAC Configuration
Control access to Argo CD resources
Config Management Plugins
Learn about plugin architecture