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 by selecting an environment from your Environments page of the Maverics UI. You can find the Docker container image link in the Orchestrator section of the environment page.
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 amaverics.env
file for the orchestrator process--name
(optional) provides an explicit name for the container instancemaverics_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