vaultify
Vaultify templates file from vault secrets and auto renews leases
Running vaultify
vaultify
has three commands, template
, renew-leases
, and run
Template
The template
command reads a template, renders the vault secrets into it, and stores the result in a file. In addition it also stores the secret lease information in a secrets file to be able to renew the leases.
template.yaml example:
credentials:
<{- $admin := vault "database/creds/maindb-admin" }>
username: <{ $admin.Data.username | quote }>
password: <{ $admin.Data.password | quote }>
Running vaultify template
:
vaultify template --vault https://vault.vault:8200 \
--role maindb-admin \
--template-file template.yaml \
--output-file /app/config.yaml \
--secrets-output-file /app/secrets.json \
-vv
Renew-leases
The renew-leases
command renews leases that for created by template
command and stored in a secrets file.
Running vaultify renew-leases
:
vaultify renew-leases --vault https://vault.vault:8200 \
--secrets-output-file /app/secrets.json \
--metrics-address ":9105" \
-vv
Run
Running vaultify and continuously renew leases:
vaultify run --vault https://vault.vault:8200 \
--role maindb-admin \
--template-file template.yaml \
--output-file /app/config.yaml \
--metrics-address ":9105" \
-vv
Note that running only this might not work for all work loads. If you run your application in kubernetes and your configuration needs to be rendered before the application starts, you should run the template
command in a initContainer and the renew-leases
command in a side-car.
Metrics
Vaultify run
and renew-leases
are exposing the following metrics:
metric | type | description |
---|---|---|
vaultify_auth_lease_renewed |
counter | renewed auth leases |
vaultify_auth_lease_renewal_failed |
counter | failed auth lease renewals |
vaultify_secret_lease_renewed |
counter | renewed secret leases |
vaultify_secret_lease_renewal_failed |
counter | failed secret lease renewals |