Secret Sync exposes a generic way to interact with external secret storage systems like HashiCorp Vault and provides a set of API models to interact and orchestrate the synchronization of secrets between them.
[!IMPORTANT] This is an early alpha version and breaking changes are expected. As such, it is not recommended for usage in production. We are actively working on expanding the list of supported stores and consolidating our APIs.
You can support us with your feedback, bug reports, and feature requests.
Supported store | Status |
---|---|
HashiCorp Vault | alpha |
[Local Provider] | alpha |
AWS Secrets Manager | planned |
Google Secrets Manager | planned |
Azure Key Vault | planned |
Kubernetes Secret | planned |
Check details about upcoming features by visiting the project issue board.
Consider a situation where Dev teams need access to secrets from different environments. Ops teams can provide access to secrets in the form of an isolated environment (e.g. new Vault instance) synced only with secrets Devs require; all in GitOps way.
To get familiarized, check out the collection of different examples using this tool.
Check out the project documentation or pkg.go.dev.
For an optimal developer experience, it is recommended to install Nix and direnv.
Alternatively, install Go on your computer then run make deps
to install the rest of the dependencies.
Make sure Docker is installed with Compose and Buildx.
Run project dependencies:
make up
Build the CLI:
make build
Run the test suite:
make test
Run linters:
make lint # pass -j option to run them in parallel
Some linter violations can automatically be fixed:
make fmt
Build artifacts locally:
make artifacts
Once you are done either stop or tear down dependencies:
make stop
# OR
make down
The project is licensed under the Apache 2.0 License.