Merge pull request #1197 from flatcar/tormath1/oem-openstack

oem: port digitalocean, equinix metal (packet) and openstack
This commit is contained in:
Mathieu Tortuyaux 2023-10-09 18:10:29 +02:00 committed by GitHub
commit da1b25f180
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 91 additions and 144 deletions

View File

@ -47,10 +47,10 @@ VALID_OEM_PACKAGES=(
cloudsigma
cloudstack
digitalocean
ec2-compat
exoscale
gce
hyperv
openstack
packet
qemu
rackspace
@ -229,16 +229,18 @@ IMG_ami_OEM_USE=ami
IMG_ami_OEM_PACKAGE=common-oem-files
IMG_ami_OEM_SYSEXT=oem-ami
## openstack, supports ec2's metadata format so use oem-ec2-compat
## openstack
IMG_openstack_DISK_FORMAT=qcow2
IMG_openstack_DISK_LAYOUT=vm
IMG_openstack_OEM_PACKAGE=oem-ec2-compat
IMG_openstack_OEM_PACKAGE=common-oem-files
IMG_openstack_OEM_USE=openstack
IMG_openstack_OEM_SYSEXT=oem-openstack
## openstack but without a resized root partition for more flexibility
IMG_openstack_mini_DISK_FORMAT=qcow2
IMG_openstack_mini_OEM_PACKAGE=oem-ec2-compat
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
@ -280,7 +282,9 @@ IMG_cloudstack_vhd_DISK_FORMAT=vhd
IMG_cloudstack_vhd_OEM_PACKAGE=oem-cloudstack
## digitalocean
IMG_digitalocean_OEM_PACKAGE=oem-digitalocean
IMG_digitalocean_OEM_PACKAGE=common-oem-files
IMG_digitalocean_OEM_USE=digitalocean
IMG_digitalocean_OEM_SYSEXT=oem-digitalocean
## exoscale
IMG_exoscale_DISK_FORMAT=qcow2
@ -302,7 +306,9 @@ IMG_cloudsigma_DISK_FORMAT=qcow2
IMG_cloudsigma_OEM_PACKAGE=oem-cloudsigma
## packet
IMG_packet_OEM_PACKAGE=oem-packet
IMG_packet_OEM_PACKAGE=common-oem-files
IMG_packet_OEM_SYSEXT=oem-packet
IMG_packet_OEM_USE=packet
###########################################################

View File

@ -1,4 +1,22 @@
[Unit]
ConditionKernelCommandLine=|flatcar.oem.id=ec2
ConditionKernelCommandLine=|coreos.oem.id=ec2
ConditionKernelCommandLine=|flatcar.oem.id=azure
ConditionKernelCommandLine=|coreos.oem.id=azure
ConditionKernelCommandLine=|flatcar.oem.id=digitalocean
ConditionKernelCommandLine=|coreos.oem.id=digitalocean
ConditionKernelCommandLine=|flatcar.oem.id=gce
ConditionKernelCommandLine=|coreos.oem.id=gce
ConditionKernelCommandLine=|flatcar.oem.id=openstack
ConditionKernelCommandLine=|coreos.oem.id=openstack
ConditionKernelCommandLine=|flatcar.oem.id=packet
ConditionKernelCommandLine=|coreos.oem.id=packet
Description=Flatcar Metadata Agent
[Service]

View File

@ -1,6 +1,3 @@
# Flatcar GRUB settings
set oem_id="packet"
set linux_append="flatcar.autologin"
if [ "$grub_cpu" = i386 ] || [ "$grub_cpu" = x86_64 ]; then

View File

@ -10,7 +10,7 @@ CROS_WORKON_REPO="https://github.com"
if [[ "${PV}" == 9999 ]]; then
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
else
CROS_WORKON_COMMIT="22c07b1270fb2f40dedef00f0d0fb1699727d995" # flatcar-master
CROS_WORKON_COMMIT="c01a33756a8fd9c672283d5a4ca56807dec4b9ff" # flatcar-master
KEYWORDS="amd64 arm arm64 x86"
fi

View File

@ -0,0 +1,2 @@
/etc/systemd/system/multi-user.target.requires/coreos-metadata-sshkeys@core.service
/oem/base/

View File

@ -0,0 +1,2 @@
/etc/systemd/system/multi-user.target.requires/coreos-metadata-sshkeys@core.service
/oem/base/

View File

@ -0,0 +1,4 @@
/etc/systemd/system/multi-user.target.requires/coreos-metadata-sshkeys@core.service
/etc/systemd/system/packet-phone-home.service
/oem/base/
/oem/units/

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": "2.1.0"
},
"systemd": {
"units": [
{
"name": "coreos-metadata-sshkeys@.service",
"enabled": true
}
]
}
}

