summaryrefslogtreecommitdiff
path: root/doc/todo/support_for_libvirt_KVM_VMs.mdwn
blob: 529cf7212a3bb6162bfb1fe3c096f48594ababd9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
I've been thinking about how to add support for libvirt VMs to
propellor.  TTBOMK setting up the VMs is a matter of creating some
files in /etc, so that part is straightforward; might not want very
much abstraction in propellor at all.  The interesting part is
creating the corresponding disk images.

I first thought that I could just extend propellor's existing support
for generating disk images by debootstrapping in a chroot and then
generating an image based on that chroot.  It would just be a matter
of using `.qcow2` images rather than `.img`.  But the problem with
this is that once the VM is in use, propellor should not just be
overwriting the `.qcow2` file.  So something different is needed.

What I have in mind is a conditional property that works something
like this:

    ifM ( doesFileExist "/path/to/image.qcow2"
        , debootstrapTheChrootAndPackIntoQcow2File theHost
        , conducts [theHost] `requires` KVM.booted theHost
        )

where `theHost :: Host` and either the user's libvirt config or some
property somewhere ensures it can be SSHed to from localhost.

Does this seem like the right approach?

--spwhitton