#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# Defaults for Aurora startup

###
# Environment variables control the behavior of the Mesos scheduler driver (libmesos).
GLOG_v=0
LIBPROCESS_PORT=8083
#LIBPROCESS_IP=127.0.0.1
###

###
# Flags that control the behavior of the JVM.
#JAVA_OPTS='-Djava.library.path=/usr/local/lib -Dlog4j.configuration="file:///etc/zookeeper/conf/log4j.properties"'
JAVA_OPTS='-Djava.library.path=/usr/local/lib'
###

AURORA_HOME="/var/lib/aurora"

# Name of the cluster. Please change this.
CLUSTER_NAME="example"

# Listening port for the scheduler
HTTP_PORT=8081

# Replicated log quorum size. Set to (floor(number_of_schedulers / 2) + 1)
QUORUM_SIZE=1

# List of zookeeper endpoints
ZK_ENDPOINTS="127.0.0.1:2181"

# Zookeeper path or URL to mesos master
MESOS_MASTER="zk://${ZK_ENDPOINTS}/mesos"

# Zookeeper ServerSet path to register at
ZK_SERVERSET_PATH="/aurora/scheduler"

# Log path in zookeeper
ZK_LOGDB_PATH="/aurora/replicated-log"

# Where to store the replicated log on disk
LOGDB_FILE_PATH="${AURORA_HOME}/scheduler/db"

# Where to store backups on disk
BACKUP_DIR="${AURORA_HOME}/scheduler/backups"

# Path (on the slave nodes) or URL to thermos executor or wrapper script
THERMOS_EXECUTOR_PATH="/usr/share/aurora/bin/thermos_executor.pex"

# A comma seperated list of additional resources to copy into the sandbox.
# Note: if thermos_executor_path is not the thermos_executor.pex file itself,
# this must include it.
THERMOS_EXECUTOR_RESOURCES=""

# Extra arguments to be passed to the thermos executor
THERMOS_EXECUTOR_FLAGS="--announcer-ensemble 127.0.0.1:2181"

# Container types that are allowed to be used by jobs.
ALLOWED_CONTAINER_TYPES="MESOS,DOCKER"

# Any args you want to add to the aurora-scheduler invocation:
EXTRA_SCHEDULER_ARGS=""
