From 84a3f9a20509b553ce5fa648dbcdc07e31312789 Mon Sep 17 00:00:00 2001 From: nandi <78769380+codegod100@users.noreply.github.com> Date: Fri, 7 Aug 2026 22:48:00 -0700 Subject: [PATCH] fix(buildkite): surface soft-load failures for cluster secrets Silent empty soft-load hid pipeline-scoped secret policy misses (e.g. RADICLE_SECRET_KEY allowed only on `sleek`, not sleek-5u9xbr). Co-authored-by: Cursor --- scripts/buildkite/bootstrap.sh | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/scripts/buildkite/bootstrap.sh b/scripts/buildkite/bootstrap.sh index ea86405..c5a892c 100755 --- a/scripts/buildkite/bootstrap.sh +++ b/scripts/buildkite/bootstrap.sh @@ -30,16 +30,32 @@ export PATH="${RAD_HOME}/bin:${PATH}" RADICLE_SEED="${RADICLE_SEED:-z6MknYm3iSpuY5hLCH93K5Ls5KG7cBK4fQwybqcHzxDsT2jU@nandi.radicle.garden:58019}" bk_soft_secret() { - local name=$1 value="" + local name=$1 value="" err="" errf rc=0 if [[ -n "${!name:-}" ]]; then return 0 fi if command -v buildkite-agent >/dev/null 2>&1; then - value="$(buildkite-agent secret get "$name" 2>/dev/null || true)" - if [[ -n "$value" ]]; then + errf="$(mktemp)" + set +e + # Trailing newline is stripped by $() — restore one for PEM materialization. + value="$(buildkite-agent secret get "$name" 2>"$errf")" + rc=$? + set -e + err="$(tr -d '\r' <"$errf" | tr '\n' ' ' | sed 's/[[:space:]]*$//')" + rm -f "$errf" + if [[ $rc -eq 0 && -n "$value" ]]; then # printf -v keeps multiline PEMs intact (unlike export name=$value). - printf -v "$name" '%s' "$value" + printf -v "$name" '%s\n' "$value" export "$name" + return 0 + fi + # Common cause: cluster secret policy excludes this pipeline slug + # (e.g. scoped to `sleek` but agents run on `sleek-5u9xbr`). + if [[ -n "$err" ]]; then + echo "[bootstrap] warn: soft-load $name failed: $err" >&2 + echo "[bootstrap] hint: Default cluster → Secrets → $name → allow pipeline ${BUILDKITE_PIPELINE_SLUG:-sleek-5u9xbr} (or all pipelines)" >&2 + else + echo "[bootstrap] warn: soft-load $name returned empty (secret missing or policy excludes this pipeline)" >&2 fi fi } -- 2.51.2