20610: Moves code from local.params to its own common.sh file.
authorLucas Di Pentima <lucas.dipentima@curii.com>
Wed, 2 Aug 2023 13:38:07 +0000 (10:38 -0300)
committerLucas Di Pentima <lucas.dipentima@curii.com>
Wed, 2 Aug 2023 13:38:07 +0000 (10:38 -0300)
provision & installer scripts now loads this new file that in turn loads
the params files.

Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima@curii.com>

tools/salt-install/common.sh [new file with mode: 0644]
tools/salt-install/installer.sh
tools/salt-install/local.params.example.multiple_hosts
tools/salt-install/provision.sh

diff --git a/tools/salt-install/common.sh b/tools/salt-install/common.sh
new file mode 100644 (file)
index 0000000..cf1dd7c
--- /dev/null
@@ -0,0 +1,53 @@
+##########################################################
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: CC-BY-SA-3.0
+
+# This is generic logic used by provision.sh & installer.sh scripts
+
+if [[ -s ${CONFIG_FILE} && -s ${CONFIG_FILE}.secrets ]]; then
+  source ${CONFIG_FILE}.secrets
+  source ${CONFIG_FILE}
+else
+  echo >&2 "You don't seem to have a config file with initial values."
+  echo >&2 "Please create a '${CONFIG_FILE}' & '${CONFIG_FILE}.secrets' files as described in"
+  echo >&2 "  * https://doc.arvados.org/install/salt-single-host.html#single_host, or"
+  echo >&2 "  * https://doc.arvados.org/install/salt-multi-host.html#multi_host_multi_hostnames"
+  exit 1
+fi
+
+# Comma-separated list of nodes. This is used to dynamically adjust
+# salt pillars.
+NODELIST=""
+for node in "${!NODES[@]}"; do
+  if [ -z "$NODELIST" ]; then
+    NODELIST="$node"
+  else
+    NODELIST="$NODELIST,$node"
+  fi
+done
+
+# The mapping of roles to nodes. This is used to dinamically adjust
+# salt pillars.
+declare -A ROLES
+for node in "${!NODES[@]}"; do
+  roles="${NODES[$node]}"
+
+  # Split the comma-separated roles into an array
+  IFS=',' read -ra roles_array <<< "$roles"
+
+  for role in "${roles_array[@]}"; do
+    if [ -n "${ROLES[$role]:-}" ]; then
+      ROLES["$role"]="${ROLES[$role]},$node"
+    else
+      ROLES["$role"]=$node
+    fi
+  done
+done
+
+# Auto-detects load-balancing mode
+if [ -z "${ROLES['balancer']:-}" ]; then
+  ENABLE_BALANCER="no"
+else
+  ENABLE_BALANCER="yes"
+fi
index 3c583a0e69864158cc8aa5af01b6125badfe3dae..977f277f7957dbdc13089515ab0d3b0e49e89803 100755 (executable)
@@ -135,8 +135,7 @@ loadconfig() {
     if ! [[ -s ${CONFIG_FILE} && -s ${CONFIG_FILE}.secrets ]]; then
                echo "Must be run from initialized setup dir, maybe you need to 'initialize' first?"
     fi
-    source ${CONFIG_FILE}.secrets
-    source ${CONFIG_FILE}
+    source common.sh
     GITTARGET=arvados-deploy-config-${CLUSTER}
 
        # Set up SSH so that it doesn't forward any environment variable. This is to avoid
index 2b4276e293bec4210d86f496aa4f5878ab89b357..1d69267971e55a8415855a7acda5b1e3752f314c 100644 (file)
@@ -102,42 +102,6 @@ NODES=(
   [shell.${DOMAIN}]=shell
 )
 
-# Comma-separated list of nodes. This is used to dynamically adjust
-# salt pillars.
-NODELIST=""
-for node in "${!NODES[@]}"; do
-  if [ -z "$NODELIST" ]; then
-    NODELIST="$node"
-  else
-    NODELIST="$NODELIST,$node"
-  fi
-done
-
-# The mapping of roles to nodes. This is used to dinamically adjust
-# salt pillars.
-declare -A ROLES
-for node in "${!NODES[@]}"; do
-  roles="${NODES[$node]}"
-
-  # Split the comma-separated roles into an array
-  IFS=',' read -ra roles_array <<< "$roles"
-
-  for role in "${roles_array[@]}"; do
-    if [ -n "${ROLES[$role]:-}" ]; then
-      ROLES["$role"]="${ROLES[$role]},$node"
-    else
-      ROLES["$role"]=$node
-    fi
-  done
-done
-
-# Auto-detects load-balancing mode
-if [ -z "${ROLES['balancer']:-}" ]; then
-  ENABLE_BALANCER="no"
-else
-  ENABLE_BALANCER="yes"
-fi
-
 # Host SSL port where you want to point your browser to access Arvados
 # Defaults to 443 for regular runs, and to 8443 when called in Vagrant.
 # You can point it to another port if desired
@@ -170,7 +134,9 @@ KEEP_INT_IP=${WORKBENCH1_INT_IP}
 KEEPSTORE0_INT_IP=10.1.2.13
 SHELL_INT_IP=10.1.2.17
 
-# Load balancing settings
+# In a load balanced deployment, you can do rolling upgrades by specifying one
+# controller node name at a time, so that it gets removed from the pool and can
+# be upgraded.
 DISABLED_CONTROLLER=""
 
 # Performance tuning parameters
index 0937d3a297e5b27dd6a9c6182118e36670952d51..0146c4b00e45a0b1b91a6b2773eb33a321bab475 100755 (executable)
@@ -244,16 +244,7 @@ declare -A NODES
 declare -A ROLES
 declare NODELIST
 
-if [[ -s ${CONFIG_FILE} && -s ${CONFIG_FILE}.secrets ]]; then
-  source ${CONFIG_FILE}.secrets
-  source ${CONFIG_FILE}
-else
-  echo >&2 "You don't seem to have a config file with initial values."
-  echo >&2 "Please create a '${CONFIG_FILE}' & '${CONFIG_FILE}.secrets' files as described in"
-  echo >&2 "  * https://doc.arvados.org/install/salt-single-host.html#single_host, or"
-  echo >&2 "  * https://doc.arvados.org/install/salt-multi-host.html#multi_host_multi_hostnames"
-  exit 1
-fi
+source common.sh
 
 if [ ! -d ${CONFIG_DIR} ]; then
   echo >&2 "You don't seem to have a config directory with pillars and states."