Skip to content

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

Open
kvinwang wants to merge 1 commit intomasterfrom
worktree-vmm-registry-images
Open

feat(vmm): OCI registry image discovery and pull#589
kvinwang wants to merge 1 commit intomasterfrom
worktree-vmm-registry-images

Conversation

@kvinwang
Copy link
Collaborator

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

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 f6852e1 to a7571f9 Compare March 20, 2026 05:58
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