diff --git a/CHANGELOG.md b/CHANGELOG.md index c8b1b99..d1f313d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,13 @@ publish a tag that has no section here. ## [Unreleased] +## [0.2.1] - 2026-10-28 + +### Fixed +- `bootstrap.sh --image-url` with a release URL took the release's `SHA256SUMS` (the binaries') instead + of `commissioning-SHA256SUMS`; it now prefers the image's and says when a private repository + needs `IMAGE_TOKEN`. + ## [0.2.0] - 2026-10-28 Second release: install from scratch, network model and region/rack split, external IPAM diff --git a/deploy/bootstrap.sh b/deploy/bootstrap.sh index 218e1b6..7e58f02 100755 --- a/deploy/bootstrap.sh +++ b/deploy/bootstrap.sh @@ -238,10 +238,12 @@ if [ -s $IMG/vmlinuz ] && [ -s $IMG/initrd.img ] && [ -s $IMG/filesystem.squashf elif [ -n "$IMAGE_URL" ]; then tmp=$(mktemp -d -p /srv/rollcall) auth=(); [ -n "${IMAGE_TOKEN:-}" ] && auth=(-H "Authorization: token $IMAGE_TOKEN") - pre="" - if ! curl -fsSL "${auth[@]}" -o "$tmp/SHA256SUMS" "$IMAGE_URL/SHA256SUMS"; then - pre=commissioning- # a release: the image files carry a prefix - curl -fsSL "${auth[@]}" -o "$tmp/SHA256SUMS" "$IMAGE_URL/${pre}SHA256SUMS" || die "no SHA256SUMS or ${pre}SHA256SUMS at $IMAGE_URL" + # a release carries the image as commissioning-* (its plain SHA256SUMS is the binaries'); + # a region's /rollcall directory has the plain names + pre=commissioning- + if ! curl -fsSL "${auth[@]}" -o "$tmp/SHA256SUMS" "$IMAGE_URL/${pre}SHA256SUMS"; then + pre="" + curl -fsSL "${auth[@]}" -o "$tmp/SHA256SUMS" "$IMAGE_URL/SHA256SUMS" || die "no commissioning-SHA256SUMS or SHA256SUMS at $IMAGE_URL${IMAGE_TOKEN:+}$( [ -z "${IMAGE_TOKEN:-}" ] && echo ' (private repository? set IMAGE_TOKEN)')" fi for f in vmlinuz initrd.img filesystem.squashfs; do curl -fSL --progress-bar "${auth[@]}" -o "$tmp/$f" "$IMAGE_URL/$pre$f"; done (cd "$tmp" && sha256sum -c --quiet SHA256SUMS) || die "checksum mismatch"