Skip to content

Ship the pinned nydus-image in builder bundles - #66

Merged
rlrs merged 1 commit into
mainfrom
fix/builder-nydus-image
Nov 7, 2026
Merged

rlrs merged 1 commit into
mainfrom
fix/builder-nydus-image

Conversation

@rlrs

@rlrs rlrs commented Nov 7, 2026

Copy link
Copy Markdown
Owner

Builder VM init installs runtime/nydus/nydus-image from the builder bundle and stops when it is missing (the bundle's nydus-image does not match chunk_store.nydus_image_sha256). derive_builder_bundle.py never added that file. A UCloud bundle had it by hand, but no Hetzner builder bundle ever did, so no builder finished init there and builds sent to the builder pool stayed queued.

  • derive_builder_bundle.py takes --nydus-image and --nydus-image-sha256 (the deployment's chunk_store.nydus_image_sha256). It installs the binary at the path VM init reads, mode 0755, records it in the manifest, and refuses a binary with a different digest.
  • Tests cover the bundled binary, its mode, the manifest entry, and refusing the wrong binary.
  • docs/operations.md release steps and a CHANGELOG.md entry (Unreleased).

Production (already done, 2026-11-07):

  • I repacked the deployed builder bundle with add_nydus_image and the gateway's pinned nydus-image. The only difference from the old bundle is that file, and the old bundle is kept as a backup.
  • A fresh builder then finished init, and one queued recipe built to ready in about a minute.

Checks: unit tier (762 tests) and ruff pass.

🤖 Generated with Claude Code

Builder init installs runtime/nydus/nydus-image from the bundle and stops
when it is missing, but derive_builder_bundle.py never added it. No Hetzner
builder bundle had it, so builders never finished init there and builds the
builder pool owns stayed queued. The script now takes --nydus-image and its
pinned digest and refuses any other binary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rlrs
rlrs merged commit 72f1e96 into main Nov 7, 2026
4 checks passed
@rlrs rlrs mentioned this pull request Nov 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant