Conversation
Replace source-text assertions with artifact behavior tests, including the tar SIGPIPE regression. Share the builder command between CI and local usage, narrow intermediate cleanup, and clarify smoke-test limits.
Drop the fixture tests, the kernel-devel.json metadata and the standalone export script; inline the export into the kernel component. Trim the workflow reporting, the builder image and the duplicated docs, and stop tagging the builder image with the kernel release, which is not unique across dstack versions.
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.
Problem
The guest image ships kernel modules but no kernel build tree, so an application that needs its own
.kohas no supported way to build one against the exact kernel that boots in the CVM (Module.symvers, generated headers, config, matching compiler).Fix
scripts/package/install-extmod-buildviamake run-command(the same pathmake bindeb-pkguses forlinux-headers), adds.config, and dropsscripts/mod/devicetable-offsets.s, a-fverbose-asmintermediate that embeds the absolute build path and breaks reproducibility.mkosi.finalizemoves the tree out of the rootfs before measurement;make-release-artifacts.sharchives it as the new optionalartifacts.kernel_develmanifest entry, andassemble.shpublishesdstack-<version>-kernel-devel.tar.gz. It is not insha256sum.txt, soos_image_hashis unaffected.parity.jsonforbids it in the prod rootfs, andrepro-checkcompares the archive byte for byte.os/image/kernel-builder/buildsghcr.io/dstack-tee/dstack-kernel-builder:<version>: the tree plus a compiler from the pinned Debian snapshot, withKDIRset. The Dockerfile fails if the tree'skernel.releasedoes not match. CI builds it on dispatch and pushes it on release tags.Verification (local)
./os/mkosi/build.sh --archive imagesucceeds; producesdstack-0.6.0-kernel-devel.tar.gz(13 MB, 7756 entries, contains.configandModule.symvers, nodevicetable-offsets.s).sha256sum.txtand the rootfs contain nokernel-develentries.os/image/kernel-builder/build.shbuilds the image; a hello-world module builds in it as a non-root user withvermagic: 6.18.40-dstack SMP preempt mod_unload../os/mkosi/build.sh lintandprekpass.Not run locally:
repro-checkand a module load test inside a CVM.