Repository navigation
Ship the pinned nydus-image in builder bundles - #66
Merged
Merged
Conversation
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>
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Builder VM init installs
runtime/nydus/nydus-imagefrom 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.pynever 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 stayedqueued.derive_builder_bundle.pytakes--nydus-imageand--nydus-image-sha256(the deployment'schunk_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.docs/operations.mdrelease steps and aCHANGELOG.mdentry (Unreleased).Production (already done, 2026-11-07):
add_nydus_imageand the gateway's pinnednydus-image. The only difference from the old bundle is that file, and the old bundle is kept as a backup.readyin about a minute.Checks: unit tier (762 tests) and ruff pass.
🤖 Generated with Claude Code