Fix a few typos in the help text.
[arvados.git] / tools / salt-install / provision.sh
index be1506c620e7aec8dbc5e58910c982aecd5b6f14..3c5fb41e0ffc4cf02469e8ffb6d597aca419ea45 100755 (executable)
@@ -52,13 +52,13 @@ usage() {
   echo >&2 "  -h, --help                                  Display this help and exit"
   echo >&2 "  --dump-config <dest_dir>                    Dumps the pillars and states to a directory"
   echo >&2 "                                              This parameter does not perform any installation at all. It's"
-  echo >&2 "                                              intended to give you a parsed sot of configuration files so"
+  echo >&2 "                                              intended to give you a parsed set of configuration files so"
   echo >&2 "                                              you can inspect them or use them in you Saltstack infrastructure."
   echo >&2 "                                              It"
   echo >&2 "                                                - parses the pillar and states templates,"
   echo >&2 "                                                - downloads the helper formulas with their desired versions,"
   echo >&2 "                                                - prepares the 'top.sls' files both for pillars and states"
-  echo >&2 "                                                  for the selected role/s"
+  echo >&2 "                                                  for the selected role(s)"
   echo >&2 "                                                - writes the resulting files into <dest_dir>"
   echo >&2 "  -v, --vagrant                               Run in vagrant and use the /vagrant shared dir"
   echo >&2 "  --development                               Run in dev mode, using snakeoil certs"
@@ -200,7 +200,7 @@ WORKBENCH2_EXT_SSL_PORT=3001
 
 SSL_MODE="self-signed"
 USE_LETSENCRYPT_ROUTE53="no"
-CUSTOM_CERTS_DIR="${SCRIPT_DIR}/certs"
+CUSTOM_CERTS_DIR="${SCRIPT_DIR}/local_config_dir/certs"
 
 ## These are ARVADOS-related parameters
 # For a stable release, change RELEASE "production" and VERSION to the
@@ -262,7 +262,7 @@ if grep -q 'fixme_or_this_wont_work' ${CONFIG_FILE} ; then
 fi
 
 if ! grep -qE '^[[:alnum:]]{5}$' <<<${CLUSTER} ; then
-  echo >&2 "ERROR: <CLUSTER> must be exactly 5 alphanumeric characters long"
+  echo >&2 "ERROR: <CLUSTER> must be exactly 5 lowercase alphanumeric characters long"
   echo >&2 "Fix the cluster name in the 'local.params' file and re-run the provision script"
   exit 1
 fi
@@ -593,11 +593,27 @@ if [ -z "${ROLES}" ]; then
     fi
     grep -q "letsencrypt" ${P_DIR}/top.sls || echo "    - letsencrypt" >> ${P_DIR}/top.sls
 
-    # As the pillar differ whether we use LE or custom certs, we need to do a final edition on them
-    for c in controller websocket workbench workbench2 webshell download collections keepproxy; do
-      sed -i "s/__CERT_REQUIRES__/cmd: create-initial-cert-${c}.${CLUSTER}.${DOMAIN}*/g;
-              s#__CERT_PEM__#/etc/letsencrypt/live/${c}.${CLUSTER}.${DOMAIN}/fullchain.pem#g;
-              s#__CERT_KEY__#/etc/letsencrypt/live/${c}.${CLUSTER}.${DOMAIN}/privkey.pem#g" \
+    hosts=("controller" "websocket" "workbench" "workbench2" "webshell" "keepproxy")
+    if [ ${USE_SINGLE_HOSTNAME} = "no" ]; then
+      hosts+=("download" "collections")
+    else
+      hosts+=("keepweb")
+    fi
+
+    for c in "${hosts[@]}"; do
+      # Are we in a single-host-single-hostname env?
+      if [ "${USE_SINGLE_HOSTNAME}" = "yes" ]; then
+        # Are we in a single-host-single-hostname env?
+        CERT_NAME=${HOSTNAME_EXT}
+      else
+        # We are in a multiple-hostnames env
+        CERT_NAME=${c}.${CLUSTER}.${DOMAIN}
+      fi
+
+      # As the pillar differs whether we use LE or custom certs, we need to do a final edition on them
+      sed -i "s/__CERT_REQUIRES__/cmd: create-initial-cert-${CERT_NAME}*/g;
+              s#__CERT_PEM__#/etc/letsencrypt/live/${CERT_NAME}/fullchain.pem#g;
+              s#__CERT_KEY__#/etc/letsencrypt/live/${CERT_NAME}/privkey.pem#g" \
       ${P_DIR}/nginx_${c}_configuration.sls
     done
   else