mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-28 09:01:55 +02:00
Merge pull request #1783 from flatcar/kai/proxmox-support
OEM: Provide Proxmox images
This commit is contained in:
commit
c80760c999
@ -25,6 +25,7 @@ VALID_IMG_TYPES=(
|
|||||||
openstack_mini
|
openstack_mini
|
||||||
packet
|
packet
|
||||||
parallels
|
parallels
|
||||||
|
proxmoxve
|
||||||
pxe
|
pxe
|
||||||
qemu_uefi
|
qemu_uefi
|
||||||
rackspace
|
rackspace
|
||||||
@ -57,6 +58,7 @@ VALID_OEM_PACKAGES=(
|
|||||||
kubevirt
|
kubevirt
|
||||||
openstack
|
openstack
|
||||||
packet
|
packet
|
||||||
|
proxmoxve
|
||||||
qemu
|
qemu
|
||||||
rackspace
|
rackspace
|
||||||
rackspace-onmetal
|
rackspace-onmetal
|
||||||
@ -332,6 +334,13 @@ IMG_akamai_OEM_PACKAGE=common-oem-files
|
|||||||
IMG_akamai_OEM_USE=akamai
|
IMG_akamai_OEM_USE=akamai
|
||||||
IMG_akamai_OEM_SYSEXT=oem-akamai
|
IMG_akamai_OEM_SYSEXT=oem-akamai
|
||||||
|
|
||||||
|
# proxmoxve
|
||||||
|
IMG_proxmoxve_DISK_FORMAT=qcow2
|
||||||
|
IMG_proxmoxve_DISK_LAYOUT=vm
|
||||||
|
IMG_proxmoxve_OEM_PACKAGE=common-oem-files
|
||||||
|
IMG_proxmoxve_OEM_USE=proxmoxve
|
||||||
|
IMG_proxmoxve_OEM_SYSEXT=oem-proxmoxve
|
||||||
|
|
||||||
###########################################################
|
###########################################################
|
||||||
|
|
||||||
# Print the default vm type for the specified board
|
# Print the default vm type for the specified board
|
||||||
|
1
changelog/changes/2024-10-24-proxmoxve.md
Normal file
1
changelog/changes/2024-10-24-proxmoxve.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
- Added Proxmox Virtual Environment images ([scripts#1783](https://github.com/flatcar/scripts/pull/1783))
|
@ -138,7 +138,7 @@ function _vm_build_impl() {
|
|||||||
COMPRESSION_FORMAT="bz2,none"
|
COMPRESSION_FORMAT="bz2,none"
|
||||||
elif [[ "${format}" =~ ^(hyperv|hyperv_vhdx)$ ]];then
|
elif [[ "${format}" =~ ^(hyperv|hyperv_vhdx)$ ]];then
|
||||||
COMPRESSION_FORMAT="zip"
|
COMPRESSION_FORMAT="zip"
|
||||||
elif [[ "${format}" =~ ^(scaleway|kubevirt)$ ]];then
|
elif [[ "${format}" =~ ^(scaleway|kubevirt|proxmoxve)$ ]];then
|
||||||
COMPRESSION_FORMAT="none"
|
COMPRESSION_FORMAT="none"
|
||||||
elif [[ "${format}" =~ ^(akamai)$ ]];then
|
elif [[ "${format}" =~ ^(akamai)$ ]];then
|
||||||
COMPRESSION_FORMAT="gz"
|
COMPRESSION_FORMAT="gz"
|
||||||
|
@ -25,6 +25,8 @@ ConditionKernelCommandLine=|flatcar.oem.id=kubevirt
|
|||||||
|
|
||||||
ConditionKernelCommandLine=|flatcar.oem.id=akamai
|
ConditionKernelCommandLine=|flatcar.oem.id=akamai
|
||||||
|
|
||||||
|
ConditionKernelCommandLine=|flatcar.oem.id=proxmoxve
|
||||||
|
|
||||||
Description=Flatcar Metadata Agent
|
Description=Flatcar Metadata Agent
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
|
@ -35,6 +35,7 @@ COMMON_OEMIDS=(
|
|||||||
hetzner
|
hetzner
|
||||||
openstack
|
openstack
|
||||||
packet
|
packet
|
||||||
|
proxmoxve
|
||||||
qemu
|
qemu
|
||||||
scaleway
|
scaleway
|
||||||
kubevirt
|
kubevirt
|
@ -0,0 +1 @@
|
|||||||
|
set linux_append="flatcar.autologin"
|
@ -8,7 +8,7 @@ EGIT_REPO_URI="https://github.com/flatcar/init.git"
|
|||||||
if [[ "${PV}" == 9999 ]]; then
|
if [[ "${PV}" == 9999 ]]; then
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
|
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
|
||||||
else
|
else
|
||||||
EGIT_COMMIT="05b4b2aafbe706bdd65265c7a7103ed75fee14d2" # flatcar-master
|
EGIT_COMMIT="b5a6cbcfaabe605e28e075b8ac674edaf576a0eb" # flatcar-master
|
||||||
KEYWORDS="amd64 arm arm64 x86"
|
KEYWORDS="amd64 arm arm64 x86"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
4
sdk_container/src/third_party/coreos-overlay/coreos-base/oem-proxmoxve/metadata.xml
vendored
Normal file
4
sdk_container/src/third_party/coreos-overlay/coreos-base/oem-proxmoxve/metadata.xml
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
</pkgmetadata>
|
15
sdk_container/src/third_party/coreos-overlay/coreos-base/oem-proxmoxve/oem-proxmoxve-0.ebuild
vendored
Normal file
15
sdk_container/src/third_party/coreos-overlay/coreos-base/oem-proxmoxve/oem-proxmoxve-0.ebuild
vendored
Normal file
@ -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 Proxmox VE"
|
||||||
|
HOMEPAGE="https://www.proxmox.com/en/proxmox-virtual-environment/"
|
||||||
|
SRC_URI=""
|
||||||
|
|
||||||
|
LICENSE="GPL-2"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="amd64 arm64"
|
||||||
|
IUSE=""
|
||||||
|
|
||||||
|
OEM_NAME="Proxmox VE"
|
@ -0,0 +1,126 @@
|
|||||||
|
From e6824a223057ca1379d3890ec58773f7549f6ec2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
|
||||||
|
Date: Wed, 6 Nov 2024 14:51:42 +0100
|
||||||
|
Subject: [PATCH 1/2] add noop provider
|
||||||
|
|
||||||
|
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
|
||||||
|
---
|
||||||
|
src/providers/noop/mod.rs | 28 ++++++++++++++++++++++++++++
|
||||||
|
1 file changed, 28 insertions(+)
|
||||||
|
create mode 100644 src/providers/noop/mod.rs
|
||||||
|
|
||||||
|
diff --git a/src/providers/noop/mod.rs b/src/providers/noop/mod.rs
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..c722297
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/providers/noop/mod.rs
|
||||||
|
@@ -0,0 +1,28 @@
|
||||||
|
+// Copyright 2023 CoreOS, Inc.
|
||||||
|
+//
|
||||||
|
+// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
+// you may not use this file except in compliance with the License.
|
||||||
|
+// You may obtain a copy of the License at
|
||||||
|
+//
|
||||||
|
+// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
+//
|
||||||
|
+// Unless required by applicable law or agreed to in writing, software
|
||||||
|
+// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
+// See the License for the specific language governing permissions and
|
||||||
|
+// limitations under the License.
|
||||||
|
+
|
||||||
|
+use anyhow::Result;
|
||||||
|
+
|
||||||
|
+use crate::providers::MetadataProvider;
|
||||||
|
+
|
||||||
|
+/// Noop provider
|
||||||
|
+pub struct NoopProvider {}
|
||||||
|
+
|
||||||
|
+impl NoopProvider {
|
||||||
|
+ pub fn try_new() -> Result<NoopProvider> {
|
||||||
|
+ Ok(Self { })
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+impl MetadataProvider for NoopProvider {}
|
||||||
|
--
|
||||||
|
2.44.2
|
||||||
|
|
||||||
|
From fce6d962436fad9c0700174c7fab99ba35d653fd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
|
||||||
|
Date: Wed, 6 Nov 2024 15:14:26 +0100
|
||||||
|
Subject: [PATCH 2/2] proxmox: use noop provider if no configdrive
|
||||||
|
|
||||||
|
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
|
||||||
|
---
|
||||||
|
src/metadata.rs | 4 ++--
|
||||||
|
src/providers/mod.rs | 1 +
|
||||||
|
src/providers/proxmoxve/mod.rs | 14 ++++++++++++++
|
||||||
|
3 files changed, 17 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/metadata.rs b/src/metadata.rs
|
||||||
|
index 94f9238..bd311f7 100644
|
||||||
|
--- a/src/metadata.rs
|
||||||
|
+++ b/src/metadata.rs
|
||||||
|
@@ -33,7 +33,7 @@ use crate::providers::openstack;
|
||||||
|
use crate::providers::openstack::network::OpenstackProviderNetwork;
|
||||||
|
use crate::providers::packet::PacketProvider;
|
||||||
|
use crate::providers::powervs::PowerVSProvider;
|
||||||
|
-use crate::providers::proxmoxve::ProxmoxVEConfigDrive;
|
||||||
|
+use crate::providers::proxmoxve;
|
||||||
|
use crate::providers::scaleway::ScalewayProvider;
|
||||||
|
use crate::providers::vmware::VmwareProvider;
|
||||||
|
use crate::providers::vultr::VultrProvider;
|
||||||
|
@@ -71,7 +71,7 @@ pub fn fetch_metadata(provider: &str) -> Result<Box<dyn providers::MetadataProvi
|
||||||
|
"openstack-metadata" => box_result!(OpenstackProviderNetwork::try_new()?),
|
||||||
|
"packet" => box_result!(PacketProvider::try_new()?),
|
||||||
|
"powervs" => box_result!(PowerVSProvider::try_new()?),
|
||||||
|
- "proxmoxve" => box_result!(ProxmoxVEConfigDrive::try_new()?),
|
||||||
|
+ "proxmoxve" => proxmoxve::try_config_drive_else_leave(),
|
||||||
|
"scaleway" => box_result!(ScalewayProvider::try_new()?),
|
||||||
|
"vmware" => box_result!(VmwareProvider::try_new()?),
|
||||||
|
"vultr" => box_result!(VultrProvider::try_new()?),
|
||||||
|
diff --git a/src/providers/mod.rs b/src/providers/mod.rs
|
||||||
|
index e17d551..dab07e1 100644
|
||||||
|
--- a/src/providers/mod.rs
|
||||||
|
+++ b/src/providers/mod.rs
|
||||||
|
@@ -35,6 +35,7 @@ pub mod ibmcloud;
|
||||||
|
pub mod ibmcloud_classic;
|
||||||
|
pub mod kubevirt;
|
||||||
|
pub mod microsoft;
|
||||||
|
+pub mod noop;
|
||||||
|
pub mod openstack;
|
||||||
|
pub mod packet;
|
||||||
|
pub mod powervs;
|
||||||
|
diff --git a/src/providers/proxmoxve/mod.rs b/src/providers/proxmoxve/mod.rs
|
||||||
|
index 14146b0..a965162 100644
|
||||||
|
--- a/src/providers/proxmoxve/mod.rs
|
||||||
|
+++ b/src/providers/proxmoxve/mod.rs
|
||||||
|
@@ -12,6 +12,11 @@
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
+use anyhow::Result;
|
||||||
|
+use crate::providers;
|
||||||
|
+use crate::providers::noop::NoopProvider;
|
||||||
|
+use slog_scope::warn;
|
||||||
|
+
|
||||||
|
mod configdrive;
|
||||||
|
pub use configdrive::*;
|
||||||
|
|
||||||
|
@@ -20,3 +25,12 @@ pub use cloudconfig::*;
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests;
|
||||||
|
+
|
||||||
|
+pub fn try_config_drive_else_leave() -> Result<Box<dyn providers::MetadataProvider>> {
|
||||||
|
+ if let Ok(config_drive) = ProxmoxVEConfigDrive::try_new() {
|
||||||
|
+ Ok(Box::new(config_drive))
|
||||||
|
+ } else {
|
||||||
|
+ warn!("failed to locate config-drive - aborting ProxmoxVE provider");
|
||||||
|
+ Ok(Box::new(NoopProvider::try_new()?))
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
--
|
||||||
|
2.44.2
|
||||||
|
|
@ -7,7 +7,7 @@ EGIT_REPO_URI="https://github.com/flatcar/bootengine.git"
|
|||||||
if [[ "${PV}" == 9999 ]]; then
|
if [[ "${PV}" == 9999 ]]; then
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
|
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
|
||||||
else
|
else
|
||||||
EGIT_COMMIT="f3c80fb02fe65dd3be2b0bb4727fc10985acfa9d" # flatcar-master
|
EGIT_COMMIT="c9de038b73621165f81573c77ca0d0c2f9e886db" # flatcar-master
|
||||||
KEYWORDS="amd64 arm arm64 x86"
|
KEYWORDS="amd64 arm arm64 x86"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user