cloudware: allow disk format to be a list

Make basic-cloudinit available both in qcow2 and raw formats

MFC After:	1 week
Reviewed by:	Allanjude
Sponsored by:	OVHCloud
Differential Revision:	https://reviews.freebsd.org/D44747
This commit is contained in:
Baptiste Daroussin 2024-04-11 09:33:49 +02:00
parent a87dd74125
commit 6ec9aaf63c

View file

@ -30,7 +30,7 @@ AZURE_DESC= Microsoft Azure platform image
BASIC-CI_FORMAT= raw
BASIC-CI_FSLIST?= ufs
BASIC-CI_DESC= Image for CI
BASIC-CLOUDINIT_FORMAT= raw
BASIC-CLOUDINIT_FORMAT= raw qcow2
BASIC-CLOUDINIT_FSLIST?= ufs zfs
BASIC-CLOUDINIT_DESC?= Images for VM with cloudinit disk config support
EC2_FORMAT= raw
@ -99,33 +99,37 @@ QEMUTGT?=
. if exists(${.CURDIR}/tools/${_CW:tl}.conf) && !defined(${_CW:tu}CONF)
${_CW:tu}CONF?= ${.CURDIR}/tools/${_CW:tl}.conf
. endif
. for _FS in ${${_CW:tu}_FSLIST}
CLOUDTARGETS+= cw-${_CW:tl}-${_FS}
CLEANDIRS+= cw-${_CW:tl}-${_FS}
. for _FMT in ${${_CW:tu}_FORMAT}
. for _FS in ${${_CW:tu}_FSLIST}
CLOUDTARGETS+= cw-${_CW:tl}-${_FS}-${_FMT}
CLEANDIRS+= cw-${_CW:tl}-${_FS}-${_FMT}
CLEANFILES+= ${_CW:tl}.${_FS}.img \
${_CW:tl}.${_FS}.${${_CW:tu}_FORMAT} \
${_CW:tl}.${_FS}.${${_CW:tu}_FORMAT}.raw
${_CW:tu}${_FS:tu}IMAGE= ${_CW:tl}.${_FS}.${${_CW:tu}_FORMAT}
${_CW:tl}.${_FS}.${_FMT} \
${_CW:tl}.${_FS}.${_FMT}.raw
${_CW:tu}${_FS:tu}IMAGE= ${_CW:tl}.${_FS}.${_FMT}
cw-${_CW:tl}-${_FS}: ${QEMUTGT}
cw-${_CW:tl}-${_FS}-${_FMT}: ${QEMUTGT}
mkdir -p ${.OBJDIR}/${.TARGET}
env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} SWAPSIZE=${SWAPSIZE} \
QEMUSTATIC=${QEMUSTATIC} \
${.CURDIR}/scripts/mk-vmimage.sh \
-C ${.CURDIR}/tools/vmimage.subr -d ${.OBJDIR}/${.TARGET} -F ${_FS} \
-i ${.OBJDIR}/${_CW:tl}.${_FS}.img -s ${VMSIZE} -f ${${_CW:tu}_FORMAT} \
-i ${.OBJDIR}/${_CW:tl}.${_FS}.img -s ${VMSIZE} -f ${_FMT} \
-S ${WORLDDIR} -o ${.OBJDIR}/${${_CW:tu}${_FS:tu}IMAGE} -c ${${_CW:tu}CONF}
touch ${.TARGET}
. endfor
. endfor
# Hardlinks from "foo.bar" to "foo-${VMFS}.bar". These can go away once all
# of the cloudware code knows how to handle multiple filesystem images (or
# at least knows the name of the UFS image).
CLOUDTARGETS+= cw-${_CW:tl}
CLEANFILES+= ${_CW:tl}.${${_CW:tu}_FORMAT}
${_CW:tu}IMAGE= ${_CW:tl}.${${_CW:tu}_FORMAT}
cw-${_CW:tl}: cw-${_CW:tl}-${VMFS}
. for _FMT in ${${_CW:tu}_FORMAT}
CLOUDTARGETS+= cw-${_CW:tl}-${_FMT}
CLEANFILES+= ${_CW:tl}.${_FMT}
${_CW:tu}IMAGE= ${_CW:tl}.${${_FMT}
cw-${_CW:tl}-${_FMT}: cw-${_CW:tl}-${VMFS}-${_FMT}
ln -f ${${_CW:tu}${VMFS:tu}IMAGE} ${${_CW:tu}IMAGE}
. endfor
. endfor
.endif