View File

@ -1,3 +0,0 @@
# Flatcar GRUB settings
set oem_id="digitalocean"

View File

@ -1,5 +0,0 @@
ID=digitalocean
VERSION_ID=@@OEM_VERSION_ID@@
NAME="DigitalOcean"
HOME_URL="https://www.digitalocean.com/"
BUG_REPORT_URL="https://issues.flatcar.org"

View File

@ -1,28 +0,0 @@
# Copyright (c) 2014 CoreOS, Inc.. All rights reserved.
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="OEM suite for DigitalOcean images"
HOMEPAGE=""
SRC_URI=""
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64 x86"
# no source directory
S="${WORKDIR}"
src_prepare() {
default
sed -e "s\\@@OEM_VERSION_ID@@\\${PVR}\\g" \
"${FILESDIR}/oem-release" > "${T}/oem-release" || die
}
src_install() {
insinto "/oem"
doins "${FILESDIR}/grub.cfg"
doins "${T}/oem-release"
doins -r "${FILESDIR}/base"
}

View File

@ -0,0 +1,15 @@
# Copyright (c) 2020 Kinvolk GmbH. All rights reserved.
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="DigitalOcean suite for DigitalOcean"
HOMEPAGE="https://www.digitalocean.com/"
SRC_URI=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 arm64"
IUSE=""
OEM_NAME="DigitalOcean"

View File

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

View File

@ -0,0 +1,15 @@
# Copyright (c) 2020 Kinvolk GmbH. All rights reserved.
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="OpenStack suite for OpenStack"
HOMEPAGE="https://www.openstack.org/"
SRC_URI=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 arm64"
IUSE=""
OEM_NAME="Openstack"

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,29 +0,0 @@
{
"ignition": {
"version": "2.1.0"
},
"storage": {
"files": [
{
"filesystem": "root",
"path": "/etc/systemd/system/packet-phone-home.service",
"contents": {
"source": "oem:///units/packet-phone-home.service"
},
"mode": 292
}
]
},
"systemd": {
"units": [
{
"name": "coreos-metadata-sshkeys@.service",
"enabled": true
},
{
"name": "packet-phone-home.service",
"enabled": true
}
]
}
}

View File

@ -1,5 +0,0 @@
ID=packet
VERSION_ID=@@OEM_VERSION_ID@@
NAME="Packet"
HOME_URL="https://packet.net"
BUG_REPORT_URL="https://issues.flatcar.org"

View File

@ -1,14 +0,0 @@
[Unit]
Description=Report Success to Packet
ConditionFirstBoot=true
Requires=coreos-metadata.service
After=coreos-metadata.service
[Service]
EnvironmentFile=/run/metadata/flatcar
ExecStart=/usr/bin/curl --header "Content-Type: application/json" --request POST "${COREOS_PACKET_PHONE_HOME_URL}"
Restart=on-failure
RestartSec=2
[Install]
WantedBy=multi-user.target

View File

@ -1,29 +0,0 @@
# Copyright (c) 2014 CoreOS, Inc.. All rights reserved.
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="OEM suite for Packet images"
HOMEPAGE=""
SRC_URI=""
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64 arm64 x86"
# no source directory
S="${WORKDIR}"
src_prepare() {
default
sed -e "s\\@@OEM_VERSION_ID@@\\${PVR}\\g" \
"${FILESDIR}/oem-release" > "${T}/oem-release" || die
}
src_install() {
insinto "/oem"
doins "${FILESDIR}/grub.cfg"
doins "${T}/oem-release"
doins -r "${FILESDIR}/base"
doins -r "${FILESDIR}/units"
}

View File

@ -0,0 +1,15 @@
# Copyright (c) 2020 Kinvolk GmbH. All rights reserved.
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Equinix Metal suite for Equinix Metal"
HOMEPAGE="https://www.equinix.com/"
SRC_URI=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 arm64"
IUSE=""
OEM_NAME="Equinix Metal"