From 0733b3adc81868f3e8d9d56efb8145c9f5196fe4 Mon Sep 17 00:00:00 2001 From: Robin Schneider Date: Thu, 5 Jun 2025 11:06:23 +0200 Subject: [PATCH] OEM: Provide STACKIT images --- build_library/vm_image_util.sh | 9 ++++++ changelog/changes/2025-06-30-stackit.md | 1 + ci-automation/vms.sh | 2 +- ...9.ebuild => common-oem-files-0-r10.ebuild} | 6 ++++ .../coreos-base/oem-stackit/files/chrony.conf | 6 ++++ .../oem-stackit/files/chronyd-overwrite.conf | 6 ++++ .../oem-stackit/files/etc-chrony.conf | 3 ++ .../oem-stackit/files/var-chrony.conf | 1 + .../coreos-base/oem-stackit/metadata.xml | 4 +++ .../oem-stackit/oem-stackit-0.ebuild | 32 +++++++++++++++++++ 10 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 changelog/changes/2025-06-30-stackit.md rename sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/{common-oem-files-0-r9.ebuild => common-oem-files-0-r10.ebuild} (93%) create mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/files/chrony.conf create mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/files/chronyd-overwrite.conf create mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/files/etc-chrony.conf create mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/files/var-chrony.conf create mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/metadata.xml create mode 100644 sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/oem-stackit-0.ebuild diff --git a/build_library/vm_image_util.sh b/build_library/vm_image_util.sh index 1a6950ea2f..d3aa64d3a8 100644 --- a/build_library/vm_image_util.sh +++ b/build_library/vm_image_util.sh @@ -32,6 +32,7 @@ VALID_IMG_TYPES=( rackspace_onmetal rackspace_vhd scaleway + stackit vagrant vagrant_parallels vagrant_virtualbox @@ -63,6 +64,7 @@ VALID_OEM_PACKAGES=( rackspace rackspace-onmetal scaleway + stackit vagrant vagrant-key vagrant-virtualbox @@ -321,6 +323,13 @@ IMG_scaleway_OEM_USE=scaleway IMG_scaleway_OEM_SYSEXT=oem-scaleway IMG_scaleway_DISK_EXTENSION=qcow2 +## stackit +IMG_stackit_DISK_FORMAT=qcow2 +IMG_stackit_DISK_LAYOUT=vm +IMG_stackit_OEM_PACKAGE=common-oem-files +IMG_stackit_OEM_USE=stackit +IMG_stackit_OEM_SYSEXT=oem-stackit + ## kubevirt IMG_kubevirt_DISK_FORMAT=qcow2 IMG_kubevirt_DISK_LAYOUT=vm diff --git a/changelog/changes/2025-06-30-stackit.md b/changelog/changes/2025-06-30-stackit.md new file mode 100644 index 0000000000..1424b592ec --- /dev/null +++ b/changelog/changes/2025-06-30-stackit.md @@ -0,0 +1 @@ +- Added STACKIT images ([flatcar/scripts#3018](https://github.com/flatcar/scripts/pull/3018)) diff --git a/ci-automation/vms.sh b/ci-automation/vms.sh index dac30bb3b0..b882d19a04 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|proxmoxve)$ ]];then + elif [[ "${format}" =~ ^(scaleway|kubevirt|proxmoxve|stackit)$ ]];then COMPRESSION_FORMAT="none" elif [[ "${format}" =~ ^(akamai)$ ]];then COMPRESSION_FORMAT="gz" diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/common-oem-files-0-r9.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/common-oem-files-0-r10.ebuild similarity index 93% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/common-oem-files-0-r9.ebuild rename to sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/common-oem-files-0-r10.ebuild index 53f2a48e2f..dbf575dbf3 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/common-oem-files-0-r9.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/common-oem-files/common-oem-files-0-r10.ebuild @@ -38,6 +38,7 @@ COMMON_OEMIDS=( proxmoxve qemu scaleway + stackit kubevirt ) @@ -131,6 +132,11 @@ src_compile() { oemid_cmdline="ec2" fi + # STACKIT is running on top of OpenStack, so the `oem_cmdline` has to be `openstack` for Ignition/Afterburn integration but the `oemid` has to stay `stackit` to load the correct `oem-stackit` sysext image. + if [[ "${oemid}" == "stackit" ]]; then + oemid_cmdline="openstack" + fi + lines=( '# Flatcar GRUB settings' '' diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/files/chrony.conf b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/files/chrony.conf new file mode 100644 index 0000000000..cfb0f0127d --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/files/chrony.conf @@ -0,0 +1,6 @@ +driftfile /var/lib/chrony/drift +makestep 1.0 3 +maxupdateskew 100.0 +dumpdir /var/lib/chrony +rtcsync +refclock PHC /dev/ptp_kvm poll 3 dpoll -2 offset 0 stratum 2 diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/files/chronyd-overwrite.conf b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/files/chronyd-overwrite.conf new file mode 100644 index 0000000000..08ecd9fbfa --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/files/chronyd-overwrite.conf @@ -0,0 +1,6 @@ +[Service] +Restart=always + +[Unit] +Wants=modprobe@ptp_kvm.service +After=modprobe@ptp_kvm.service diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/files/etc-chrony.conf b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/files/etc-chrony.conf new file mode 100644 index 0000000000..827a78cd6a --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/files/etc-chrony.conf @@ -0,0 +1,3 @@ +d /etc/chrony 0755 root root - - +d /etc/chrony/conf.d 0755 root root - - +L /etc/chrony/chrony.conf - - - - ../../usr/share/oem-stackit/chrony.conf diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/files/var-chrony.conf b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/files/var-chrony.conf new file mode 100644 index 0000000000..09fd5a1a8e --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/files/var-chrony.conf @@ -0,0 +1 @@ +d /var/lib/chrony 0770 ntp ntp - - diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/metadata.xml b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/metadata.xml new file mode 100644 index 0000000000..097975e3ad --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/metadata.xml @@ -0,0 +1,4 @@ + + + + diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/oem-stackit-0.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/oem-stackit-0.ebuild new file mode 100644 index 0000000000..19fa7df6e2 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/oem-stackit/oem-stackit-0.ebuild @@ -0,0 +1,32 @@ +# Copyright (c) 2025 Flatcar Maintainers. All rights reserved. +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit systemd tmpfiles + +DESCRIPTION="OEM suite for STACKIT" +HOMEPAGE="https://stackit.cloud" +SRC_URI="" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 arm64" +IUSE="" + +RDEPEND=" + net-misc/chrony +" + +S="${WORKDIR}" + +OEM_NAME="STACKIT" + +src_install() { + systemd_install_dropin chronyd.service "${FILESDIR}"/chronyd-overwrite.conf + systemd_enable_service multi-user.target chronyd.service + dotmpfiles "${FILESDIR}"/var-chrony.conf + dotmpfiles "${FILESDIR}"/etc-chrony.conf + insinto /usr/share/"${PN}" + doins "${FILESDIR}"/chrony.conf +}