diff --git a/build_library/vm_image_util.sh b/build_library/vm_image_util.sh index ecaa792d5a..0619dc0178 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() { + # Prepare root partition 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/ci-automation/vms.sh b/ci-automation/vms.sh index 79156b4d69..055315639d 100644 --- a/ci-automation/vms.sh +++ b/ci-automation/vms.sh @@ -138,7 +138,7 @@ function _vm_build_impl() { COMPRESSION_FORMAT="bz2,none" elif [[ "${format}" =~ ^(hyperv|hyperv_vhdx)$ ]];then COMPRESSION_FORMAT="zip" - elif [[ "${format}" =~ ^(scaleway|kubevirt)$ ]];then + elif [[ "${format}" =~ ^(scaleway|kubevirt|ionoscloud)$ ]];then COMPRESSION_FORMAT="none" elif [[ "${format}" =~ ^(akamai)$ ]];then COMPRESSION_FORMAT="gz" 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 facc01224d..c96e509c30 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 9c69deac34..2a2e3af1cc 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 @@ -47,6 +47,7 @@ AMD64_ONLY_OEMIDS=( digitalocean gce vmware + ionoscloud ) 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 0000000000..4f9e06c2c8 --- /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 834af69793..3499aea430 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 3340856180..a8dcc83cd8 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="bfee73ca7420eb071556584e47736dbdb9c9a87e" # 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 0000000000..097975e3ad --- /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 0000000000..c4127bb87b --- /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 c2dc426836..5572d380a4 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