diff --git a/deployments/openbao/deploy.sh b/deployments/openbao/deploy.sh index ae55f71..ee73647 100644 --- a/deployments/openbao/deploy.sh +++ b/deployments/openbao/deploy.sh @@ -141,11 +141,15 @@ check_bind_addr() { warn "SKIP_BIND_CHECK=1 -- not checking whether ${bare} is local." return 0 fi - addrs="$(host_addrs)" + # `|| true` is load-bearing: host_addrs ends in a pipeline, and under + # `set -o pipefail` a probe that fails AFTER printing usable addresses (or an + # absent awk) would make this plain assignment non-zero and kill the whole + # deploy at this line, silently -- before the fail-open below is ever reached. + addrs="$(host_addrs || true)" # Empty means the probe found no tool to ask, not that the address is absent # -- do not block a deploy on that. if [[ -z "$addrs" ]]; then - warn "No ip/ifconfig to list this host's addresses; skipping the bind check." + warn "Could not list this host's addresses (no ip/ifconfig, or it failed); skipping the bind check." return 0 fi if printf '%s\n' "$addrs" | grep -qxF "$bare"; then