2
2
3
3
set -euo pipefail
4
4
5
+ # shellcheck source-path=SCRIPTDIR
6
+ source " $( dirname " ${BASH_SOURCE[0]} " ) /../lib/log.sh"
7
+
5
8
readonly default_image=" hashicorp/envconsul"
6
9
readonly default_tag=" latest"
7
10
readonly image=" ${BUILDKITE_PLUGIN_VAULT_ENV_IMAGE:- ${default_image} } :${BUILDKITE_PLUGIN_VAULT_ENV_TAG:- ${default_tag} } "
8
11
9
12
# Fail if there is no Vault token; gotta log in first
10
13
# #######################################################################
11
14
if [ -z " ${VAULT_TOKEN:- } " ]; then
12
- echo " --- :skull_and_crossbones: Could not find 'VAULT_TOKEN' in the environment!"
13
- exit 1
15
+ raise_error " Could not find 'VAULT_TOKEN' in the environment!"
14
16
fi
15
17
16
18
# Resolve Vault address
@@ -20,8 +22,7 @@ if [ -n "${BUILDKITE_PLUGIN_VAULT_ENV_ADDRESS:-}" ]; then
20
22
export VAULT_ADDR
21
23
fi
22
24
if [ -z " ${VAULT_ADDR:- } " ]; then
23
- echo " --- :skull_and_crossbones: Could not find 'VAULT_ADDR' in the environment, and 'BUILDKITE_PLUGIN_VAULT_ENV_ADDRESS' was not specified!"
24
- exit 1
25
+ raise_error " Could not find 'VAULT_ADDR' in the environment, and 'BUILDKITE_PLUGIN_VAULT_ENV_ADDRESS' was not specified!"
25
26
fi
26
27
27
28
# Resolve Vault namespace
@@ -31,8 +32,7 @@ if [ -n "${BUILDKITE_PLUGIN_VAULT_ENV_NAMESPACE:-}" ]; then
31
32
export VAULT_NAMESPACE
32
33
fi
33
34
if [ -z " ${VAULT_NAMESPACE:- } " ]; then
34
- echo " --- :skull_and_crossbones: Could not find 'VAULT_NAMESPACE' in the environment, and 'BUILDKITE_PLUGIN_VAULT_ENV_NAMESPACE' was not specified!"
35
- exit 1
35
+ raise_error " Could not find 'VAULT_NAMESPACE' in the environment, and 'BUILDKITE_PLUGIN_VAULT_ENV_NAMESPACE' was not specified!"
36
36
fi
37
37
38
38
# Resolve secret prefix
@@ -61,8 +61,7 @@ plugin_read_list_into_result() {
61
61
local parameter=" ${prefix} _${i} "
62
62
63
63
if [[ -n " ${! prefix:- } " ]]; then
64
- echo " :rotating_light: Plugin received a string for $prefix , expected an array" >&2
65
- exit 1
64
+ raise_error " Plugin received a string for $prefix , expected an array"
66
65
fi
67
66
68
67
while [[ -n " ${! parameter:- } " ]]; do
@@ -87,7 +86,7 @@ envconsul_env() {
87
86
88
87
# Explicitly *not* using `--rm` so we can output the container
89
88
# logs in case of a failure.
90
- docker run \
89
+ log_and_run docker run \
91
90
--env VAULT_TOKEN \
92
91
--name=" ${container_name} " \
93
92
-- \
@@ -105,23 +104,23 @@ envconsul_env() {
105
104
}
106
105
107
106
cleanup () {
108
- docker container rm --force " ${container_name} " > /dev/null 2>&1
107
+ log_and_run docker container rm --force " ${container_name} " > /dev/null 2>&1
109
108
}
110
109
111
110
trap cleanup EXIT INT QUIT
112
111
113
- echo " --- :vault: Pulling secrets from Vault"
114
- echo " Using Docker image: ${image} "
115
- echo " VAULT_ADDR=${VAULT_ADDR} "
116
- echo " VAULT_NAMESPACE=${VAULT_NAMESPACE} "
112
+ log " --- :vault: Pulling secrets from Vault"
113
+ log " Using Docker image: ${image} "
114
+ log " VAULT_ADDR=${VAULT_ADDR} "
115
+ log " VAULT_NAMESPACE=${VAULT_NAMESPACE} "
117
116
118
117
if vault_env=$( envconsul_env) ; then
119
118
set -o allexport
120
119
eval " ${vault_env} "
121
120
set +o allexport
122
121
else
123
122
retval=$?
124
- echo " --- :skull_and_crossbones: Failed to retrieve secrets from Vault"
125
- docker container logs " ${container_name} "
123
+ log " --- :skull_and_crossbones: Failed to retrieve secrets from Vault"
124
+ log_and_run docker container logs " ${container_name} "
126
125
exit ${retval}
127
126
fi
0 commit comments