Ignition and creating a SUSE MicroOS VM
-
Hello fellow xcp-ng'ers,
Is it possible to specify the requisite Ignition file to set up and configure a SUSE MicroOS VM in Xen Orchestra?
I understand it's a lot of work to move from cloud-init to Ignition, so I'm not expecting that (however dreadful cloud-init is). I was just wondering if there was an easy workaround for now because there doesn't seem to be any other way to launch and configure MicroOS apart from using Ignition.
-
We agree on the fact cloud-init is dradful
I have not investigated Ignition and how it works, could you do some search to provide a very quick recap on what's needed to make Ignition working?
-
@olivierlambert I don't have the technical know-how to understand at what point the Ignite file needs to be lit, or injected, or whatever term we want to use here I'm afraid. I do know how the dark side (qemu) wants it done though if that's a help?
--qemu-commandline="-fw_cfg name=opt/com.coreos/config,file=/path/to/config.ign"
I'd not come across Ignite files before so this has been an interesting read. In order to make things "simple," however, it seems they must first be made much more complicated, because although the Ignite file is in JSON you're expected to write it in YAML and then run it through Butane (themed naming, deep sigh) :
https://docs.fedoraproject.org/en-US/fedora-coreos/producing-ign/
Or something like :
podman run -i --rm quay.io/coreos/fcct:release --pretty --strict < config.fcc > config.ign
In the medium term is there a way to use a Template file to feed in the .ign file? I see there is a Packer add-in for XCP that has been linked to before, but the kind xcp-ng forum member who advertised their example files to get people started has since closed their Github site.
Ignite seems to be the direction of travel for SUSE anyway, and there are relatively few immutable container-oriented OSes so hence me looking at MicroOS for Docker containers anyway. (Talos looks good for k8s.)
-
Provide combustion via an iso mounted. Idea behind combustion/ignition is a usb plugged in, or pass through a usb if you already created one.
follow instructions on building the combustion file, drop in a folder named combustion. use whatever tool you want to move this folder into an iso, and label the iso itself combustion. Basically same steps as creating the combustion usb.
https://en.opensuse.org/SDB:K3s_cluster_deployment_on_MicroOS
-
@ravenet Thanks very much for this and apologies for not replying sooner, I was on holiday with a blissful two weeks of no Internet.
I'll give this a go - so basically boot the iso in a VM with an Ignition file as you describe on a second iso attached to the VM?
Is it possible that a template file could be built which would perform this function for SUSE Linux variants? Otherwise I am not sure how to trigger the building of new VMs as loads scale, eg for when hopefully xcp-ng is supported as a provider for Rancher.
-
@parallax I'd assume so. You'd just have that combustion iso provided as a disk image with each to provide the initial setup. I've not looked at custom template creation in XO
Otherwise you'd be looking at pxe and tftp, or better, use opensuse build services with kiwiNG to customize your own appliance with preconfigured settings etc.
-
@parallax Were you able to get this working?
If not I might open a new thread for to ask for a way to expose what's needed for Ignition. My ask is for Fedora CoreOS, which has QEMU instructions (as you noted): https://docs.fedoraproject.org/en-US/fedora-coreos/provisioning-qemu/ (basically, using the
-fw_cfg
switch). -
@jessepeterson I did, using the disk mounting method, but the solution didn't really spark joy in me. For the last 18 months I've been on LXD and now Incus, which I found easier to use different distros on.