mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-21 13:41:20 +02:00
vm_image_util: add support for VMDK images for EC2 AMIs
Lets us avoid larger data transfers when importing images.
This commit is contained in:
parent
5181e6b71c
commit
12c53080a4
@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
VALID_IMG_TYPES=(
|
VALID_IMG_TYPES=(
|
||||||
ami
|
ami
|
||||||
|
ami_vmdk
|
||||||
pxe
|
pxe
|
||||||
iso
|
iso
|
||||||
openstack
|
openstack
|
||||||
@ -171,6 +172,9 @@ IMG_vmware_insecure_OEM_PACKAGE=oem-vagrant-key
|
|||||||
## ami
|
## ami
|
||||||
IMG_ami_OEM_PACKAGE=oem-ec2-compat
|
IMG_ami_OEM_PACKAGE=oem-ec2-compat
|
||||||
IMG_ami_OEM_USE=ec2
|
IMG_ami_OEM_USE=ec2
|
||||||
|
IMG_ami_vmdk_DISK_FORMAT=vmdk_stream
|
||||||
|
IMG_ami_vmdk_OEM_PACKAGE=oem-ec2-compat
|
||||||
|
IMG_ami_vmdk_OEM_USE=ec2
|
||||||
|
|
||||||
## openstack, supports ec2's metadata format so use oem-ec2-compat
|
## openstack, supports ec2's metadata format so use oem-ec2-compat
|
||||||
IMG_openstack_DISK_FORMAT=qcow2
|
IMG_openstack_DISK_FORMAT=qcow2
|
||||||
@ -236,7 +240,7 @@ IMG_secure_demo_DISK_FORMAT=secure_demo
|
|||||||
IMG_secure_demo_CONF_FORMAT=qemu_uefi
|
IMG_secure_demo_CONF_FORMAT=qemu_uefi
|
||||||
|
|
||||||
## niftycloud
|
## niftycloud
|
||||||
IMG_niftycloud_DISK_FORMAT=vmdk_scsi
|
IMG_niftycloud_DISK_FORMAT=vmdk_stream
|
||||||
IMG_niftycloud_DISK_LAYOUT=vm
|
IMG_niftycloud_DISK_LAYOUT=vm
|
||||||
IMG_niftycloud_CONF_FORMAT=niftycloud
|
IMG_niftycloud_CONF_FORMAT=niftycloud
|
||||||
IMG_niftycloud_OEM_PACKAGE=oem-niftycloud
|
IMG_niftycloud_OEM_PACKAGE=oem-niftycloud
|
||||||
@ -340,6 +344,7 @@ _disk_ext() {
|
|||||||
cpio) echo cpio.gz;;
|
cpio) echo cpio.gz;;
|
||||||
vmdk_ide) echo vmdk;;
|
vmdk_ide) echo vmdk;;
|
||||||
vmdk_scsi) echo vmdk;;
|
vmdk_scsi) echo vmdk;;
|
||||||
|
vmdk_stream) echo vmdk;;
|
||||||
secure_demo) echo bin;;
|
secure_demo) echo bin;;
|
||||||
*) echo "${disk_format}";;
|
*) echo "${disk_format}";;
|
||||||
esac
|
esac
|
||||||
@ -456,6 +461,16 @@ _write_vmdk_scsi_disk() {
|
|||||||
assert_image_size "$2" vmdk
|
assert_image_size "$2" vmdk
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_write_vmdk_stream_disk() {
|
||||||
|
# requires two pass conversion, qemu-img doesn't properly support the
|
||||||
|
# stream-optimized VMDK format. The special vmdk-convert tool only takes
|
||||||
|
# VMDK images as an import format.
|
||||||
|
local tmpvmdk="${VM_TMP_DIR}/tmp.vmdk"
|
||||||
|
qemu-img convert -f raw "$1" -O vmdk -o adapter_type=lsilogic "${tmpvmdk}"
|
||||||
|
vmdk-convert "${tmpvmdk}" "$2"
|
||||||
|
assert_image_size "$2" vmdk
|
||||||
|
}
|
||||||
|
|
||||||
_write_cpio_common() {
|
_write_cpio_common() {
|
||||||
local cpio_target="${VM_TMP_DIR}/rootcpio"
|
local cpio_target="${VM_TMP_DIR}/rootcpio"
|
||||||
local dst_dir=$(_dst_dir)
|
local dst_dir=$(_dst_dir)
|
||||||
@ -876,9 +891,6 @@ _write_niftycloud_conf() {
|
|||||||
local dst_dir=$(dirname "$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")"
|
||||||
|
|
||||||
vmdk-convert ${VM_DST_IMG} ${VM_TMP_DIR}/vm.vmdk
|
|
||||||
mv ${VM_TMP_DIR}/vm.vmdk ${VM_DST_IMG}
|
|
||||||
|
|
||||||
"${BUILD_LIBRARY_DIR}/niftycloud_ovf.sh" \
|
"${BUILD_LIBRARY_DIR}/niftycloud_ovf.sh" \
|
||||||
--vm_name "$VM_NAME" \
|
--vm_name "$VM_NAME" \
|
||||||
--disk_vmdk "$VM_DST_IMG" \
|
--disk_vmdk "$VM_DST_IMG" \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user