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.
This commit is contained in:
Kai Lueke 2023-11-14 14:27:33 +01:00
parent 93544735df
commit 87ff566aae
10 changed files with 3 additions and 93 deletions

View File

@ -9,7 +9,6 @@ VALID_IMG_TYPES=(
ami ami
ami_vmdk ami_vmdk
azure azure
brightbox
cloudsigma cloudsigma
cloudstack cloudstack
cloudstack_vhd cloudstack_vhd
@ -242,12 +241,6 @@ IMG_openstack_mini_OEM_PACKAGE=common-oem-files
IMG_openstack_mini_OEM_USE=openstack IMG_openstack_mini_OEM_USE=openstack
IMG_openstack_mini_OEM_SYSEXT=oem-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 ## pxe, which is an cpio image
IMG_pxe_DISK_FORMAT=cpio IMG_pxe_DISK_FORMAT=cpio
IMG_pxe_PARTITIONED_IMG=0 IMG_pxe_PARTITIONED_IMG=0

View File

@ -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)

View File

@ -150,6 +150,7 @@ function _vm_build_impl() {
-v "${vernum}" \ -v "${vernum}" \
mv "${CONTAINER_IMAGE_ROOT}/${arch}-usr/" "./${images_out}/" 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/"* create_digests "${SIGNER}" "images/latest/"*
sign_artifacts "${SIGNER}" "images/latest/"* sign_artifacts "${SIGNER}" "images/latest/"*
copy_to_buildcache "images/${arch}/${vernum}/" "images/latest/"* copy_to_buildcache "images/${arch}/${vernum}/" "images/latest/"*

View File

@ -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.

View File

@ -1,13 +0,0 @@
{
"ignition": {
"version": "3.3.0"
},
"systemd": {
"units": [
{
"enabled": true,
"name": "coreos-metadata-sshkeys@.service"
}
]
}
}

View File

@ -1,3 +0,0 @@
# Flatcar GRUB settings for EC2
set oem_id="brightbox"

View File

@ -1,3 +0,0 @@
# Flatcar GRUB settings for EC2
set oem_id="openstack"

View File

@ -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"

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
</pkgmetadata>

View File

@ -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
}