Introduction

Purpose

This is a plan for a refactor of the VMware resource deployment functionality to allow for the deployment of OVA containing vApps. Some important features to allow for are:

  1. multiple disks including multiple ISO images and
  2. multiple network interfaces and
  3. mutiple deployment options (configurations) and
  4. ovf properties (vApp properties)

References

Document History

VersionAuthor/ReviewerDate
0.1Daan Hoogland

 

1.0Nicolas Vazquez

Feature Specifications

This feature enables CloudStack to mimic the end-user experience of importing an OVA with vApps directly into vCenter, such that the end result is a virtual appliance deployed with the same configuration data in the VMX file as would be there if the appliance had been deployed directly through vCenter. To do this, CloudStack extracts information of OVA templates from its OVF descriptor file, which format is defined as: https://www.dmtf.org/sites/default/files/standards/documents/DSP0243_2.1.1.pdf

The relevant information that CloudStack needs to extract from OVF files and prompt to end-users are:

Use cases

The objective of this feature is allowing users to deploy virtual appliances on VMware such as its been made directly though vCenter. Vendors of virtual appliances for VMware often produce ‘templates’of their appliances in an OVA format. An OVA file contain disc images, as well as the configuration data of the virtual appliance and also at times a EULA which must be acknowledged.

Glossary

The new behaviour for VMware virtual machine deployments and lifecycle is also referenced as ‘deploy-as-is’ during the rest of the document.

Architecture and Design description

The deploy-as-is workflow for VM deployment is described below:

DB changes

API changes

Templates registration

Important notes:

The 'registerTemplate' API is refactored:

After the template is downloaded and extracted in secondary storage, the OVF descriptor file is parsed and the relevant information described below is extracted and persisted in a new table 'template_deploy_as_is_details':

Templates listing

Important notes:

VM deployment

The ‘deployVirtualMachine’ API is refactored:

UI changes

All the UI changes are included on Primate

The VM deployment wizard is extended: