VMware driver should be able to spawn instances from OVA images

Registered by Arnaud Legendre

Currently, the VMware driver is using flat images (*-flat.vmdk) and metadata (disk type, adapter type,...) to spawn instances.
This approach requires the user to provide metadata and deal with flat images which are not designed to be portable.

To address to issue, the driver should be able to spawn an instance from an OVA located in the datastore.
An OVA package is a tar archive file with the OVF directory inside: OVF is an open standard for packaging and distributing virtual appliances or more generally software to be run in virtual machines.

The VMware driver would have to untar the OVA and use the OVF embedded to spawn the VM (an ESX API is already available to boot from OVF).

This change would have the following benefits:
- OVF contains the configuration of the VM (hardware versions, networking configuration, etc.)
- The VMDK that comes with an OVF is stream-optimized (i.e. compressed)
- OVA can be handled by Glance respecting the one-to-one relationship between image and file (OVF comes with the 2 or more files constraint).

Blueprint information

Status:
Complete
Approver:
John Garbutt
Priority:
Low
Drafter:
Arnaud Legendre
Direction:
Approved
Assignee:
Vui Lam
Definition:
Approved
Series goal:
Accepted for kilo
Implementation:
Implemented
Milestone target:
milestone icon 2015.1.0
Started by
Arnaud Legendre
Completed by
John Garbutt

Related branches

Sprints

Whiteboard

This looks good. However, I have few concerns regarding the life cycle of the instances created from the template. not so much with the glance changes:
.1. when booting an instance with multiple data volumes how will you map the volumes into Cinder?
.2. will you ignore the flavors
.3. how will you handle snapshots

-Yehia

For Icehouse, we will just untar the OVA and boot from the stream-optimized (root) disk: Vui is going to send out a patch soon addressing this.
We will ignore the ovf descriptor (short term)
In case of an OVA containing in ISO, we can mount the ISO to the VM created.
There is still some discussions on the multi disk issue.

--arnaudThis looks good. However, I have few concerns regarding the life cycle of the instances created from the template. not so much with the glance changes:
.1. when booting an instance with multiple data volumes how will you map the volumes into Cinder?
.2. will you ignore the flavors
.3. how will you handle snapshots

-Yehia

For Icehouse, we will just untar the OVA and boot from the stream-optimized (root) disk: Vui is going to send out a patch soon addressing this.
We will ignore the ovf descriptor (short term)
In case of an OVA containing in ISO, we can mount the ISO to the VM created.
There is still some discussions on the multi disk issue.

--arnaud

If you are still working on this, please re-submit via nova-specs. If not, please mark as obsolete, and add a quick comment to describe why. --johnthetubaguy (20th April 2014)

Gerrit topic: https://review.openstack.org/#q,topic:bp/vmware-driver-ova-support,n,z

Addressed by: https://review.openstack.org/86395
    vmware: support spawning of OVA image

Updated blueprint url, so it can be accepted into the juno series. Please upload some code, and choose a milestone before we can approve this --johnthetubaguy (8th May 2014)

Feature Proposal Freeze means this must not land in juno, because it appears like the code is not all currently ready to be reviewed. To be able to merge in kilo, we would first need to merge a kilo spec. More details on the exact process will be available on the ML shortly. --johnthetubaguy 22nd August 2014

Addressed by: https://review.openstack.org/82715
    VMware: Enable spawn from OVA image

Not enough positive reviews for this to make it in kilo-1, moving to kilo-2. --johnthetubaguy 17th December 2014

Sorry, we have now hit the non-priority feature freeze for kilo. Please resubmit your spec for the L release. --johnthetubaguy 5th Feb 2015

@john this blueprint is implemented as https://review.openstack.org/82715 merged

Hmm, this violated the feature freeze, but it happened, so lets move it back into kilo. --johnthetubaguy 10th Feb 2015

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.