- Notifications
You must be signed in to change notification settings - Fork1
A Go library for creating OVA (Open Virtual Appliance) files.
License
stephen-fox/ovaify
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A Go library for creating OVA (Open Virtual Appliance) files.
This library was developed to simplify the virtual machine deployment supplychain. It enables the creation of OVA (Open Virtual Appliance) files froman existing OVF (Open Virtualization Format) file and its associated artifacts(such as a virtual machine disk image).
An OVF only provides the configuration for a virtual machine appliance - itdoes not provide the appliance's disk, or other files. A OVA on the other handprovides all of these in the form of a single compressed file. Using OVAs makesdeploying new appliances easier, and more maintainable.
While open source tools likepacker andVirtualBox can create these files, they cannoteasily create OVA files from existing OVFs. This is usually worked around usingVMWare'sovftool. Becauseovftool is closed source, incorporating it into a VM development toolchain canbe a logistical headache. This library allows developers to incorporateovftool's functionality into their toolchain without such headaches.
The library's API is very small. The most notable function is theCreateOvaFile
function. This function creats an OVA using the providedOvaConfig
. Here is an example application that uses this function:
package mainimport ("log""github.com/stephen-fox/ovaify")funcmain() {config:= ovaify.OvaConfig{OutputFilePath:"/my-awesome.ova",OvfFilePath:"/my-vm.ovf",FilePathsToInclude: []string{"/my-vm-disk-image.vmdk", }, }err:=ovaify.CreateOvaFile(config)iferr!=nil {log.Fatal("Failed to create OVA - "+err.Error()) }}
About
A Go library for creating OVA (Open Virtual Appliance) files.