Install in Docker

Container Runtime Requirements

The Maverics Orchestrator container image will run in any container runtime that supports the Open Container Initiative (OCI) specification and the amd64/X86_64 architecture. This guide shows installation, configuration and running instructions using Docker, but these can be adapted to run the Orchestrator in any compatible runtime.

Download the container

The current release of the Orchestrator container image is downloadable from the Orchestrators page of the Maverics UI.

The image is distributed as a tar.gz archive which can be imported into your local system or registry. It is not currently available from a public registry.

Loading the container

Once you have downloaded the Maverics image archive, load it into your local image registry using the docker load command:

$ docker load --input maverics.tar.gz 

Configuring the container

Local configuration file

The Orchestrator container can load its configuration and service extensions from a directory on the local filesystem mounted in the container.

Create a maverics.yaml file in a convenient directory on the Docker host and add your desired Orchestrator configuration. You will bind mount this directory as /etc/maverics inside the container when it runs.

Environment variables for containers

The Orchestrator can read environment variables which override default behaviors and file paths.

The simplest way to set environment variables for containers in Docker is to create an environment file. For example, a maverics.env file might specify the following:

MAVERICS_CONFIG=/opt/orchestrator/custom.yaml
MAVERICS_TLS_SERVER_CERT_FILE=/etc/maverics/certs/example.crt 
MAVERICS_TLS_SERVER_KEY_FILE=/etc/maverics/certs/example.key

This environment format can be used in other container runtimes that support an --env-file option.

Remote configuration file

See the Remote configuration & auto-reload section on how to configure the Orchestrator for remote shared storage. An environment file for remote configuration might look like the following:

MAVERICS_HTTP_ADDRESS=:443
MAVERICS_RELOAD_CONFIG=true
MAVERICS_TLS_SERVER_CERT_FILE=/etc/maverics/certs/example.crt 
MAVERICS_TLS_SERVER_KEY_FILE=/etc/maverics/certs/example.key
MAVERICS_GITHUB_CONFIG={ "token": "github_xxxxxxxxxxxxxxxxxxxxxxx", "owner": "jdoe", "repo": "maverics-config", "configurationFilePath": "folder1/folder2" }

Multi-line JSON objects should be concatenated into a single line, like the MAVERICS_GITHUB_CONFIG variable above.

Starting the container

To start the Orchestrator container, use the docker run command. For example:

docker run --publish 443:8443 \
  --volume /opt/maverics:/etc/maverics \
  --env-file /opt/maverics/maverics.env \
  --name orchestrator maverics_base:0.18.10

The example command above illustrates the following options:

  • --publish (or -p) maps port 8443 on the container to port 443 on the host
  • --volume (or -v) bind mounts the hosts /opt/maverics/ directory to /etc/maverics in the container
  • --env-file sources environment variables from a maverics.env file for the orchestrator process
  • --name (optional) provides an explicit name for the container instance
  • maverics_base:0.18.10 specifies the image name and release number of the container

Paths, port addresses, names, versions, and other settings will vary depending on your use case. Information on all options can be found in the docker run reference documentation.

Update

To update the orchestrator, download the latest version from the Maverics UI and load it into Docker (your local registry). Terminate the running container and start a new container using the same command with the new version number.

Uninstall

Use the docker rm command to remove the container instance, and the docker rmi command to remove any unwanted container images from the local registry. For example:

docker rm orchestrator
docker rmi maverics_base:0.18.10