25 lines
957 B
YAML
25 lines
957 B
YAML
steps:
|
|
- name: fetch-secrets
|
|
image: hashicorp/vault:latest
|
|
environment:
|
|
VAULT_ADDR:
|
|
from_secret: vault_addr
|
|
VAULT_ROLE_ID:
|
|
from_secret: vault_role_id
|
|
VAULT_SECRET_ID:
|
|
from_secret: vault_secret_id
|
|
commands:
|
|
- export VAULT_TOKEN=$(vault write -field=token auth/approle/login role_id=$VAULT_ROLE_ID secret_id=$VAULT_SECRET_ID)
|
|
- vault kv get -format=json projects/test/demo > /tmp/secrets.json
|
|
- python3 -c "import json; d=json.load(open('/tmp/secrets.json'))['data']['data']; f=open('.env.vault','w'); [f.write(f'export {k}={v}\n') for k,v in d.items()]"
|
|
- echo "Fetched secrets:"
|
|
- cat .env.vault
|
|
|
|
- name: use-secrets
|
|
image: alpine
|
|
commands:
|
|
- source .env.vault
|
|
- echo "APP_NAME=$APP_NAME"
|
|
- echo "DB_HOST=$DB_HOST"
|
|
- echo "DB_PASS length=$(echo -n $DB_PASS | wc -c) chars"
|
|
- echo "Secrets are available in any step via .env.vault"
|