Skip to content

Creating Marketplace Apps

Create Template from VM

If a Template is meant to be consumed by end-users, its Images should not be persistent. A persistent Image can only be used by one VM simultaneously, and the next user will find the changes made by the previous user.

If the users need persistent storage, they can use the "instantiate to persistent" functionality.

Select the VM and the "Save to Template" icon:

The Network options can be set on the template or decided on instantiation.

The template can now be instantiated with required modifications to parameters such as CPU, RAM, storage etc.

Add App to Marketplace

A template needs to be created from the VM which will have the MinIO image. Now you can upload the image to the new store for sharing. For example: * Browse to 'Storage' -> 'Images' * Click the image you want to upload * Click the "Marketplace" button * Enter a name * Select the Marketplace * Add App and VM template parameters (see below) * Click "Create" * The image will upload using ssh. It may take some time.

You should now be able to view the image in Storage -> Apps and download it for use locally.

To allow the app image to be used as a template, select the App and add a VM template. For an example, it could be helpful to simply copy an existing template form the OS that the app was created from. In the MinIO setup where Debian 11 was used, the Debian 11 market place app uses the following templates:

App template:

DEV_PREFIX="vd"
DRIVER="qcow2"
TYPE="OS"
VM template: 
CONTEXT = [ NETWORK  ="YES",SSH_PUBLIC_KEY  ="$USER[SSH_PUBLIC_KEY]"]

CPU = "1"
GRAPHICS = [ LISTEN  ="0.0.0.0",TYPE  ="vnc"]

MEMORY = "768"
OS = [ ARCH  ="x86_64"]

LOGO = "images/logos/debian.png"
LXD_SECURITY_PRIVILEGED = "true"

Use App from Marketplace * Select Storage -> Apps * Select MinIO S3 Server (search if needed) * Choose "Import into Datastore" and select datastore (usually "default")

There should now be a Template VM ready to deploy.