1#!/usr/bin/env bash
2
3set -ex
4
5make dockerbuild
6
7docker kill vaultplg 2>/dev/null || true
8tmpdir=$(mktemp -d vaultplgXXXXXX)
9mkdir "$tmpdir/data"
10docker run --rm -d -p8200:8200 --name vaultplg -v "$(pwd)/$tmpdir/data":/data -v $(pwd)/bin:/example --cap-add=IPC_LOCK -e 'VAULT_LOCAL_CONFIG=
11{
12  "backend": {"file": {"path": "/data"}},
13  "listener": [{"tcp": {"address": "0.0.0.0:8200", "tls_disable": true}}],
14  "plugin_directory": "/example",
15  "log_level": "debug",
16  "disable_mlock": true,
17  "api_addr": "http://localhost:8200"
18}
19' vault server
20sleep 1
21
22export VAULT_ADDR=http://localhost:8200
23
24initoutput=$(vault operator init -key-shares=1 -key-threshold=1 -format=json)
25vault operator unseal $(echo "$initoutput" | jq -r .unseal_keys_hex[0])
26
27export VAULT_TOKEN=$(echo "$initoutput" | jq -r .root_token)
28
29vault write sys/plugins/catalog/database/mongodbatlas-database-plugin \
30    sha256=$(shasum -a 256 bin/vault-plugin-database-mongodbatlas | cut -d' ' -f1) \
31    command="vault-plugin-database-mongodbatlas"
32
33vault secrets enable database
34