Trying and failing to build VMs, and getting distracted

At work I have been assigned an interesting project: integrate BPF capabilities into our proprietary service mesh.

The main competition in this area is Cilium, and while I've read a lot of their documentation, I've yet to really kick the tires on a Cilium deployment. So I need to build a test environment that's appropriate for inspecting and provisioning low-level networking in the Linux kernel.

Really the only way to do this is with separate machines, either physical or virtual. Namespaces (e.g. containers) do not provide enough isolation to simulate the environment. A Cilium deployment is most useful in the context of a multi-node architecture.

Cilium on GitHub (HTTPS)

So I need to run VMs. And I'm realizing I don't know a lot about running VMs.

I could use the cloud, and that would be pretty easy. But I feel like this is a moment when I really need to get close to the metal. So I'm trying to run stuff on my beefy desktop.

It's been rough going. I really *want* to be able to use mkosi to build my images.

systemd/mkosi on GitHub (HTTPS)

My reasoning is that it's just a python script that wraps lower level tools. I like that approach. And it's supposed to be able to output multiple formats: raw, qcow2, chroots. It works well for containers (chroots and tarball outputs), but I haven't been able to boot a VM image.

My desktop is a System76 Thelio with two nvme drives. It's pretty nice, but I've turned it into a headless server, and I kind of no longer want to run Pop_OS if it's not going to be a graphical environment. I have been distracted trying to set up Fedora, then Arch, on one of the NVME drives. But I've failed at that, too. I think I messed up my bootloader config or something.

Anyways I should just quit tripping and focus on the current task: build bootable qemu images with the k3s Kubernetes distribution, and Cilium running as the primary CNI.

Published 2020-07-03