Skip to content

Commit 1d18432

Browse files
authored
Merge pull request #6315 from alindt/fix-vault-curl
Fix error detection in vault deploy hook
2 parents 277f13f + e81635f commit 1d18432

1 file changed

Lines changed: 84 additions & 14 deletions

File tree

deploy/vault.sh

Lines changed: 84 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -80,52 +80,122 @@ vault_deploy() {
8080
if [ -n "$VAULT_RENEW_TOKEN" ]; then
8181
URL="$VAULT_ADDR/v1/auth/token/renew-self"
8282
_info "Renew the Vault token to default TTL"
83-
if ! _post "" "$URL" >/dev/null; then
83+
_response=$(_post "" "$URL")
84+
if [ "$?" != "0" ]; then
8485
_err "Failed to renew the Vault token"
8586
return 1
8687
fi
88+
if echo "$_response" | grep -q '"errors":\['; then
89+
_err "Failed to renew the Vault token: $_response"
90+
return 1
91+
fi
8792
fi
8893

8994
URL="$VAULT_ADDR/v1/$VAULT_PREFIX/$_cdomain"
9095

9196
if [ -n "$VAULT_FABIO_MODE" ]; then
9297
_info "Writing certificate and key to $URL in Fabio mode"
9398
if [ -n "$VAULT_KV_V2" ]; then
94-
_post "{ \"data\": {\"cert\": \"$_cfullchain\", \"key\": \"$_ckey\"} }" "$URL" >/dev/null || return 1
99+
_response=$(_post "{ \"data\": {\"cert\": \"$_cfullchain\", \"key\": \"$_ckey\"} }" "$URL")
100+
if [ "$?" != "0" ]; then return 1; fi
101+
if echo "$_response" | grep -q '"errors":\['; then
102+
_err "Vault error: $_response"
103+
return 1
104+
fi
95105
else
96-
_post "{\"cert\": \"$_cfullchain\", \"key\": \"$_ckey\"}" "$URL" >/dev/null || return 1
106+
_response=$(_post "{\"cert\": \"$_cfullchain\", \"key\": \"$_ckey\"}" "$URL")
107+
if [ "$?" != "0" ]; then return 1; fi
108+
if echo "$_response" | grep -q '"errors":\['; then
109+
_err "Vault error: $_response"
110+
return 1
111+
fi
97112
fi
98113
else
99114
if [ -n "$VAULT_KV_V2" ]; then
100115
_info "Writing certificate to $URL/cert.pem"
101-
_post "{\"data\": {\"value\": \"$_ccert\"}}" "$URL/cert.pem" >/dev/null || return 1
116+
_response=$(_post "{\"data\": {\"value\": \"$_ccert\"}}" "$URL/cert.pem")
117+
if [ "$?" != "0" ]; then return 1; fi
118+
if echo "$_response" | grep -q '"errors":\['; then
119+
_err "Vault error writing cert.pem: $_response"
120+
return 1
121+
fi
122+
102123
_info "Writing key to $URL/cert.key"
103-
_post "{\"data\": {\"value\": \"$_ckey\"}}" "$URL/cert.key" >/dev/null || return 1
124+
_response=$(_post "{\"data\": {\"value\": \"$_ckey\"}}" "$URL/cert.key")
125+
if [ "$?" != "0" ]; then return 1; fi
126+
if echo "$_response" | grep -q '"errors":\['; then
127+
_err "Vault error writing cert.key: $_response"
128+
return 1
129+
fi
130+
104131
_info "Writing CA certificate to $URL/ca.pem"
105-
_post "{\"data\": {\"value\": \"$_cca\"}}" "$URL/ca.pem" >/dev/null || return 1
132+
_response=$(_post "{\"data\": {\"value\": \"$_cca\"}}" "$URL/ca.pem")
133+
if [ "$?" != "0" ]; then return 1; fi
134+
if echo "$_response" | grep -q '"errors":\['; then
135+
_err "Vault error writing ca.pem: $_response"
136+
return 1
137+
fi
138+
106139
_info "Writing full-chain certificate to $URL/fullchain.pem"
107-
_post "{\"data\": {\"value\": \"$_cfullchain\"}}" "$URL/fullchain.pem" >/dev/null || return 1
140+
_response=$(_post "{\"data\": {\"value\": \"$_cfullchain\"}}" "$URL/fullchain.pem")
141+
if [ "$?" != "0" ]; then return 1; fi
142+
if echo "$_response" | grep -q '"errors":\['; then
143+
_err "Vault error writing fullchain.pem: $_response"
144+
return 1
145+
fi
108146
else
109147
_info "Writing certificate to $URL/cert.pem"
110-
_post "{\"value\": \"$_ccert\"}" "$URL/cert.pem" >/dev/null || return 1
148+
_response=$(_post "{\"value\": \"$_ccert\"}" "$URL/cert.pem")
149+
if [ "$?" != "0" ]; then return 1; fi
150+
if echo "$_response" | grep -q '"errors":\['; then
151+
_err "Vault error writing cert.pem: $_response"
152+
return 1
153+
fi
154+
111155
_info "Writing key to $URL/cert.key"
112-
_post "{\"value\": \"$_ckey\"}" "$URL/cert.key" >/dev/null || return 1
156+
_response=$(_post "{\"value\": \"$_ckey\"}" "$URL/cert.key")
157+
if [ "$?" != "0" ]; then return 1; fi
158+
if echo "$_response" | grep -q '"errors":\['; then
159+
_err "Vault error writing cert.key: $_response"
160+
return 1
161+
fi
162+
113163
_info "Writing CA certificate to $URL/ca.pem"
114-
_post "{\"value\": \"$_cca\"}" "$URL/ca.pem" >/dev/null || return 1
164+
_response=$(_post "{\"value\": \"$_cca\"}" "$URL/ca.pem")
165+
if [ "$?" != "0" ]; then return 1; fi
166+
if echo "$_response" | grep -q '"errors":\['; then
167+
_err "Vault error writing ca.pem: $_response"
168+
return 1
169+
fi
170+
115171
_info "Writing full-chain certificate to $URL/fullchain.pem"
116-
_post "{\"value\": \"$_cfullchain\"}" "$URL/fullchain.pem" >/dev/null || return 1
172+
_response=$(_post "{\"value\": \"$_cfullchain\"}" "$URL/fullchain.pem")
173+
if [ "$?" != "0" ]; then return 1; fi
174+
if echo "$_response" | grep -q '"errors":\['; then
175+
_err "Vault error writing fullchain.pem: $_response"
176+
return 1
177+
fi
117178
fi
118179

119180
# To make it compatible with the wrong ca path `chain.pem` which was used in former versions
120181
if _contains "$(_get "$URL/chain.pem")" "-----BEGIN CERTIFICATE-----"; then
121182
_err "The CA certificate has moved from chain.pem to ca.pem, if you don't depend on chain.pem anymore, you can delete it to avoid this warning"
122183
_info "Updating CA certificate to $URL/chain.pem for backward compatibility"
123184
if [ -n "$VAULT_KV_V2" ]; then
124-
_post "{\"data\": {\"value\": \"$_cca\"}}" "$URL/chain.pem" >/dev/null || return 1
185+
_response=$(_post "{\"data\": {\"value\": \"$_cca\"}}" "$URL/chain.pem")
186+
if [ "$?" != "0" ]; then return 1; fi
187+
if echo "$_response" | grep -q '"errors":\['; then
188+
_err "Vault error writing chain.pem: $_response"
189+
return 1
190+
fi
125191
else
126-
_post "{\"value\": \"$_cca\"}" "$URL/chain.pem" >/dev/null || return 1
192+
_response=$(_post "{\"value\": \"$_cca\"}" "$URL/chain.pem")
193+
if [ "$?" != "0" ]; then return 1; fi
194+
if echo "$_response" | grep -q '"errors":\['; then
195+
_err "Vault error writing chain.pem: $_response"
196+
return 1
197+
fi
127198
fi
128199
fi
129200
fi
130-
131201
}

0 commit comments

Comments
 (0)