HTTP Marketplace

Overview

This Marketplace uses a conventional HTTP server to expose the images (Marketplace Appliances) uploaded to the Marketplace. The image will be placed in a specific directory (available on or at least accessible from the Front-end), that must be also served by a dedicated HTTP service.

This is a fully supported Marketplace with all the implemented features.

Requirements

The web server should be deployed either in the Front-end or on a node reachable by the Front-end. A directory that will be used to store the uploaded images (Marketplace Apps) should be configured to have the necessary space available and the web server must be configured to grant HTTP access to that directory.

It is recommended to use either Apache or NGINX, as they are known to work properly with the potentially large size of the Marketplace App files. However, other web servers may work, as long as they can handle the load.

The web server should be deployed by the administrator before registering the Marketplace.

Summary

Configuration

These are the configuration attributes of a Marketplace template of the HTTP kind:

AttributeRequiredDescription
NAMEYESMarketplace name that is going to be shown in OpenNebula.
MARKET_MADYESMust be http.
PUBLIC_DIRYESAbsolute directory path to place images (the HTTP server document root) in the Front-end or in the Hosts pointed at by the BRIDGE_LIST directive.
BASE_URLYESBase URL of the Marketplace HTTP endpoint.
BRIDGE_LISTNOSpace separated list of servers to access the public directory. If not defined, the public directory will be local to the Front-end.

When an image is uploaded to this market, it is copied to BRIDGE_LIST:PUBLIC_DIR (if BRIDGE_LIST is not set, then it is copied to the current Front-end where OpenNebula is running). After that, it is available in BASE_URL. OpenNebula does not set up the webserver nor the secure access to it.

HTTP marketplace overview

For example, the following examples illustrate the creation of a Marketplace:

$ cat market.conf
NAME        = PrivateMarket
MARKET_MAD  = http
BASE_URL    = "http://frontend.opennebula.org/"
PUBLIC_DIR  = "/var/local/market-http"
BRIDGE_LIST = "web-server.opennebula.org"

which is created by passing the following command:

$ onemarket create market.conf
ID: 100

Tuning & Extending

System administrators and integrators are encouraged to modify these drivers in order to integrate them with their datacenter. Please refer to the Market Driver Development guide to learn about the driver details.