Skip to content

build: consume the distill-fs v0.1.1 static release - #62

Merged
tianyuzhou95 merged 2 commits into
mainfrom
codex/distill-fs-release
Sep 10, 2026
Merged

build: consume the distill-fs v0.1.1 static release#62
tianyuzhou95 merged 2 commits into
mainfrom
codex/distill-fs-release

Conversation

@tianyuzhou95

@tianyuzhou95 tianyuzhou95 commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

The all-in-one image currently recompiles distill-fs from its source submodule on every build. This change downloads the published distill-fs v0.1.1 static Linux/amd64 release, with its URL and verified archive SHA-256 pinned in an AKernel-owned manifest.

The installer verifies the archive checksum, package metadata, binary checksum, CLI version, and static ELF linkage, then packages the binary, licenses, and provenance manifest. Build prerequisites and CI no longer require the distill-fs source checkout, and make versions reports the release tag and archive digest. The sandboxd workflow and both submodule gitlinks remain unchanged.

Validation:

  • The official distill-fs v0.1.1 release workflow passed its build, unit/FUSE tests, static binary checks, and publication.
  • On the designated Linux/amd64 test node, the official release passed all eight installer checks, including corrupt archives, invalid pins, incompatible metadata, and dynamic binary rejection.
  • The actual AKernel distill-fs-runtime Docker stage downloaded the official GitHub Release, verified it, and built successfully. Its installed binary reported distill_fs 0.1.1 with container networking disabled.
  • make versions, make deploy-script-check, shell syntax checks, and git diff --check passed locally.

The complete all-in-one build, SDK E2E examples, and runsc checkpoint reload E2E passed in CI run 34455007999. The build log confirms an actual distill-fs release download and both checksum checks, followed by copying the installed artifact into the final image.

The first CI run hit an intermittent cold-start scheduling timeout. Failure diagnostics now also collect runtime file logs. A separate reproduction with the same build found that a YuanRong status-only resource update from RECOVERING to NORMAL does not notify the pending scheduling queue; its 30-second periodic retry can occur after the create deadline. The startup script's frontend-only health check exposes that window. This PR does not change YuanRong behavior or extend timeouts.

Download the published Linux/amd64 distill-fs binary instead of compiling
its source checkout for each all-in-one image. Pin the release URL and
verified archive checksum in an AKernel-owned manifest, and check package
provenance, binary checksum, CLI version, and static ELF linkage before
installation. Retain its licenses and source manifest in the image.

Remove distill-fs source initialization from CI and build prerequisites,
report the release version and digest through make versions, and document
the release update workflow. Keep the optional source submodule as a
reference and leave the sandboxd source revision unchanged.

Add installer checks for the real release and invalid inputs so corrupted
or incompatible artifacts fail before they can enter the image.

Signed-off-by: Tianyu Zhou <albert.zty@antgroup.com>
Include sandboxd, YuanRong scheduling components, and distill-fs daemon
logs in failure diagnostics. These services write their detailed errors
to files, so the systemd journal alone cannot explain why a node remains
in RECOVERING while sandbox creation times out.

Signed-off-by: Tianyu Zhou <albert.zty@antgroup.com>
@tianyuzhou95
tianyuzhou95 merged commit cc84df0 into main Sep 10, 2026
8 checks passed
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.

2 participants