Initial support for VMs - #911
Draft
jonathan-conder wants to merge 8 commits into
Draft
Conversation
jonathan-conder
force-pushed
the
feature/vm
branch
4 times, most recently
from
July 20, 2026 00:16
5129f33 to
c5ebeb3
Compare
jonathan-conder
force-pushed
the
feature/vm
branch
8 times, most recently
from
July 28, 2026 07:05
194cc9f to
fdc3922
Compare
Initially this field doesn't do much; optionally users can add `confinement: container` to their workshop definition files. But soon we'll add support for `confinement: virtual-machine`.
jonathan-conder
force-pushed
the
feature/vm
branch
from
July 30, 2026 01:20
83f9a66 to
ac4fd67
Compare
Add support for LXD VMs in the backend, but keep them disabled in workshop definition files for now. VMs don't currently support SDKs, due to [1], so we even disable the system SDK. [1] canonical/lxd#18686
VM instance templates are applied by the LXD agent, which is a systemd service and therefore can't modify the machine ID. When /etc/machine-id is missing, systemd creates one based on the SMBIOS UUID. For us, this means launchOrRebuildFromImage works fine. However, launchOrRebuildFromSnapshot doesn't. Since VMs only support SFTP while running, it's not easy to just delete /etc/machine-id after taking the snapshot. Instead we can tell systemd to always use the UUID via a kernel parameter. Since VM images use GRUB as a bootloader, the kernel command line needs to be configured through GRUB. We accomplish this with a custom GRUB script and drop-in config file.
jonathan-conder
force-pushed
the
feature/vm
branch
2 times, most recently
from
August 3, 2026 00:38
90f81aa to
ba3ac38
Compare
jonathan-conder
force-pushed
the
feature/vm
branch
from
August 3, 2026 00:57
ba3ac38 to
7156eec
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
TODO
start-workshoptaskworkshop infoand other commands that might have issues without asystemSDKSelf-review quick check
Docs
Procedure:
Content:
tutorial/andhow-to/sections).docs/.coverage.yamlupdated, coverage tags added (.. artefact).Or: