it seems that the qcow2 image of FreeBSD 12.0 does not contain cloud-init support.
There is a PR here:
that adds it, but it doesn't seem to go anywhere.
On top of that, it didn't really work for me.
There are Openstack-ready images for Ubuntu, Fedora, CentOS - basically almost everything.
Is there a reason that the FreeBSD project does not provide one?
cloud-init does not work on FreeBSD (as a localStorage data source) at the moment. There are many open PR related to FreeBSD at https://git.launchpad.net/cloud-init ( I also opened several ). So, if you can't fix it yourself, you just need to wait.
For example, the latest release of cloud-init has some improvements for FreeBSD (fixes for detect cidata media), and I am creating my own FreeBSD cloud image for the CBSD project . But there are some quick hacks ( to apply parameters ) on my part that will never go upstream ( since I did a quick work-around not in cloud-init code )
 ZFS: https://github.com/cbsd/cbsd/blob/develop/etc/defaults/vm-freebsd-cloud-FreeBSD-zfs-x64-12.0.conf
 UFS: https://github.com/cbsd/cbsd/blob/develop/etc/defaults/vm-freebsd-cloud-FreeBSD-ufs-x64-12.0.conf
thanks for the update.
I did however now succeed using the official Openstack documentation:
(using qemu-kvm on my local OpenSuSE workstation to create the image).
cloud-init runs, creates the freebsd-user and I can login.
The partition is also grown.
For now, this is enough for me.
cloud-init requires several python modules and sudo, 43 packages all together.
The RAM-disk created by the installer seems to be just about enough to allow these packages to be downloaded and installed.
I realize that it's the FreeBSD project's intention not to pollute the installation-image with anything that is not in tree.
But increasingly, FreeBSD will be installed virtually and users in the cloud expect certain things to "just work".