From eaea93e69d8310a74f5289f5d09cf0f148301aef Mon Sep 17 00:00:00 2001 From: Jan Larwig Date: Mon, 4 Nov 2024 10:58:28 +0100 Subject: [PATCH] add ionoscloud support --- build_library/vm_image_util.sh | 21 +++++++++++++++++++ .../afterburn/files/coreos-metadata.service | 2 ++ .../common-oem-files-0-r8.ebuild | 1 + .../files/ionoscloud/grub.cfg.frag | 1 + .../coreos-cloudinit-9999.ebuild | 4 ++-- .../coreos-init/coreos-init-9999.ebuild | 4 ++-- .../coreos-base/oem-ionoscloud/metadata.xml | 4 ++++ .../oem-ionoscloud/oem-ionoscloud-0.ebuild | 15 +++++++++++++ .../sys-apps/ignition/ignition-9999.ebuild | 2 +- 9 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/ionoscloud/grub.cfg.frag create mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ionoscloud/metadata.xml create mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ionoscloud/oem-ionoscloud-0.ebuild diff --git a/build_library/vm_image_util.sh b/build_library/vm_image_util.sh index ecaa792d5a5..4d7fa6e8dfb 100644 --- a/build_library/vm_image_util.sh +++ b/build_library/vm_image_util.sh @@ -41,6 +41,7 @@ VALID_IMG_TYPES=( vmware_ova vmware_raw xen + ionoscloud ) #list of oem package names, minus the oem- prefix @@ -66,6 +67,7 @@ VALID_OEM_PACKAGES=( vagrant-virtualbox virtualbox vmware + ionoscloud ) # Set at runtime to one of the above types @@ -332,6 +334,15 @@ IMG_akamai_OEM_PACKAGE=common-oem-files IMG_akamai_OEM_USE=akamai IMG_akamai_OEM_SYSEXT=oem-akamai +## ionoscloud +IMG_ionoscloud_OEM_USE=ionoscloud +IMG_ionoscloud_OEM_SYSEXT=oem-ionoscloud +IMG_ionoscloud_OEM_PACKAGE=common-oem-files +IMG_ionoscloud_DISK_LAYOUT=vm +IMG_ionoscloud_DISK_FORMAT=qcow2 +IMG_ionoscloud_DISK_EXTENSION=qcow2 +IMG_ionoscloud_FS_HOOK=ionoscloud + ########################################################### # Print the default vm type for the specified board @@ -610,6 +621,16 @@ _run_box_fs_hook() { sudo rm -fr "${VM_TMP_ROOT}/oem/box" } +_run_ionoscloud_fs_hook() { + # Prep root parition for IONOS Cloud legacy injection + # This is a workaround until the IONOS Cloud introduces a metadata server + sudo mount -o remount,rw "${VM_TMP_ROOT}" + sudo mkdir -p "${VM_TMP_ROOT}/var/lib/cloud/seed/nocloud" + sudo mkdir -p "${VM_TMP_ROOT}/etc/cloud" + sudo touch "${VM_TMP_ROOT}/etc/cloud/cloud.cfg" + sudo mount -o remount,ro "${VM_TMP_ROOT}" +} + # Write the vm disk image to the target directory in the proper format write_vm_disk() { if [[ $(_get_vm_opt PARTITIONED_IMG) -eq 1 ]]; then diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/files/coreos-metadata.service b/sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/files/coreos-metadata.service index facc01224db..c96e509c303 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/files/coreos-metadata.service +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/afterburn/files/coreos-metadata.service @@ -25,6 +25,8 @@ ConditionKernelCommandLine=|flatcar.oem.id=kubevirt ConditionKernelCommandLine=|flatcar.oem.id=akamai +ConditionKernelCommandLine=|flatcar.oem.id=ionoscloud + Description=Flatcar Metadata Agent [Service] diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/common-oem-files-0-r8.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/common-oem-files-0-r8.ebuild index 9c69deac343..a8e0b1736e6 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/common-oem-files-0-r8.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/common-oem-files-0-r8.ebuild @@ -38,6 +38,7 @@ COMMON_OEMIDS=( qemu scaleway kubevirt + ionoscloud ) ARM64_ONLY_OEMIDS=( diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/ionoscloud/grub.cfg.frag b/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/ionoscloud/grub.cfg.frag new file mode 100644 index 00000000000..4f9e06c2c8c --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/files/ionoscloud/grub.cfg.frag @@ -0,0 +1 @@ +set linux_append="flatcar.autologin" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-cloudinit/coreos-cloudinit-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-cloudinit/coreos-cloudinit-9999.ebuild index 834af697934..3499aea430b 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-cloudinit/coreos-cloudinit-9999.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-cloudinit/coreos-cloudinit-9999.ebuild @@ -2,7 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=7 -EGIT_REPO_URI="https://github.com/flatcar/coreos-cloudinit.git" +EGIT_REPO_URI="https://github.com/tuunit/flatcar-cloudinit.git" COREOS_GO_PACKAGE="github.com/flatcar/coreos-cloudinit" COREOS_GO_GO111MODULE="on" inherit git-r3 systemd toolchain-funcs udev coreos-go @@ -10,7 +10,7 @@ inherit git-r3 systemd toolchain-funcs udev coreos-go if [[ "${PV}" == 9999 ]]; then KEYWORDS="~amd64 ~arm64" else - EGIT_COMMIT="f3aaab923de5075524780716635f25564b5e6934" # flatcar-master + EGIT_COMMIT="57fac09cb2f4c13b89f6baec46569a3e66a3b29b" # feat/ionoscloud-support KEYWORDS="amd64 arm64" fi diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-init/coreos-init-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-init/coreos-init-9999.ebuild index 33408561800..299ffdd5221 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-init/coreos-init-9999.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-init/coreos-init-9999.ebuild @@ -3,12 +3,12 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=7 -EGIT_REPO_URI="https://github.com/flatcar/init.git" +EGIT_REPO_URI="https://github.com/tuunit/flatcar-init.git" if [[ "${PV}" == 9999 ]]; then KEYWORDS="~amd64 ~arm ~arm64 ~x86" else - EGIT_COMMIT="05b4b2aafbe706bdd65265c7a7103ed75fee14d2" # flatcar-master + EGIT_COMMIT="a226d804b740bba9906e1beefe1ca51cba28dcdc" # flatcar-master KEYWORDS="amd64 arm arm64 x86" fi diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ionoscloud/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ionoscloud/metadata.xml new file mode 100644 index 00000000000..097975e3adc --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ionoscloud/metadata.xml @@ -0,0 +1,4 @@ + + + + diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ionoscloud/oem-ionoscloud-0.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ionoscloud/oem-ionoscloud-0.ebuild new file mode 100644 index 00000000000..c4127bb87b5 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-ionoscloud/oem-ionoscloud-0.ebuild @@ -0,0 +1,15 @@ +# Copyright (c) 2013 CoreOS, Inc.. All rights reserved. +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="OEM suite for IONOS Cloud" +HOMEPAGE="https://cloud.ionos.com" +SRC_URI="" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64" +IUSE="" + +OEM_NAME="IONOS Cloud" diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/ignition-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/ignition-9999.ebuild index c2dc4268365..5572d380a41 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/ignition-9999.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/sys-apps/ignition/ignition-9999.ebuild @@ -10,7 +10,7 @@ inherit coreos-go git-r3 systemd udev if [[ "${PV}" == 9999 ]]; then KEYWORDS="~amd64 ~arm64" else - EGIT_COMMIT="a204f429f13194ae379be9401d49e5241439660b" # v2.20.0 + EGIT_COMMIT="488d302a0863ede5b723aea4ddd558f96e318569" # v2.20.0 KEYWORDS="amd64 arm64" fi