podman-desktop / extension-bootc

Support for bootable OS containers (bootc) and generating disk images
Apache License 2.0
417 stars 18 forks source link

Ability to test an image localy #752

Open slemeur opened 3 months ago

slemeur commented 3 months ago

Epic domain

As a user of the bootc extension, I would like to make turnaround and edits while I'm creating a bootable image easy to test.

The goal of this epic, would be to explore the different possibilities that could be used to enable testing a bootable image locally, by running it as a VM. (While we will probably not be able to encompass all the different environments, we should aime to provide a minimal support for this)

Additional context

In the past, we were having a "Launch VM" button, which was useful to better showcase the value of bootc images.

(added by @cdrage) Tasks to be completed for "full" feature:

cdrage commented 2 months ago

I agree and I think this should be done.

We have 2 routes, we can either:

Option 1. native qemu commmands

We can use native qemu commands similar to the hackathon, and output it to a console socket and pick it up with a socket. This was done before for the demo.

Advantages:

Disadvantages:

Option 2. podman-bootc CLI

We could also use https://github.com/containers/podman-bootc however, this is still pretty early.

Advantages:

Disadvantages:

IMHO we should go the qemu route as we already had that working with the POC and then wait until podman-bootc features are implemented upstream?

cdrage commented 2 months ago

https://github.com/user-attachments/assets/ef717940-859c-4b26-9a60-62e94623b563

I created a POC that uses qemu since it integrates well with our library.

I discovered yesterday that qemu has websocket support out of luck, and our terminal library (xterm.js) supports websockets out of pure coincidence.

We can launch the VM and access the terminal all within the podman extension.

cdrage commented 1 month ago

@slemeur @deboer-tim I have updated this epic to include four issues to cover the feature (initial implementation, other OS support, etc.) as per Slack discussions

deboer-tim commented 1 month ago

Moved the first issue / experimental Mac support to 1.5 milestone, and removing 1.5 milestone from this epic as we don't currently have a target.