Overview
The External Secret Syncer (ESS) continuously syncs secrets and parameters from external providers into Control Plane secrets. This template deploys ESS as a workload that polls your configured providers on a set interval and creates or updates Control Plane secrets to match.Supported Providers
What Gets Created
- Workload — An ESS container (
v1.2.4) with CPU-based autoscaling (1–3 replicas) and a readiness probe on/about. - Identity & Policy — An identity bound to the workload with
managepermissions on all secrets, allowing ESS to create and update Control Plane secrets. - Secret — An opaque secret containing the sync configuration (providers and secret mappings).
This template does not create a GVC. You must deploy it into an existing GVC.
Prerequisites
- A secret or parameter stored in one of the supported providers.
- Credentials with read access to the desired secret (API token, IAM keys, etc.). Alternatively, you can use a cloud access identity instead of supplying keys directly.
UI
Browse, install, and manage templates visually
CLI
Manage templates from your terminal
Terraform
Declare templates in your Terraform configurations
Pulumi
Declare templates in your Pulumi programs
Configuration
The defaultvalues.yaml for this template:
Workload
workload.name— The name of the ESS workload.workload.resources— CPU and memory allocated to the workload.workload.port— The port ESS listens on (default3004).workload.allowedIp— IP addresses allowed inbound access to the workload.
Providers
Each entry inessConfig.providers defines a connection to an external secret store. Every provider must have a unique name.
| Provider | Required Fields |
|---|---|
| HashiCorp Vault | vault.address, vault.token |
| AWS Parameter Store | awsParameterStore.region |
| AWS Secrets Manager | awsSecretsManager.region |
| 1Password | onePassword.serviceAccountToken |
| Doppler | doppler.accessToken |
accessKeyId and secretAccessKey. If omitted, ESS falls back to credentials provided through the workload’s cloud access identity.
A syncInterval can be set per provider to control how frequently ESS polls for changes (e.g., 30s, 1m, 5m).
Secrets
Each entry inessConfig.secrets maps an external secret to a Control Plane secret. Secrets support two types:
Dictionary — Creates a dictionary secret with multiple key-value pairs. Each key specifies a path to fetch from, a parse expression to extract a specific field, and an optional default value.
encoding: base64 to decode to plaintext.
Each secret can also override the provider’s syncInterval with its own value.
Vault KV engine secrets are nested under a When using
data key:parse, start with data to access the secret content (e.g., data.port).Synced Secret Output
A secret created by ESS will look like:syncer.cpln.io/lastError tag is empty on success. If ESS encounters an error syncing a secret, the tag is populated with the error message.
External References
AWS Parameter Store
AWS Systems Manager Parameter Store documentation
AWS Secrets Manager
AWS Secrets Manager documentation
HashiCorp Vault
HashiCorp Vault secret management
1Password
1Password secret management
Doppler
Doppler secrets platform
ESS Template
View the source files, default values, and chart definition