=== FreeBSD as a Tier 1 cloud-init Platform

Links: +
link:https://cloud-init.io/[cloud-init Website] URL: link:https://cloud-init.io/[] +
link:https://cloudinit.readthedocs.io/en/latest/[cloud-init Documentation] URL: link:https://cloudinit.readthedocs.io/en/latest/[] +
link:https://github.com/canonical/cloud-init/blob/main/WIP-ONGOING-REFACTORIZATION.rst[cloud-init ongoing refactorization] URL: link: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 is 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 very, very slowly, for personal reasons -- also for lack of access to the right resources.
I have been trying to link:https://github.com/canonical/cloud-init/pull/2003[port the Infiniband functions].
This has proven difficult, because it falsified my thesis that man:ifconfig[8] is all that is needed to figure out network interfaces on FreeBSD.

While waiting for resources, I link:https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269767[debugged a boot panic] and got it fixed: gitref:499171a98c8813e4dc6e085461d5c47750efa555[repository=src].
This now makes it possible to boot FreeBSD on LXD -- cloud-init's CI platform.
We still need to fix link:https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269823[the high CPU usage problem], but there is already an accepted review: link:https://reviews.freebsd.org/D38898[D38898]

A cloud-init colleague who works for Azure managed to give me access to an link:https://learn.microsoft.com/en-us/azure/architecture/topics/high-performance-computing[HPC VM on Azure].
Unfortunately, it was only for a limited time, and that was not enough to figure out how to get Infiniband up and running on FreeBSD — a task handled by link:https://github.com/Azure/WALinuxAgent/[Azure Agent] on Linux, but FreeBSD's package:sysutils/azure-agent[] is rather lacking.

People interested in helping with this project could provide man:ifconfig[8], man:ibstat[8], man:ibv_devinfo[1], etc… link:https://lists.freebsd.org/archives/freebsd-infiniband/2023-February/000005.html[pastes from their Infiniband systems].
I would also be very happy about getting access to hardware with Infiniband NICs, or hearing from people who have successfully used FreeBSD on Azure HPC with Infiniband.

If there is interest in that platform, I will direct some energy to fixing Azure Agent.

Sponsor: The FreeBSD Foundation
