Features/VirtAppliances

= Feature Name = Virtual Appliances

Summary
Extend support for virtual appliances in management tools

Owner

 * Name: Daniel Berrange
 * email: berrange@fedoraproject.org

Current status

 * Targeted release: Fedora 13
 * Last updated: 2009-07-15
 * Percentage of completion: 10%

Detailed Description
Back in Fedora 8 (or was it Fedora 7?) we shipped a command line tool called 'virt-image' which could deploy a new virtual machine from a pre-built appliance image. The appliance consisted of one or more disk images pre-installed with an OS, along with a XML metadata file describing the virtualization pre-requisites of the appliance.

In Fedora 10 another tool called 'virt-convert' was added allowing conversion between various virtual machine metadata formats (initially libvirt XML, virt-image metadata and VMWare vmx configs).

Since the addition of virt-image, the broader virtualization community (open source & commercial) have published a specification called OVF (Open Virtualization Format) for the appliance metadata. This is gaining acceptance and thus it is compelling to support OVF in the Fedora virutalization tools.

In addition it is desirable to expose UI in virt-manager for deploying appliances, avoiding the need to use command line tools

Benefit to Fedora

 * Users can download an OVF appliance from a 3rd party vendor/distributor and deploy it on a Fedora virtualization host
 * Users can convert an existing libvirt guest description into OVF format and thus generate an appliance

XXX. where do the thincrust.org tools fit into this feature ? They can be used to build appliances from kickstarts.

Scope

 * Add support for OVF import in virt-convert tool
 * Add support for OVF export in virt-convert tool
 * Make virt-image automatically accept appliances in any format supported by virt-convert, and convert to libvirt XML on the fly
 * Add UI in virt-manager to allow import of appliances
 * Somehow integrate with nautilus such that clicking on an OVF file automatically launches a UI to quickly run the appliance

How To Test

 * Install a Fedora 12 virtualization host
 * Download a pre-built OVF appliance from somewhere
 * Launch virt-manager
 * Deploy a new VM from the appliance

User Experience
Users will be able to trivially deploy new virtual machines from a pre-built appliance image

Dependencies

 * python-virtinst
 * virt-manager

Contingency Plan
Working on this won't cause any feature regressions, so no contingency required

Documentation

 * To be written...

Release Notes

 * Proclaim how easy it is to deploy appliances on Fedora virtualization hosts

Comments and Discussion

 * See Talk:Features/VirtAppliances