mirror of
https://github.com/flatcar/scripts.git
synced 2025-11-28 14:01:43 +01:00
build_library: add support for VMware OVF
This moves the functionality of mkova.sh (within the SDK) directly into the build library.
This commit is contained in:
parent
39bb800f16
commit
ebb1ad586f
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Envelope vmw:buildId="build-1474528" xmlns="http://schemas.dmtf.org/ovf/envelope/1" xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vmw="http://www.vmware.com/schema/ovf" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<References>
|
||||
<File ovf:href="@@NAME@@-disk1.vmdk" ovf:id="file1" ovf:size="@@VMDK_FILE_SIZE@@"/>
|
||||
<File ovf:href="@@NAME@@.vmdk" ovf:id="file1" ovf:size="@@VMDK_FILE_SIZE@@"/>
|
||||
</References>
|
||||
<DiskSection>
|
||||
<Info>Virtual disk information</Info>
|
||||
@ -108,6 +108,9 @@ IMG_DEFAULT_BUNDLE_FORMAT=
|
||||
# Memory size to use in any config files
|
||||
IMG_DEFAULT_MEM=1024
|
||||
|
||||
# Number of CPUs to use in any config files
|
||||
IMG_DEFAULT_CPUS=2
|
||||
|
||||
## qemu
|
||||
IMG_qemu_DISK_FORMAT=qcow2
|
||||
IMG_qemu_DISK_LAYOUT=vm
|
||||
@ -133,7 +136,7 @@ IMG_xen_CONF_FORMAT=xl
|
||||
## virtualbox
|
||||
IMG_virtualbox_DISK_FORMAT=vmdk_ide
|
||||
IMG_virtualbox_DISK_LAYOUT=vm
|
||||
IMG_virtualbox_CONF_FORMAT=ovf
|
||||
IMG_virtualbox_CONF_FORMAT=ovf_virtualbox
|
||||
|
||||
## vagrant
|
||||
IMG_vagrant_FS_HOOK=box
|
||||
@ -158,9 +161,10 @@ IMG_vmware_CONF_FORMAT=vmx
|
||||
IMG_vmware_OEM_PACKAGE=oem-vmware
|
||||
|
||||
## vmware
|
||||
IMG_vmware_ova_DISK_FORMAT=vmdk_scsi
|
||||
IMG_vmware_ova_DISK_FORMAT=vmdk_stream
|
||||
IMG_vmware_ova_DISK_LAYOUT=vm
|
||||
IMG_vmware_ova_OEM_PACKAGE=oem-vmware
|
||||
IMG_vmware_ova_CONF_FORMAT=ovf_vmware
|
||||
IMG_vmware_ova_BUNDLE_FORMAT=ova
|
||||
|
||||
## vmware_insecure
|
||||
@ -822,7 +826,7 @@ EOF
|
||||
VM_GENERATED_FILES+=( "${pygrub}" "${pvgrub}" "${VM_README}" )
|
||||
}
|
||||
|
||||
_write_ovf_conf() {
|
||||
_write_ovf_virtualbox_conf() {
|
||||
local vm_mem="${1:-$(_get_vm_opt MEM)}"
|
||||
local src_name=$(basename "$VM_SRC_IMG")
|
||||
local dst_name=$(basename "$VM_DST_IMG")
|
||||
@ -888,8 +892,7 @@ _write_niftycloud_conf() {
|
||||
local vm_mem="${1:-$(_get_vm_opt MEM)}"
|
||||
local src_name=$(basename "$VM_SRC_IMG")
|
||||
local dst_name=$(basename "$VM_DST_IMG")
|
||||
local dst_dir=$(dirname "$VM_DST_IMG")
|
||||
local ovf="${dst_dir}/$(_src_to_dst_name "${src_name}" ".ovf")"
|
||||
local ovf="$(_dst_dir)/$(_src_to_dst_name "${src_name}" ".ovf")"
|
||||
|
||||
"${BUILD_LIBRARY_DIR}/niftycloud_ovf.sh" \
|
||||
--vm_name "$VM_NAME" \
|
||||
@ -905,6 +908,24 @@ EOF
|
||||
VM_GENERATED_FILES+=( "$ovf" )
|
||||
}
|
||||
|
||||
_write_ovf_vmware_conf() {
|
||||
local vm_mem="${1:-$(_get_vm_opt MEM)}"
|
||||
local vm_cpus="$(_get_vm_opt CPUS)"
|
||||
local vmdk_file_size=$(du --bytes "${VM_DST_IMG}" | cut -f1)
|
||||
local vmdk_capacity=$(vmdk-convert -i "${VM_DST_IMG}" | jq .capacity)
|
||||
local ovf="$(_dst_path ".ovf")"
|
||||
|
||||
sed "${BUILD_LIBRARY_DIR}/template_vmware.ovf" \
|
||||
-e "s/@@NAME@@/$(_dst_name)/g" \
|
||||
-e "s/@@VMDK_FILE_SIZE@@/${vmdk_file_size}/g" \
|
||||
-e "s/@@VMDK_CAPACITY@@/${vmdk_capacity}/g" \
|
||||
-e "s/@@NUM_CPUS@@/${vm_cpus}/g" \
|
||||
-e "s/@@MEM_SIZE@@/${vm_mem}/g" \
|
||||
> "${ovf}"
|
||||
|
||||
VM_GENERATED_FILES+=( "$ovf" )
|
||||
}
|
||||
|
||||
# If this is a bundled format generate it!
|
||||
write_vm_bundle() {
|
||||
local bundle_format=$(_get_vm_opt BUNDLE_FORMAT)
|
||||
@ -945,9 +966,19 @@ EOF
|
||||
}
|
||||
|
||||
_write_ova_bundle() {
|
||||
vmdk-convert ${VM_DST_IMG} ${VM_TMP_DIR}/vm.vmdk
|
||||
( cd $(_dst_dir) && mkova.sh $(_dst_name) ${VM_TMP_DIR}/vm.vmdk ${BUILD_LIBRARY_DIR}/template.ovf)
|
||||
VM_GENERATED_FILES+=$(_dst_dir)/$(_dst_name ".ova")
|
||||
local mf="$(_dst_name ".mf")"
|
||||
local vmdk="$(basename ${VM_DST_IMG})"
|
||||
local ovf=$(_dst_name ".ovf")
|
||||
|
||||
cp "${VM_DST_IMG}" "${VM_TMP_DIR}/${vmdk}"
|
||||
cp "$(_dst_dir)/${ovf}" "${VM_TMP_DIR}/${ovf}"
|
||||
|
||||
echo "SHA1(${vmdk})= $(sha1sum "${VM_TMP_DIR}/${vmdk}" | cut -d' ' -f1)" > "${VM_TMP_DIR}/${mf}"
|
||||
echo "SHA1(${ovf})= $(sha1sum "${VM_TMP_DIR}/${ovf}" | cut -d' ' -f1)" >> "${VM_TMP_DIR}/${mf}"
|
||||
|
||||
tar -cf $(_dst_path ".ova") -C "${VM_TMP_DIR}" "${ovf}" "${mf}" "${vmdk}"
|
||||
|
||||
VM_GENERATED_FILES+=( $(_dst_path ".ova") "${VM_DST_IMG}" )
|
||||
}
|
||||
|
||||
_write_secure_demo_disk() {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user