Zoe configuration¶
Zoe can be configured by files, environment variables or commandline options. Most of the configuration directives listed in this file can be specified by any of the three methods, with some exception outlined below. Use the --help
command-line option to have more details on the format of environment variables and precedence rules.
Command-line options¶
These options can be specified only on the command-line:
--write-config <filename>
: generate a configuration file with all options set to the default values--log-file <filename>
: write the log output to the specified file instead ofstderr
zoe.conf¶
The Zoe config file have a simple format of <option name> = <value>
. Dash characters can be use for comments.
All Zoe processes use a single configuration file, called zoe.conf. It is looked up in the current working directory and in /etc/zoe/
.
Common options:
debug = <true|false>
: enable or disable debug log outputdeployment-name = devel
: name of this Zoe deployment. Can be used to have multiple Zoe deployments using the same back-end (devel and prod, for example)
Workspaces:
workspace-deployment-path
: path appended to theworkspace-base-path
to distinguish this deployment. If left unspecified it is equal to the deployment nameworkspace-base-path = /mnt/zoe-workspaces
: Base directory where user workspaces will be created. This directory should reside on a shared filesystem visible by all hosts where containers will be run.fs-group-id = 5001
: Group ID to use for all Zoe users in workspace files
Metrics:
kairosdb-enable = false
: Enable gathering of usage metrics recorded in KairosDBkairosdb-url = http://localhost:8090
: URL of KairosDB REST APIinfluxdb-enable = false
: Enable gathering of usage metrics recorded in InfluxDBkairosdb-url = http://localhost:8086
: URL of InfluxDB REST API
Service logs (see: Zoe logs and service output):
gelf-address
: Enable Docker GELF log output to a UDP listener (ex. udp://1.2.3.4:7896), works only for the Swarm back-endgelf-listener = 7896
: Enable the internal GELF log listener on this port, set to 0 to disableservice-logs-base-path = /var/lib/zoe/service-logs
: Path where service logs coming from the GELF listener will be stored
PostgresQL database options:
dbname = zoe
: DB namedbuser = zoe
: DB userdbpass = zoe
: DB passworddbhost = localhost
: DB hostnamedbport = 5432
: DB port
API options:
listen-address
: address Zoe will use to listen for incoming connections to the web interfacelisten-port
: port Zoe will use to listen for incoming connections to the web interfacemaster-url = tcp://127.0.0.1:4850
: address of the Zoe Master ZeroMQ APIcookie-secret = changeme
: secret used to encrypt cookieszapp-shop-path = /var/lib/zoe-apps
: path to the directory containing the ZApp Shop files
Master options:
api-listen-uri = tcp://*:4850
: ZeroMQ server connection string, used for the master listening endpointmax-core-limit = 16
: maximum amount of cores a user is able to reservemax-memory-limit = 64
: maximum amount of memory a user is able to reserveadditional-volumes = <none>
: list of additional volumes to mount in every service, for every ZApp (ex. /mnt/data:data,/mnt/data_n:data_n)
Authentication:
auth-file = zoepass.csv
: Path to the CSV file containing user,pass,role lines for text authenticationldap-server-uri = ldap://localhost
: LDAP server to use for user authenticationldap-bind-user = ou=something,dc=any,dc=local
: LDAP user for binding to the serverldap-bind-password = mysecretpassword
: Password for the bind userldap-base-dn = ou=something,dc=any,dc=local
: LDAP base DN for users
Scheduler options:
scheduler-class = <ZoeElasticScheduler>
: Scheduler class to use for scheduling ZApps (default: elastic scheduler)scheduler-policy = <FIFO | SIZE>
: Scheduler policy to use for scheduling ZApps (default: FIFO)placement-policy = <waterfill | random | average>
: how containers should be placed on hosts (default: average)
ZApp shop:
zapp-shop-path = /var/lib/zoe-apps
: Path where ZApp folders are stored
Back-end choice:
backend = <DockerEngine|Kubernetes>
: cluster back-end to use to run ZApps, default is DockerEngine
Kubernetes back-end:
kube-config-file = /opt/zoe/kube.conf
: the configuration file of Kubernetes cluster that zoe works with. Specified ifbackend
isKubernetes
.
DockerEngine back-end:
backend-docker-config-file = docker.conf
: name of the DockerEngine back-end configuration fileoverlay-network-name = zoe
: Name of the Docker network Zoe should use (can be overridden in the ZApp definition)
Proxy options:
By default proxy support is disabled. To configure it refer to the proxy documentation.