FreeBSD as a Tier 1 cloud-init Platform
Links:
cloud-init Website URL:
https://cloud-init.io/
cloud-init
Documentation URL: https://cloudinit.readthedocs.io/en/latest/
Contact: Mina Galić <freebsd@igalic.co>
cloud-init is the standard way of provisioning servers in the
cloud. Over the past year and a half, thanks to this FreeBSD
support has steadily improved. This year, together with cloud-init
developers and the FreeBSD Foundation, we decided to explicitly
focus on making improvements in FreeBSD itself, that will aid the
cloud-init team to test future changes to FreeBSD code-paths
themselves. To achieve this goal, I need to make FreeBSD run in LXD
(and Incus), under the control of lxd-agent
(or
incus-agent
).
Here are some improvements from the recent weeks:
-
I have written a small testing-framework (in sh, and I’m slowly porting it to OpenTofu/Terraform), which installs the latest version of net/cloud-init-devel or net/cloud-init and runs a couple of standard cloud-init tests.
-
To do this, I have created a dedicated public repository which contains the latest versions of net/cloud-init-devel and net/cloud-init for FreeBSD 13 and 14 on amd64 and aarch64.
-
I created a driver skeleton for a VirtIO Socket driver, based on the HyperV Socket driver.
-
In doing so, I made numerous improvements to HyperV sockets, some of which are accepted, others still need more work.
-
I have tested and released the latest 24.1 series cloud-init, where the cloud-init team and I have finally fixed some longstanding bugs, such as moving
/run/cloud-init
to /var/run/cloud-init on BSD, as well as fixing thehomedir
argument touser_groups
to actually do something. -
This release also sees numerous fixes to the OpenBSD code-paths from the community and not just me.
-
I have also started an official port for OpenBSD, but that work has stalled.
The work to come, in broad strokes:
-
Finish the FreeBSD VirtIO Socket driver.
-
Fix Go’s runtime to support VirtIO on FreeBSD.
-
Port lxd-agent’s dependencies to FreeBSD.
-
Port lxd-agent to FreeBSD.
That work will be interspersed with more improvements to cloud-init on BSDs, and more tests on different cloud providers.
Sponsor: The FreeBSD Foundation
Last modified on: April 13, 2024 by Maxim Konovalov