From 435206c1ca548084e35e3498a8326a8148fc190d Mon Sep 17 00:00:00 2001 From: Neil Hanlon Date: Fri, 18 Nov 2022 23:46:26 -0500 Subject: [PATCH] add rpi image --- iso/empanadas/empanadas/common.py | 3 ++- iso/empanadas/empanadas/scripts/build_image.py | 12 +++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/iso/empanadas/empanadas/common.py b/iso/empanadas/empanadas/common.py index 8dd5f6c..a33dfc9 100644 --- a/iso/empanadas/empanadas/common.py +++ b/iso/empanadas/empanadas/common.py @@ -108,7 +108,8 @@ ALLOWED_TYPE_VARIANTS = { "EC2": ["Base", "LVM"], "GenericCloud": ["Base", "LVM"], "Vagrant": ["Libvirt", "Vbox", "VMware"], - "OCP": None + "OCP": None, + "RPI": None, } def valid_type_variant(_type: str, variant: str="") -> bool: if _type not in ALLOWED_TYPE_VARIANTS: diff --git a/iso/empanadas/empanadas/scripts/build_image.py b/iso/empanadas/empanadas/scripts/build_image.py index 4ce09b3..69ef033 100644 --- a/iso/empanadas/empanadas/scripts/build_image.py +++ b/iso/empanadas/empanadas/scripts/build_image.py @@ -107,6 +107,11 @@ class ImageBuild: ["tar", "-C", f"{self.outdir}", "--strip-components=1", "-x", "-f", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", "*/layer.tar"], ["xz", f"{self.outdir}/layer.tar"] ] + if self.image_type in ["RPI"]: + self.stage_commands = [ + ["tar", "-C", f"{self.outdir}", "--strip-components=1", "-x", "-f", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", "*/layer.tar"], + ["xz", f"{self.outdir}/layer.tar"] + ] if self.image_type in ["GenericCloud", "OCP"]: self.stage_commands = [ ["qemu-img", "convert", "-c", "-f", "raw", "-O", "qcow2", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", f"{self.outdir}/{self.outname}.qcow2"] @@ -192,13 +197,13 @@ class ImageBuild: return [param for name, param in args_mapping.items() if getattr(self.cli_args, name)] def _package_args(self) -> List[str]: - if self.image_type == "Container": + if self.image_type in ["Container", "RPI"]: return ["--parameter", "compress", "xz"] return [""] def _common_args(self) -> List[str]: args = [] - if self.image_type == "Container": + if self.image_type in ["Container", "RPI"]: args = ["--parameter", "offline_icicle", "true"] if self.image_type in ["GenericCloud", "EC2", "Vagrant", "Azure", "OCP"]: args = ["--parameter", "generate_icicle", "false"] @@ -206,7 +211,8 @@ class ImageBuild: def image_format(self) -> str: mapping = { - "Container": "docker" + "Container": "docker", + "RPI": "docker" } return mapping[self.image_type] if self.image_type in mapping.keys() else ''