20926: Allows the database version to be configurable from local.params.
[arvados.git] / tools / salt-install / common.sh
1 ##########################################################
2 # Copyright (C) The Arvados Authors. All rights reserved.
3 #
4 # SPDX-License-Identifier: CC-BY-SA-3.0
5
6 # This is generic logic used by provision.sh & installer.sh scripts
7
8 if [[ -s ${CONFIG_FILE} && -s ${CONFIG_FILE}.secrets ]]; then
9   source ${CONFIG_FILE}.secrets
10   source ${CONFIG_FILE}
11 else
12   echo >&2 "You don't seem to have a config file with initial values."
13   echo >&2 "Please create a '${CONFIG_FILE}' & '${CONFIG_FILE}.secrets' files as described in"
14   echo >&2 "  * https://doc.arvados.org/install/salt-single-host.html#single_host, or"
15   echo >&2 "  * https://doc.arvados.org/install/salt-multi-host.html#multi_host_multi_hostnames"
16   exit 1
17 fi
18
19 USE_SSH_JUMPHOST=${USE_SSH_JUMPHOST:-}
20 DISABLED_CONTROLLER=""
21
22 # Comma-separated list of nodes. This is used to dynamically adjust
23 # salt pillars.
24 NODELIST=""
25 for node in "${!NODES[@]}"; do
26   if [ -z "$NODELIST" ]; then
27     NODELIST="$node"
28   else
29     NODELIST="$NODELIST,$node"
30   fi
31 done
32
33 # The mapping of roles to nodes. This is used to dynamically adjust
34 # salt pillars.
35 for node in "${!NODES[@]}"; do
36   roles="${NODES[$node]}"
37
38   # Split the comma-separated roles into an array
39   IFS=',' read -ra roles_array <<< "$roles"
40
41   for role in "${roles_array[@]}"; do
42     if [ -n "${ROLE2NODES[$role]:-}" ]; then
43       ROLE2NODES["$role"]="${ROLE2NODES[$role]},$node"
44     else
45       ROLE2NODES["$role"]=$node
46     fi
47   done
48 done
49
50 # Auto-detects load-balancing mode
51 if [ -z "${ROLE2NODES['balancer']:-}" ]; then
52   ENABLE_BALANCER="no"
53 else
54   ENABLE_BALANCER="yes"
55 fi