#!/bin/bash
## SETUP
## 3 Agencies: 2 HAV, 1 PROD
## 2 Primaries: 1 HAV, 1 PROD
## 2 Coordinators: 1 HAV, 1 PROD
DOCKERIMAGE=arangodb:3.0.7
HAVIP="ip-of-hav-server"
PRODIP="ip-of-prod-server"
ROOTDIR="/home/user/dockertest"
CUSTOMER="test"
echo "INFO: Setting up ArangoDB Cluster: HAV-System ($HAVIP), corresponding PROD System is configured to be $PRODID"
echo "INFO: ensure reachability of the configured ports!"
echo "INFO: this script sets up the corresponding filestructure for the volumes"
echo "INFO: preparing filestructure (if not existent) in $ROOTDIR"
mkdir -p "${ROOTDIR}/arango-cluster-${CUSTOMER}/hav/agency1/data"
mkdir -p "${ROOTDIR}/arango-cluster-${CUSTOMER}/hav/agency1/apps"
mkdir -p "${ROOTDIR}/arango-cluster-${CUSTOMER}/hav/agency2/data"
mkdir -p "${ROOTDIR}/arango-cluster-${CUSTOMER}/hav/agency2/apps"
mkdir -p "${ROOTDIR}/arango-cluster-${CUSTOMER}/hav/db1/data"
mkdir -p "${ROOTDIR}/arango-cluster-${CUSTOMER}/hav/db1/apps"
mkdir -p "${ROOTDIR}/arango-cluster-${CUSTOMER}/hav/coord/data"
mkdir -p "${ROOTDIR}/arango-cluster-${CUSTOMER}/hav/coord/apps"
echo INFO: Starting first HAV agency on port 5000 ...
docker run -d -p 5000:4001 -e ARANGO_NO_AUTH=1 --name=agency1hav \
-v "${ROOTDIR}/arango-cluster-${CUSTOMER}/hav/agency1/data":/var/lib/arangodb3 \
-v "${ROOTDIR}/arango-cluster-${CUSTOMER}/hav/agency1/apps":/var/lib/arangodb3-apps \
${DOCKERIMAGE} \
--agency.size 3 \
--agency.wait-for-sync false \
--agency.supervision true \
--agency.supervision-frequency 5 \
--server.statistics false \
--server.threads 16
sleep 1
echo INFO: Starting second HAV agency on port 5001 ...
docker run -d -p 5001:4001 -e ARANGO_NO_AUTH=1 --name=agency2hav \
-v "${ROOTDIR}/arango-cluster-${CUSTOMER}/hav/agency2/data":/var/lib/arangodb3 \
-v "${ROOTDIR}/arango-cluster-${CUSTOMER}/hav/agency2/apps":/var/lib/arangodb3-apps \
${DOCKERIMAGE} \
--agency.size 3 \
--agency.wait-for-sync false \
--agency.supervision true \
--agency.supervision-frequency 5 \
--server.statistics false \
--server.threads 16
sleep 1
echo INFO: Starting primary HAV db server on port 5100...
docker run -d -p 5100:4001 -e ARANGO_NO_AUTH=1 --name="dbserver1hav" \
-v "${ROOTDIR}/arango-cluster-${CUSTOMER}/hav/db1/data":/var/lib/arangodb3 \
-v "${ROOTDIR}/arango-cluster-${CUSTOMER}/hav/db1/apps":/var/lib/arangodb3-apps \
${DOCKERIMAGE} \
--cluster.agency-endpoint tcp://${HAVIP}:5000 \
--cluster.agency-endpoint tcp://${HAVIP}:5001 \
--cluster.agency-endpoint tcp://${PRODIP}:5002 \
--cluster.my-address tcp://${HAVIP}:5100 \
--cluster.my-local-info HAVDB1 \
--cluster.my-role PRIMARY \
--log.level debug \
--server.statistics false
echo INFO: Starting HAV coordinator on port 8530...
docker run -d -e ARANGO_NO_AUTH=1 -p 8530:4001 --name="coord1hav" \
-v "${ROOTDIR}/arango-cluster-${CUSTOMER}/hav/coord/data":/var/lib/arangodb3 \
-v "${ROOTDIR}/arango-cluster-${CUSTOMER}/hav/coord/apps":/var/lib/arangodb3-apps \
${DOCKERIMAGE} \
--cluster.agency-endpoint tcp://${HAVIP}:5000 \
--cluster.agency-endpoint tcp://${HAVIP}:5001 \
--cluster.agency-endpoint tcp://${PRODIP}:5002 \
--cluster.my-address tcp://${HAVIP}:8530 \
--cluster.my-local-info HAVCOORD1 \
--cluster.my-role COORDINATOR \
--log.level debug \
--server.statistics false