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/
cloud-init ongoing refactorization URL: https://github.com/canonical/cloud-init/blob/main/WIP-ONGOING-REFACTORIZATION.rst
Contact: Mina Galić <freebsd@igalic.co>
cloud-init is the standard way of provisioning servers in the cloud. Unfortunately, cloud-init support for operating systems other than Linux has been rather poor, and the lack of cloud-init support on FreeBSD is a hindrance to cloud providers who want to offer FreeBSD as a Tier 1 platform. To remedy the situation, this project aims to bring FreeBSD cloud-init support on par with Linux support. The broader plan is to lift support across all BSDs.
This quarter has been going quite slowly, but I have managed to deliver a new milestone:
-
Ephemeral Networking classes have been rewritten and made platform independent. These are used by several cloud providers to initialize a temporary network before retrieving the actual configuration.
-
cloud-init has been successfully tested on Vultr. I hope that with the next release I can convince Vultr to switch their FreeBSD images to cloud-init.
In addition to that, I have expanded rsyslog support for BSD.
I’ve also added an rc script for cloud-init’s ds-identify, which
should make zero-configuration setups orders of magnitude faster:
ds-identify runs first and very quickly guesses the cloud provider
the machine is running on. cloud-init then uses only that guess,
instead of iterating and failing through a full list of all
possible cloud providers. People building custom images can easily
disable this (by removing
/usr/local/etc/rc.d/dsidentify
), and providing a
specific listing themselves, shave off a few more milliseconds from
their boot.
The next steps will be to keep hacking away at the network refactoring tasks, and to add LXD support for FreeBSD, so it can be included in CI tests. The latter will include work on LXD, as well as work on the FreeBSD virtio subsystem.
As always, I highly welcome early testers to checkout net/cloud-init-devel, and report bugs. Since the last report, cloud-init’s bug tracker has moved from Launchpad to GitHub, so this might reduce some friction.
Sponsor: The FreeBSD Foundation
Last modified on: July 12, 2023 by Mina Galić