-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathdev.sh
executable file
·71 lines (54 loc) · 1.99 KB
/
dev.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/env bash
set -e
DIR="$(cd "$(dirname "$(readlink "$0")")" && pwd)"
echo "==> Starting dev"
echo " --> Creating Scratch dir"
SCRATCH="$DIR/tmp"
mkdir -p "$SCRATCH/plugins"
echo " --> Writing Vault server config"
tee "$SCRATCH/vault.hcl" > /dev/null <<EOF
plugin_directory = "$SCRATCH/plugins"
EOF
echo " --> Configuring Shell Environment"
export VAULT_DEV_ROOT_TOKEN_ID="root"
export VAULT_ADDR="http://127.0.0.1:8200"
echo " --> Starting Vault"
vault server -dev -log-level="debug" -config="$SCRATCH/vault.hcl" > "$SCRATCH/vault.log" 2>&1 &
sleep 3
VAULT_PID=$!
echo " --> Building test sentry server"
make localserver
echo " --> Starting test sentry server"
random_local_port=$(seq 25000 30000 | shuf | head -n 1)
./internal/testing/pkg/localserver "${random_local_port}" > "$SCRATCH/localserver.log" 2>&1 &
LOCALSERVER_PID=$!
echo " --> Server is running on 127.0.0.1:${random_local_port}"
function cleanup {
echo ""
echo " ==> Cleaning up"
kill -INT "$VAULT_PID" "$LOCALSERVER_PID"
rm -rf "$SCRATCH"
}
trap cleanup EXIT
echo " --> Authenticating with vault"
vault login root &>/dev/null
cp "pkg/vault-plugin-sentry_$(go env GOOS)_$(go env GOARCH)" "$SCRATCH/plugins/vault-secrets-sentry"
SHASUM=$(shasum -a 256 "$SCRATCH/plugins/vault-secrets-sentry" | cut -d " " -f1)
echo " --> Registering plugin"
vault plugin register -sha256="$SHASUM" -command="vault-secrets-sentry" secret sentry | awk '{print " " $0}'
echo " --> Mounting plugin"
vault secrets enable -path=sentry sentry | awk '{print " " $0}'
echo " --> Reading out"
vault read sentry/info | awk '{print " " $0}'
echo ""
echo " --> Vault is available:"
awk '/Unseal Key:|Root Token:/ { print " " $0 }' "$SCRATCH/vault.log"
echo ""
echo " --> See vault logs in $SCRATCH/vault.log"
echo " --> See localserver logs in $SCRATCH/localserver.log"
echo ""
echo " ==> Ready!"
# Only hold control if not being sourced
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
wait $!
fi