20 lines
812 B
Bash
Executable File
20 lines
812 B
Bash
Executable File
#!/bin/sh
|
|
|
|
set -euo pipefail
|
|
|
|
if [ "$(vault secrets list -format json | jq -r '.["[[ .vault.prefix ]]database/"].type')" != "database" ]; then
|
|
vault secrets enable -path [[ .vault.prefix ]]database database
|
|
fi
|
|
|
|
if [ "$(vault list -format json [[ .vault.prefix ]]database/config | jq '.[] | test("^[[ .instance ]]$")')" = "false" ]; then
|
|
vault write [[ .vault.prefix ]]database/config/[[ .instance ]] \
|
|
plugin_name="mysql-database-plugin" \
|
|
connection_url="{{username}}:{{password}}@tcp([[ (urlParse .mariadb.server.public_address).Host ]])/" \
|
|
allowed_roles="*" \
|
|
username=vault \
|
|
password="$(vault kv get -field vault_initial_pwd [[ .vault.prefix ]]kv/service/[[ .instance ]])" \
|
|
disable_escaping=true
|
|
vault write -force [[ .vault.prefix ]]database/rotate-root/[[ .instance ]]
|
|
fi
|
|
|