From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7041956804245323776 X-Received: by 2002:adf:fe04:: with SMTP id n4mr2837628wrr.667.1639752529176; Fri, 17 Dec 2021 06:48:49 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a5d:522c:: with SMTP id i12ls595429wra.0.gmail; Fri, 17 Dec 2021 06:48:48 -0800 (PST) X-Google-Smtp-Source: ABdhPJyFFSkty7nO0nZM0Alg0SoSgWNdm6BYFZI0f1uZgX2RW8GpL006kDF3T6MN3nQifsBVQs2k X-Received: by 2002:adf:a48e:: with SMTP id g14mr2829805wrb.474.1639752528168; Fri, 17 Dec 2021 06:48:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1639752528; cv=none; d=google.com; s=arc-20160816; b=iqdPS7Jk6ertmtZS8N3P2xugD3UbhyunwxCDqGiy2XPPNjNd2FpMcDoz3GDAMR4yd2 mYM4IaLBl738MeiXMUiJ6aX+dGJaoDa1TubXX6FCbiNScEuPN3RJzJrVqgAbP+dQsfJP UfjXmN32mitF2f/X+rLmn0S++ewvl8UYHMgdpKUwgIyFh5VHmig6s+WHUxi35Pv5UvSL qsKAmfpYUT+Kiw5mbKMZwuLwEyzACp5FmqROdPIfgy61Yah/fB6JrQwcUuXbKpYbIu/z TFy2QHap2ltFNJPlbgtTOxZBXvgP+0eIONGRmw4XVG3fby7T0ZsdJ6E5uqcd+WlUxyQK Rkhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=tQJcl/kVdSFhZqzjWqT7+HaQsPOnWrbre1MaJNO/OfU=; b=mRHtyw4/4BSFGYDYXAN2fQsX1snd3G4iNJsI6lwTJJ7peW/Ei2tr94Eqyj0srP5+lt MrKuOzv6udD573y+9w5upaDJFU9qZcJtbFRcwGduO5IcRxBR0JNRSA15pSVKIuLOx5lu O/pJ4HDO2ik0gw/XIqxpoQcJJU6oDwt+8RBaW1wmDpta51W5tCSElH71I4TlWIC4Oncg w8/6QxuJsIS3JeCd+0AhaTE7nOMUX7UbI7uu+ibHPO9oTndU+OET/bIRtrOgw7gMKdT4 ys5/61sBcTd49lhuYuAqM/XTGbDAFw7cmId7Bc4B3IfE3fgdnNZCcut77UZwf4J0KXQ+ 30WQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id r5si416214wrw.8.2021.12.17.06.48.48 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 17 Dec 2021 06:48:48 -0800 (PST) Received-SPF: pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Received: from localhost.localdomain (mm-214-81-214-37.mgts.dynamic.pppoe.byfly.by [37.214.81.214] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8) with ESMTPSA id 1BHEmh2q018603 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 17 Dec 2021 15:48:47 +0100 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Henning Schild Subject: [PATCH v6 2/7] vm-img: use two different ovf templates for vmware/virtualbox Date: Fri, 17 Dec 2021 17:48:30 +0300 Message-Id: <20211217144835.14878-3-amikan@ilbers.de> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211217144835.14878-1-amikan@ilbers.de> References: <20211217144835.14878-1-amikan@ilbers.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-TUID: 8qhOB5Q+tvgc From: Henning Schild Both vmware and virtualbox have their own dialects of "ovf", there is no common way to describe things. That combined template was trying by mixing both dialects into one file. But the result caused parsing error on recent vmware. Instead of trying one size fits all, this patch introduces two templates. Both derived from ovf exports done on recent version of vmware and virtualbox. Because of the vmdk sub-format it was anyways not possible to build one ova image that would work for both VMMs. We also now set the uppercase version of OVA_FIRMWARE, which is needed for virtualbox. Before it was called OVA_FIRMWARE_VIRTUALBOX but was not set. Signed-off-by: Henning Schild --- meta-isar/conf/machine/vmware.conf | 2 + meta/classes/vm-img.bbclass | 6 +- ...te.ovf.tmpl => vm-img-virtualbox.ovf.tmpl} | 132 +++++++----------- meta/classes/vm-img/vm-img-vmware.ovf.tmpl | 127 +++++++++++++++++ 4 files changed, 185 insertions(+), 82 deletions(-) rename meta/classes/vm-img/{vm-template.ovf.tmpl => vm-img-virtualbox.ovf.tmpl} (54%) create mode 100644 meta/classes/vm-img/vm-img-vmware.ovf.tmpl diff --git a/meta-isar/conf/machine/vmware.conf b/meta-isar/conf/machine/vmware.conf index 5832b29..9bf1fd9 100644 --- a/meta-isar/conf/machine/vmware.conf +++ b/meta-isar/conf/machine/vmware.conf @@ -11,5 +11,7 @@ WKS_FILE ?= "sdimage-efi" IMAGER_INSTALL += "${GRUB_BOOTLOADER_INSTALL}" +OVF_TEMPLATE_FILE ?= "vm-img-vmware.ovf.tmpl" + VMDK_SUBFORMAT = "streamOptimized" IMAGE_FSTYPES ?= "vm-img" diff --git a/meta/classes/vm-img.bbclass b/meta/classes/vm-img.bbclass index 84ca328..0733208 100644 --- a/meta/classes/vm-img.bbclass +++ b/meta/classes/vm-img.bbclass @@ -8,7 +8,8 @@ inherit buildchroot inherit wic-img FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/vm-img:" -SRC_URI += "file://vm-template.ovf.tmpl" +OVF_TEMPLATE_FILE ?= "vm-img-virtualbox.ovf.tmpl" +SRC_URI += "file://${OVF_TEMPLATE_FILE}" IMAGER_INSTALL += "qemu-utils gawk uuid-runtime" @@ -93,6 +94,7 @@ do_create_ova() { export SECONDARY_MAC=$(macgen) export DISK_NAME=$(basename -s .vmdk ${VIRTUAL_MACHINE_DISK}) export LAST_CHANGE=$(date -u "+%Y-%m-%dT%H:%M:%SZ") + export OVA_FIRMWARE_UPPERCASE=$(echo ${OVA_FIRMWARE} | tr '[a-z]' '[A-Z]') image_do_mounts @@ -103,7 +105,7 @@ do_create_ova() { export DISK_UUID=$(uuidgen) export VM_UUID=$(uuidgen) # create ovf - cat ${PP_WORK}/vm-template.ovf.tmpl | envsubst > ${PP_DEPLOY}/${OVA_NAME}.ovf + cat ${PP_WORK}/${OVF_TEMPLATE_FILE} | envsubst > ${PP_DEPLOY}/${OVA_NAME}.ovf tar -cvf ${PP_DEPLOY}/${OVA_NAME}.ova -C ${PP_DEPLOY} ${OVA_NAME}.ovf # VirtualBox needs here a manifest file. VMware does accept that format. diff --git a/meta/classes/vm-img/vm-template.ovf.tmpl b/meta/classes/vm-img/vm-img-virtualbox.ovf.tmpl similarity index 54% rename from meta/classes/vm-img/vm-template.ovf.tmpl rename to meta/classes/vm-img/vm-img-virtualbox.ovf.tmpl index e6b5305..c9561a2 100644 --- a/meta/classes/vm-img/vm-template.ovf.tmpl +++ b/meta/classes/vm-img/vm-img-virtualbox.ovf.tmpl @@ -1,7 +1,7 @@ - + List of the virtual disks used in the package @@ -29,7 +29,6 @@ virtualbox-2.2 - hertz * 10^6 ${OVA_NUMBER_OF_CPU} virtual CPU Number of virtual CPUs ${OVA_NUMBER_OF_CPU} virtual CPU @@ -64,92 +63,65 @@ PIIX4 5 - - true - Ethernet adapter on 'NAT' - NAT - Ethernet adapter on 'NAT' - 5 - E1000 - 10 - 0 disk1 Disk Image disk1 /disk/vmdisk1 - 6 + 5 3 17 - - - - - - - - - - Complete VirtualBox machine configuration in VirtualBox format - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + true + Ethernet adapter on 'NAT' + NAT + Ethernet adapter on 'NAT' + 6 + 10 + + + + Complete VirtualBox machine configuration in VirtualBox format + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/meta/classes/vm-img/vm-img-vmware.ovf.tmpl b/meta/classes/vm-img/vm-img-vmware.ovf.tmpl new file mode 100644 index 0000000..5280f33 --- /dev/null +++ b/meta/classes/vm-img/vm-img-vmware.ovf.tmpl @@ -0,0 +1,127 @@ + + + + + + + Virtual disk information + + + + The list of logical networks + + The nat network + + + + A virtual machine + ${OVA_NAME} + + The kind of installed guest operating system + + + Virtual hardware requirements + + Virtual Hardware Family + 0 + ${OVA_NAME} + vmx-18 + + + hertz * 10^6 + Number of Virtual CPUs + ${OVA_NUMBER_OF_CPU} virtual CPU(s) + 1 + 3 + ${OVA_NUMBER_OF_CPU} + + + byte * 2^20 + Memory Size + ${OVA_MEMORY}MB of memory + 2 + 4 + ${OVA_MEMORY} + + + 0 + IDE Controller + ideController0 + 3 + 5 + + + 0 + disk0 + ovf:/disk/vmdisk1 + 4 + 3 + 17 + + + + 1 + true + nat + E1000 ethernet adapter on "nat" + ethernet0 + 5 + E1000 + 10 + + + + + + false + video + 6 + 24 + + + + false + vmci + 7 + vmware.vmci + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- 2.25.1