1

My homelab environment is primarily git repo->puppet apply->centos7 hardware running kvm or guests. Simple tooling but it works.

I'm doing a lot more terraform at work these days and have been thinking about refreshing my homelab with an ansible/terraform pattern but I've been looking at my OS base for the KVM hosts and wondering if there is a better way.

So, the question......

Is anyone aware of a unix OS pattern that's PXE booting, immutable, container friendly and usable as a basic KVM host?

Something like CoreOS/Flatcar but for KVM guests instead of just containers. Ideally with config data from cloud-init and something like vault.

Thanks!

alan laird
  • 13
  • 3
  • My understanding of "_immutable_" is "unchangeable". I'm not sure how you can have a VM Host that's immutable - for example, how would it keep track of VM configurations and their disk allocations? Are you thinking of a different meaning of the word? – roaima Oct 03 '22 at 08:13
  • @roaima If the VM host used some external database or similar for all its configuration, then such a thing might be conceptually possible, but I don’t know of any actual implementation that would satisfy that requirement, as the configuration database would easily become a severe Single Point of Failure. – telcoM Oct 03 '22 at 11:02
  • I'm thinking about CoreOS/Flatcar where the host is immutable and config data is ingested via cloud-init or vault or other mechanisms. The work we care about is the guest so why spend time performing admin functions against the host. – alan laird Oct 04 '22 at 23:41

1 Answers1

0

Immutable does not mean static. For example, I'm using Flatcar to run my kubernetes clusters. There's configuration files that are placed on the nodes. It's just the OS itself that is immutable, not the whole filesystem. In this case, as /usr is immutable, files will placed somewhere else, like into /opt.

Config data is most of the time ingested by cloud-init (rather ignition in this case), not because the OS is immutable but rather because you want to centralize the configuration location. cloud-init or ignition stil write on the filesystem in locations where it's permitted, like /etc for example.

  • Flatcar seems to be as close as I can find. Balena-Cloud gets an honorable mention as well. I'm always a little surprised that people playing with k8s or flatcar patterns do it on proxmox or something like that instead of there being a IaC layer for the bare metal. I used to hang out with some openstack on openstack guys who were asking the same questions and equally surprised by the lack of community interest. – alan laird Apr 29 '23 at 23:35