Skip to content

feat(vmm): OCI registry image discovery and pull#589

Merged
kvinwang merged 2 commits intomasterfrom
worktree-vmm-registry-images
Mar 21, 2026
Merged

feat(vmm): OCI registry image discovery and pull#589
kvinwang merged 2 commits intomasterfrom
worktree-vmm-registry-images

Conversation

@kvinwang
Copy link
Collaborator

@kvinwang kvinwang commented Mar 20, 2026

Summary

  • Add image_registry config field to VMM for specifying an OCI registry (e.g., cr.kvin.wang/dstack/guest-image)
  • New RPCs: ListRegistryImages (lists tags with local/pulling status) and PullRegistryImage (background pull)
  • Registry module: discovers tags via Docker Registry HTTP API v2, pulls via docker pull + docker export to extract flat image files
  • Pull runs as background tokio::spawn task; pulling state tracked server-side in App.pulling_tags — survives page refresh
  • Web UI: "Image Registry" button opens dialog listing all available versions with Pull/Pulling/Downloaded status, auto-refreshes every 3s

Test plan

  • Configure image_registry in vmm.toml, verify ListRegistryImages returns tags
  • Click Pull on a remote image, verify it downloads and extracts to image_path
  • Refresh page during pull, verify pulling state persists
  • Verify pulled image appears in Create VM image selector

@kvinwang kvinwang force-pushed the worktree-vmm-registry-images branch 12 times, most recently from f8dc02c to e642b6f Compare March 21, 2026 01:27
Add ability for VMM to discover available guest images from an OCI
registry and pull them on-demand through the web UI. Images are pulled
in the background with status tracked server-side, surviving page
refreshes. The UI auto-refreshes every 3s while the registry panel
is open.

- New `image_registry` config field (e.g., "cr.kvin.wang/dstack/guest-image")
- New RPC: ListRegistryImages, PullRegistryImage
- Registry module: list tags via Docker Registry HTTP API v2, pull and
  extract via `docker export`
- Background pull with pulling state in App memory
- UI: Image Registry button + dialog with pull/status per tag
@kvinwang kvinwang force-pushed the worktree-vmm-registry-images branch from e642b6f to b17435a Compare March 21, 2026 03:22
@kvinwang kvinwang enabled auto-merge March 21, 2026 03:25
@kvinwang kvinwang disabled auto-merge March 21, 2026 03:25
@kvinwang kvinwang force-pushed the worktree-vmm-registry-images branch from 9e85d6b to cb967ae Compare March 21, 2026 03:38
- Add scripts/dstack-image-oci.sh for pushing guest images to OCI registries
- Document registry setup in guest-image-setup.md (push, VMM config, pull flow)
@kvinwang kvinwang force-pushed the worktree-vmm-registry-images branch from cb967ae to 99328ed Compare March 21, 2026 03:44
@kvinwang kvinwang enabled auto-merge March 21, 2026 03:50
@kvinwang kvinwang merged commit 06a8fe5 into master Mar 21, 2026
15 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.

1 participant