Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document how to publish a lume VM image to a custom GHCR registry #22

Open
f-trycua opened this issue Feb 8, 2025 · 3 comments
Open

Comments

@f-trycua
Copy link
Contributor

f-trycua commented Feb 8, 2025

Document the process on how to publish a lume VM image to a custom GHCR registry

@pepicrft
Copy link
Contributor

pepicrft commented Feb 9, 2025

This would be amazing! Have you folks considered something like Dockerfile but for Lume images?

@f-trycua
Copy link
Contributor Author

f-trycua commented Feb 9, 2025

We’ve run some initial tests and have an internal prototype already. The concept is very feasible with the current setup, but there are a few challenges to address:

  • Layering: VM images (disk.img) are currently chunked (default size of 500MB) during push on a registry. Due to the nature of .img files, this causes more cache misses than hits when pushing layers after the VM has been used.
  • macOS VM Limitations: macOS VMs cannot leverage Linux’s cgroup and namespace process isolation mechanisms, which limits process isolation options /cc @changhoon-sung (issue How does lume differ from lima? #10)
  • Ephemeral vs. Persistent Storage: We need to decide how to handle storage since containers are typically ephemeral. The Dockur-like Dockerfile approach, where VM storage is mounted from a directory, seems reasonable to me. However, we’ll need to allow for more flexible storage locations for this to work (see issue Flexible Storage Locations for VMs, Disk Images, and IPSW Files #14)

Open to feedback on all points!

@pepicrft
Copy link
Contributor

pepicrft commented Feb 9, 2025

Layering: VM images (disk.img) are currently chunked (default size of 500MB) during push on a registry. Due to the nature of .img files, this causes more cache misses than hits when pushing layers after the VM has been used.

I'm not entirely familiar works with Docker, but I remember reading somewhere that they use OverlayFS, which AFAIK is not available in Linux. What do you have in mind? You might be able to draw some inspiration from geranos

macOS VM Limitations: macOS VMs cannot leverage Linux’s cgroup and namespace process isolation mechanisms, which limits process isolation options /cc @changhoon-sung (issue #10)

Sorry for the dumb question, but how does isolation relate to the idea of using Dockerfiles?

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

No branches or pull requests

2 participants