From 93544735df69e7837f6915110677c5ae8b56c28d Mon Sep 17 00:00:00 2001 From: Kai Lueke Date: Tue, 14 Nov 2023 14:20:02 +0100 Subject: [PATCH 1/2] ci-automation/vms: Provide OpenStack image without external compression For Brightbox we can use the OpenStack image but the import only works with unpacked images. After we enabled internal qcow2 compression the .gz or .bz2 external compression doesn't provide any benefits and makes the import more complicated. Provide the OpenStack image without external compression in addition. The other files are kept for now but we could also delete them if we announce this in advance. --- ci-automation/vms.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ci-automation/vms.sh b/ci-automation/vms.sh index 69f8fd5462..f796df6a83 100644 --- a/ci-automation/vms.sh +++ b/ci-automation/vms.sh @@ -127,8 +127,10 @@ function _vm_build_impl() { for format in ${formats}; do echo " ################### VENDOR '${format}' ################### " COMPRESSION_FORMAT="bz2" - if [[ "${format}" =~ ^(openstack|openstack_mini|digitalocean)$ ]];then + if [[ "${format}" =~ ^(openstack_mini|digitalocean)$ ]];then COMPRESSION_FORMAT="gz,bz2" + elif [[ "${format}" =~ ^(openstack)$ ]];then + COMPRESSION_FORMAT="gz,bz2,none" elif [[ "${format}" =~ ^(qemu|qemu_uefi)$ ]];then COMPRESSION_FORMAT="bz2,none" fi From 87ff566aaee825e9c6ba51676c78ed1a6a646483 Mon Sep 17 00:00:00 2001 From: Kai Lueke Date: Tue, 14 Nov 2023 14:27:33 +0100 Subject: [PATCH 2/2] Use OpenStack image for Brightbox The special Brightbox image uses the OpenStack userdata in Ignition but lacked Afterburn usage. It actually works to use the OpenStack image and directly which also enables Afterburn, thus we can drop the special image. Don't build a special image for Brightbox but recommend to use OpenStack images directly. A symlink is added to help with the download of hardcoded user scripts. --- build_library/vm_image_util.sh | 7 --- changelog/changes/2023-11-14-brightbox.md | 2 + ci-automation/vms.sh | 1 + .../oem-ec2-compat/files/base/README | 4 -- .../oem-ec2-compat/files/base/openstack.ign | 13 ----- .../oem-ec2-compat/files/grub-brightbox.cfg | 3 -- .../oem-ec2-compat/files/grub-openstack.cfg | 3 -- .../oem-ec2-compat/files/oem-release | 5 -- .../coreos-base/oem-ec2-compat/metadata.xml | 4 -- .../oem-ec2-compat-0.1.2-r4.ebuild | 54 ------------------- 10 files changed, 3 insertions(+), 93 deletions(-) create mode 100644 changelog/changes/2023-11-14-brightbox.md delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/base/README delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/base/openstack.ign delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/grub-brightbox.cfg delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/grub-openstack.cfg delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/oem-release delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/metadata.xml delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/oem-ec2-compat-0.1.2-r4.ebuild diff --git a/build_library/vm_image_util.sh b/build_library/vm_image_util.sh index 76159bf090..3606a7211d 100644 --- a/build_library/vm_image_util.sh +++ b/build_library/vm_image_util.sh @@ -9,7 +9,6 @@ VALID_IMG_TYPES=( ami ami_vmdk azure - brightbox cloudsigma cloudstack cloudstack_vhd @@ -242,12 +241,6 @@ IMG_openstack_mini_OEM_PACKAGE=common-oem-files IMG_openstack_mini_OEM_USE=openstack IMG_openstack_mini_OEM_SYSEXT=oem-openstack -## brightbox, supports ec2's metadata format so use oem-ec2-compat -IMG_brightbox_DISK_FORMAT=qcow2 -IMG_brightbox_DISK_LAYOUT=vm -IMG_brightbox_OEM_PACKAGE=oem-ec2-compat -IMG_brightbox_OEM_USE=brightbox - ## pxe, which is an cpio image IMG_pxe_DISK_FORMAT=cpio IMG_pxe_PARTITIONED_IMG=0 diff --git a/changelog/changes/2023-11-14-brightbox.md b/changelog/changes/2023-11-14-brightbox.md new file mode 100644 index 0000000000..a5efcd87bd --- /dev/null +++ b/changelog/changes/2023-11-14-brightbox.md @@ -0,0 +1,2 @@ +- Brightbox: The regular OpenStack image should now be used, it includes Afterburn for instance metadata attributes +- OpenStack: An uncompressed image is provided for simpler import (since the images use qcow2 inline compression, there is no benefit in using the `.gz` or `.bz2` images) diff --git a/ci-automation/vms.sh b/ci-automation/vms.sh index f796df6a83..e35bc577a3 100644 --- a/ci-automation/vms.sh +++ b/ci-automation/vms.sh @@ -150,6 +150,7 @@ function _vm_build_impl() { -v "${vernum}" \ mv "${CONTAINER_IMAGE_ROOT}/${arch}-usr/" "./${images_out}/" + ( cd images/latest ; ln -s flatcar_production_openstack_image.img.bz2 flatcar_production_brightbox_image.img.bz2 ) create_digests "${SIGNER}" "images/latest/"* sign_artifacts "${SIGNER}" "images/latest/"* copy_to_buildcache "images/${arch}/${vernum}/" "images/latest/"* diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/base/README b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/base/README deleted file mode 100644 index d128309fef..0000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/base/README +++ /dev/null @@ -1,4 +0,0 @@ -These Ignition configs are part of the OEM configuration. Do not modify -them. If you want to write an Ignition config directly to disk, put it in -../config.ign and it will be applied at first boot instead of a config -in userdata. diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/base/openstack.ign b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/base/openstack.ign deleted file mode 100644 index 7a06909927..0000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/base/openstack.ign +++ /dev/null @@ -1,13 +0,0 @@ -{ - "ignition": { - "version": "3.3.0" - }, - "systemd": { - "units": [ - { - "enabled": true, - "name": "coreos-metadata-sshkeys@.service" - } - ] - } -} diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/grub-brightbox.cfg b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/grub-brightbox.cfg deleted file mode 100644 index 2d41cdd4ec..0000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/grub-brightbox.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# Flatcar GRUB settings for EC2 - -set oem_id="brightbox" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/grub-openstack.cfg b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/grub-openstack.cfg deleted file mode 100644 index 1e71da2f21..0000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/grub-openstack.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# Flatcar GRUB settings for EC2 - -set oem_id="openstack" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/oem-release b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/oem-release deleted file mode 100644 index ad1968916f..0000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/files/oem-release +++ /dev/null @@ -1,5 +0,0 @@ -ID=@@OEM_ID@@ -VERSION_ID=@@OEM_VERSION_ID@@ -NAME="@@OEM_NAME@@" -HOME_URL="@@OEM_HOME_URL@@" -BUG_REPORT_URL="https://issues.flatcar.org" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/metadata.xml deleted file mode 100644 index 097975e3ad..0000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/metadata.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/oem-ec2-compat-0.1.2-r4.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/oem-ec2-compat-0.1.2-r4.ebuild deleted file mode 100644 index a717f398b1..0000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ec2-compat/oem-ec2-compat-0.1.2-r4.ebuild +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright (c) 2013 CoreOS, Inc.. All rights reserved. -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="OEM suite for EC2 compatible images" -HOMEPAGE="" -SRC_URI="" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64 arm64 x86" -IUSE="openstack brightbox" -REQUIRED_USE="^^ ( openstack brightbox )" - -# no source directory -S="${WORKDIR}" - -src_prepare() { - default - if use openstack ; then - ID="openstack" - NAME="Openstack" - HOME_URL="https://www.openstack.org/" - elif use brightbox ; then - ID="brightbox" - NAME="Brightbox" - HOME_URL="http://brightbox.com/" - else - die "Unknown OEM!" - fi - - sed -e "s\\@@OEM_ID@@\\${ID}\\g" \ - -e "s\\@@OEM_NAME@@\\${NAME}\\g" \ - -e "s\\@@OEM_VERSION_ID@@\\${PVR}\\g" \ - -e "s\\@@OEM_HOME_URL@@\\${HOME_URL}\\g" \ - "${FILESDIR}/oem-release" > "${T}/oem-release" || die -} - -src_install() { - insinto "/oem" - doins "${T}/oem-release" - if use openstack ; then - newins "${FILESDIR}/grub-openstack.cfg" grub.cfg - elif use brightbox ; then - newins "${FILESDIR}/grub-brightbox.cfg" grub.cfg - fi - - insinto "/oem/base" - doins "${FILESDIR}/base/README" - if use openstack; then - newins "${FILESDIR}/base/openstack.ign" base.ign - fi -}