release: add basic cloudinit images

Provide both zfs and ufs images which a 1MB partition reserved for the
config drive wearing a GPT Label "config-drive" to allow consumer to
know where they should push the config drive on the provided image.

2 formats available: qcow2 and raw

This has been tested on OVHCloud baremetal via "bring your own image"
Also tested on openstack

Reviewed by:		emaste
Sponsored by:		OVHCloud
Differential Revision:		https://reviews.freebsd.org/D44369
This commit is contained in:
Baptiste Daroussin 2024-03-15 09:43:20 +01:00
parent e38f230827
commit 78b6117dac
3 changed files with 45 additions and 0 deletions

View file

@ -19,6 +19,7 @@ RAW_DESC= Unformatted raw disk image
CLOUDWARE_TYPES?= AZURE \
BASIC-CI \
BASIC-CLOUDINIT \
EC2 \
GCE \
OCI \
@ -29,6 +30,9 @@ AZURE_DESC= Microsoft Azure platform image
BASIC-CI_FORMAT= raw
BASIC-CI_FSLIST?= ufs
BASIC-CI_DESC= Image for CI
BASIC-CLOUDINIT_FORMAT= raw qcow2
BASIC-CLOUDINIT_FSLIST?= ufs zfs
BASIC_CLOUDINIT_DESC?= Images for VM with cloudinit disk config support
EC2_FORMAT= raw
EC2_FSLIST?= ufs zfs
EC2_FLAVOURS?= BASE CLOUD-INIT

View file

@ -0,0 +1,36 @@
#!/bin/sh
#
#
# Should be enough for base image, image can be resized in needed
export VMSIZE=5g
# 1M config drive should be enough in most cases
export CONFIG_DRIVE=YES
export CONFIG_DRIVE_SIZE=1M
# Set to a list of third-party software to enable in rc.conf(5).
export VM_RC_LIST="sshd growfs nuageinit"
vm_extra_pre_umount() {
cat << EOF >> ${DESTDIR}/etc/rc.conf
dumpdev="AUTO"
ifconfig_DEFAULT="DHCP"
sshd_enable="YES"
EOF
cat << EOF >> ${DESTDIR}/boot/loader.conf
autoboot_delay="-1"
beastie_disable="YES"
loader_logo="none"
console="comconsole,vidconsole"
EOF
cat <<EOF >> ${DESTDIR}/etc/ssh/sshd_config
PasswordAuthentication yes
UsePAM no
EOF
touch ${DESTDIR}/firstboot
return 0
}

View file

@ -239,6 +239,10 @@ vm_create_disk() {
BOOTPARTSOFFSET=":${VM_BOOTPARTSOFFSET}"
fi
if [ -n "${CONFIG_DRIVE}" ]; then
CONFIG_DRIVE="-p freebsd/config-drive::${CONFIG_DRIVE_SIZE}"
fi
case "${VMFS}" in
ufs)
FSPARTTYPE=freebsd-ufs
@ -312,6 +316,7 @@ vm_create_disk() {
mkimg -s ${PARTSCHEME} -f ${VMFORMAT} \
${BOOTPARTS} \
${SWAPOPT} \
${CONFIG_DRIVE} \
${ROOTFSPART} \
-o ${VMIMAGE}