22 lines
615 B
Bash
22 lines
615 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
: "${CI_SPIFFE_ID:?CI_SPIFFE_ID is required}"
|
|
: "${SPIFFE_ENDPOINT_SOCKET:?SPIFFE_ENDPOINT_SOCKET is required}"
|
|
|
|
socket_path=${SPIFFE_ENDPOINT_SOCKET#unix://}
|
|
deadline=$((SECONDS + 120))
|
|
while (( SECONDS < deadline )); do
|
|
if /opt/spire/bin/spire-agent api fetch x509 \
|
|
-socketPath "$socket_path" \
|
|
-output json 2>/dev/null | \
|
|
jq -e --arg id "$CI_SPIFFE_ID" \
|
|
'any(.svids[]?; .spiffe_id == $id)' >/dev/null; then
|
|
exec /usr/local/bin/run.sh
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
printf 'timed out waiting for OpenSandbox SPIFFE identity %s\n' "$CI_SPIFFE_ID" >&2
|
|
exit 1
|