It had been several months since I was away from my machines at home, and in that time, CoreOS changed their bare-metal installation procedures quite a bit. To the point where it almost seemed like an after-thought that folks would run CoreOS anywhere outside of GCE/AWS/Azure. Being that I don’t want to spend my money on cloud-based infrastructure when I’ve got a perfectly adequate 8-core machine at home with 32GB of ram and a few TB of storage, I knew I needed to update my virthelper scripts to get with the program.
High level requirements
- Automate converting the Container Config (no longer cloud-init configs) to Ignition configs.
- Modify the Libvirt XML manually (with code) to pass Ignition config path arguments.
I found that some of the automation and trickery included with CoreOS to generate the etcd snippets did not support libvirt. The vagrant-virtualbox helpers were a close fit, but not quite enough (expecting eth1 instead of eth0 for the network interface). This causes the coreos-metadata service to completely fail, a current major blocker for my new scripts to bear all their fruit. I’ve filed some issues/pull requests below with the CoreOS team to get that fixed.
There were some cleanup commits in my repository to allow for flexibility in running virt-install, but the main commit is: https://github.com/jforman/virthelper/commit/0cc65134d3dfd1aaaf14392a9e947e428969b491.
Supporting Documentation and Links: