Skip to content

feat(view): use snapshot views for boot artifacts#571

Draft
sidneychang wants to merge 2 commits intourunc-dev:mainfrom
sidneychang:feat/shared-snapshot-view
Draft

feat(view): use snapshot views for boot artifacts#571
sidneychang wants to merge 2 commits intourunc-dev:mainfrom
sidneychang:feat/shared-snapshot-view

Conversation

@sidneychang
Copy link
Copy Markdown
Contributor

@sidneychang sidneychang commented Apr 23, 2026

Description

Create shim-managed read-only snapshot views for container rootfs layers so urunc can read the unikernel binary, initrd, and urunc.json without copying them out before handing the block image to the unikernel.
Pass the mounted view path through OCI annotations, clean up the view when task creation fails, and keep runtime-side rootfs selection state limited to choosing between the regular rootfs and the snapshot view.

Related issues

Fixes: #43

How was this tested?

LLM usage

Cursor

Checklist

  • I have read the contribution guide.
  • The linter passes locally (make lint).
  • The e2e tests of at least one tool pass locally (make test_ctr, make test_nerdctl, make test_docker, make test_crictl).
  • If LLMs were used: I have read the llm policy.

@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 23, 2026

Deploy Preview for urunc canceled.

Name Link
🔨 Latest commit d218dfc
🔍 Latest deploy log https://app.netlify.com/projects/urunc/deploys/69f1e4caf9fe970008f434db

Create shim-managed read-only snapshot views for container rootfs layers
so urunc can read the unikernel binary, initrd, and urunc.json without
copying them out before handing the block image to the unikernel.

Pass the mounted view path through OCI annotations, clean up the view
when task creation fails, and keep runtime-side rootfs selection state
limited to choosing between the regular rootfs and the snapshot view.

Fixes: urunc-dev#43
Signed-off-by: sidneychang <2190206983@qq.com>
@sidneychang sidneychang force-pushed the feat/shared-snapshot-view branch 6 times, most recently from 22cbf60 to d218dfc Compare April 29, 2026 11:00
Switch shared snapshot view lifetime management from shim-owned user markers to containerd container metadata labels. Pin shared views with gc.ref.snapshot labels, release the creation lease after create, and rely on delete-time unpin plus reconcile for eventual cleanup. Also replace shared host mount reuse with per-use temporary mountpoints, keep only per-view lifecycle locking, and add concurrency experiment tooling and notes.

Signed-off-by: sidneychang <2190206983@qq.com>
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.

Use a RO snapshot of container to retrieve unikernel binary

1 participant