Problem: "I follow GitOps using Sealed Secrets, but I need to manually recreate my manifests whenever my secrets need to be updated."
Solution: Use this tool to automatically track changes in your secrets manager and update your Sealed Secrets manifests.
Currently only input secrets files are supported, but we plan to add support for secrets managers in the future such as Vault, AWS Secrets Manager, etc.
Note: It is highly recommended to encrypt your input secrets files using git-crypt or similar tools.
You can download the corresponding binary for every supported version from releases section. Alternatively, you can use the following commands to install the latest version (assuming linux/amd64):
latest_release_name="$(curl -sH "Accept: application/vnd.github.v3+json" https://api.github.com/repos/juan131/sealed-secrets-updater/releases | jq -r "map(select(.prerelease == false)) | .[0].name")"
latest_version="${latest_release_name#"sealed-secrets-updater-v"}"
curl -sL "https://github.com/juan131/sealed-secrets-updater/releases/download/v${latest_version}/sealed-secrets-updater-${latest_version}-linux-amd64.tar.gz" | tar -xz sealed-secrets-updater
mv sealed-secrets-updater /usr/local/bin/sealed-secrets-updater
chmod +x /usr/local/bin/sealed-secrets-updater
Basic usage:
sealed-secrets-updater update --config config.json
Run the command below to see the rest available commands:
sealed-secrets-updater help
Sealed Secrets Updater uses a configuration file (JSON format) to determine how to update your manifests such as the ones below:
{
"kubesealConfig": {
"controllerNamespace": "kube-system",
"controllerName": "sealed-secrets-controller"
},
"secrets": [
{
"name": "my-secret",
"namespace": "default",
"input": {
"type": "file",
"config": {
"path": "path/to/my-secret-inputs.json"
}
},
"output": {
"type": "file",
"config": {
"path": "path/to/my-sealed-secret.json"
}
}
}
]
}
You can find some basic examples in the examples directory to learn how to configure Sealed Secrets Updater to update your manifests using different output types. Please note only two output types are supported at the moment:
apply
: Directly apply the new Sealed Secrets to your cluster.file
: Save the new Sealed Secrets to a file.
Note: Refer to the JSON Schema for the full list of available options.
Please refer to the tutorials directory for some tutorials on how to use Sealed Secrets Updater with other tools such as ArgoCD, GitHub Actions, etc.