-
Notifications
You must be signed in to change notification settings - Fork 9
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
Support multiple VMs of the same container image #42
Comments
@cgwalters @ckyrouac thoughts? |
The question of scope is a tricky one. I think on Linux, we should at least have it feel like a "smooth transition" to go from the simple use cases embodied here to e.g. I'd lean towards at least on Linux having something like |
I like this general flow. I definitely prefer to avoid duplicating existing VM management APIs. IMO keeping podman-bootc scoped to the original idea of enabling rapid testing/development of bootc images would be best. We could use podman-bootc to direct users to more advanced workflows, e.g. printing a message after |
And on macOS it'd make a lot of sense to support an "export to lima" flow. |
From a sysadmin POV, I can think of use cases where the simple test requires more than one VM.
I'm not sure I like this approach, for instance we will need to know where to store the disk image (we cannot keep it in the cache). I think it's simpler to teach virt-install to create bootc images and/or have a |
There's definitely use cases for testing multiple VMs. I'm not sure there is much value in creating a contrived test environment via podman-bootc though. I imagine most (if not all) users who want to test interoperability will have a testing environment setup, e.g. a cloud env, test lab, etc. Those environments usually have unique networking, storage, etc. requirements that are the more interesting thing to test. We can't really cover all these nuances via podman-bootc without essentially duplicating existing tools for those environments. They also probably have existing machines and services that need to be integration tested with the new bootc image.
This would essentially act as a simplified version of bootc image builder, right? In my mind, podman-bootc is part of a suite of tools used for developing a bootc image. So, a typical workflow would be something like:
|
I'm not sure adding multiple VMs is too contrived, if we design the cache to supports them (I'm not talking about supporting complex scenarios). I'm also not advocating to support multiple VMs, I just want to have this discussion if is it worth it or not, before embarking on changing the cache code. Because if we want to add them later will be difficult.
kind of, yes, but I think is simpler and more flexible than supporting
That was also my idea when a started this project, and I still think the same, but I cannot deny that steps 4 and 7 are not well-defined, for instance, to test if a master-slave dns server works we need to 2 VMs (and that is quite simple test). The issue I see is we have two main type of users: developers and sysadmins/devops. |
To me, these steps are just basic validation of the machine's state, e.g. did the machine boot? are the correct services running? are there any errors in the journal? are all the custom files in place? etc. |
Makes sense to me |
I am fine with But we should not go any further then that. Otherwise you are creating something to compete with bootc-image-builder. |
Yep, I was thinking something in the line of
|
Currently, there is a 1:1 map between the VM in the cache and the OCI image.
I believe there are valid use cases for wanting to run more than one VM of the same OCI images. The point is, do these use cases fall within the scope of podman-bootc?, What would it look like from the UI POV?, for instance, the user needs to request a new VM:
or every
run
creates a new VM if there is an existent VM alreadyHow that will work when we need to rebuild the disk image, if for instance the disk size changes:
2)
should create a new VM?, or only if1)
is still running. Or we replace the previous one unless--new-vm
?, or by default is a new vm unless--replace-vm
?If we have more than one VM of the same OCI image, which of those we start on
run
, should we need to add--vm <vm_id>
?If we don't want to do this "automagically", we will need to manage the VMs as persistent objects with its own IDs.
I want to have this discussion before starting the work on the cache code, because it changes pretty much everything.
The text was updated successfully, but these errors were encountered: