blob: 6a62673e14e311825900d333fe2ea1a921067acc [file] [view]
# Client Cluster Configuration
A cluster configuration file is used by the Aurora client to describe the Aurora clusters with
which it can communicate. Ultimately this allows client users to reference clusters with short names
like us-east and eu.
A cluster configuration is formatted as JSON. The simplest cluster configuration is one that
communicates with a single (non-leader-elected) scheduler. For example:
[{
"name": "example",
"scheduler_uri": "http://localhost:55555",
}]
A configuration for a leader-elected scheduler would contain something like:
[{
"name": "example",
"zk": "192.168.33.7",
"scheduler_zk_path": "/aurora/scheduler"
}]
The following properties may be set:
**Property** | **Type** | **Description**
:------------------------| :------- | :--------------
**name** | String | Cluster name (Required)
**slave_root** | String | Path to Mesos agent work dir (Required)
**slave_run_directory** | String | Name of Mesos agent run dir (Required)
**zk** | String | Hostname of ZooKeeper instance used to resolve Aurora schedulers.
**zk_port** | Integer | Port of ZooKeeper instance used to locate Aurora schedulers (Default: 2181)
**scheduler_zk_path** | String | ZooKeeper path under which scheduler instances are registered.
**scheduler_uri** | String | URI of Aurora scheduler instance.
**proxy_url** | String | Used by the client to format URLs for display.
**auth_mechanism** | String | The authentication mechanism to use when communicating with the scheduler. (Default: UNAUTHENTICATED)
**docker_registry** | String | Used by the client to resolve docker tags.
## Details
### `name`
The name of the Aurora cluster represented by this entry. This name will be the `cluster` portion of
any job keys identifying jobs running within the cluster.
### `slave_root`
The path on the Mesos agents where executing tasks can be found. It is used in combination with the
`slave_run_directory` property by `aurora task run` and `aurora task ssh` to change into the sandbox
directory after connecting to the host. This value should match the value passed to `mesos-slave`
as `-work_dir`.
### `slave_run_directory`
The name of the directory where the task run can be found. This is used in combination with the
`slave_root` property by `aurora task run` and `aurora task ssh` to change into the sandbox
directory after connecting to the host. This should almost always be set to `latest`.
### `zk`
The hostname of the ZooKeeper instance used to resolve the Aurora scheduler. Aurora uses ZooKeeper
to elect a leader. The client will connect to this ZooKeeper instance to determine the current
leader. This host should match the host passed to the scheduler as `-zk_endpoints`.
### `zk_port`
The port on which the ZooKeeper instance is running. If not set this will default to the standard
ZooKeeper port of 2181. This port should match the port in the host passed to the scheduler as
`-zk_endpoints`.
### `scheduler_zk_path`
The path on the ZooKeeper instance under which the Aurora serverset is registered. This value should
match the value passed to the scheduler as `-serverset_path`.
### `scheduler_uri`
The URI of the scheduler. This would be used in place of the ZooKeeper related configuration above
in circumstances where direct communication with a single scheduler is needed (e.g. testing
environments). It is strongly advised to **never** use this property for production deploys.
### `proxy_url`
Instead of using the hostname of the leading scheduler as the base url, if `proxy_url` is set, its
value will be used instead. In that scenario the value for `proxy_url` would be, for example, the
URL of your VIP in a loadbalancer or a roundrobin DNS name.
### `auth_mechanism`
The identifier of an authentication mechanism that the client should use when communicating with the
scheduler. Support for values other than `UNAUTHENTICATED` requires a matching scheduler-side
[security configuration](../operations/security.md).
### `docker_registry`
The URI of the Docker Registry that will be used by the Aurora client to resolve docker tags to concrete
image ids, when using the docker binding helper, like `{{docker.image[name][tag]}}`.