20610: Allows disabling backend controllers for rolling updates.
authorLucas Di Pentima <lucas.dipentima@curii.com>
Thu, 27 Jul 2023 19:32:36 +0000 (16:32 -0300)
committerLucas Di Pentima <lucas.dipentima@curii.com>
Thu, 27 Jul 2023 19:32:36 +0000 (16:32 -0300)
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima@curii.com>

tools/salt-install/config_examples/multi_host/aws/pillars/nginx_balancer_configuration.sls
tools/salt-install/local.params.example.multiple_hosts
tools/salt-install/provision.sh

index 92ad3af2e8381de829980eda56789d8331122344..73ae9ca3096aca6d597c0d135f56ed3e564e0594 100644 (file)
@@ -6,6 +6,7 @@
 {%- import_yaml "ssl_key_encrypted.sls" as ssl_key_encrypted_pillar %}
 {%- set domain = "__DOMAIN__" %}
 {%- set balancer_backends = "__CONTROLLER_NODES__".split(",") %}
+{%- set disabled_controller = "__DISABLED_CONTROLLER__" %}
 
 ### NGINX
 nginx:
@@ -20,7 +21,11 @@ nginx:
           '__CLUSTER_INT_CIDR__': 0
         upstream controller_upstream:
         {%- for backend in balancer_backends %}
+          {%- if disabled_controller == "" or not backend.startswith(disabled_controller) %}
           'server {{ backend }}:80': ''
+          {%- else %}
+          'server {{ backend }}:80 down': ''
+          {% endif %}
         {%- endfor %}
 
   ### SNIPPETS
index 4234a965d5ebd8cc113e4e2971bf8a69789a22b7..b70ad747a942ee2a355dbd7b0a6f7cd47406c3dd 100644 (file)
@@ -165,6 +165,7 @@ SHELL_INT_IP=10.1.2.17
 
 # Load balancing settings
 ENABLE_BALANCER="no"
+DISABLED_CONTROLLER=""
 
 # Performance tuning parameters
 #CONTROLLER_NGINX_WORKERS=
index 610134cf395c5074def6b9ee919eb4b9003c5529..09edaa05ffa0d8adc74c3d8140701d0f39fad9a5 100755 (executable)
@@ -466,6 +466,7 @@ for f in $(ls "${SOURCE_PILLARS_DIR}"/*); do
        s#__MONITORING_PASSWORD__#${MONITORING_PASSWORD}#g;
        s#__DISPATCHER_SSH_PRIVKEY__#${DISPATCHER_SSH_PRIVKEY//$'\n'/\\n}#g;
        s#__ENABLE_BALANCER__#${ENABLE_BALANCER}#g;
+       s#__DISABLED_CONTROLLER__#${DISABLED_CONTROLLER}#g;
        s#__BALANCER_NODENAME__#${ROLES['balancer']}#g;
        s#__PROMETHEUS_NODENAME__#${ROLES['monitoring']}#g;
        s#__CONTROLLER_NODES__#${ROLES['controller']}#g;
@@ -559,6 +560,7 @@ if [ -d "${SOURCE_STATES_DIR}" ]; then
          s#__MONITORING_PASSWORD__#${MONITORING_PASSWORD}#g;
          s#__DISPATCHER_SSH_PRIVKEY__#${DISPATCHER_SSH_PRIVKEY//$'\n'/\\n}#g;
          s#__ENABLE_BALANCER__#${ENABLE_BALANCER}#g;
+         s#__DISABLED_CONTROLLER__#${DISABLED_CONTROLLER}#g;
          s#__BALANCER_NODENAME__#${ROLES['balancer']}#g;
          s#__PROMETHEUS_NODENAME__#${ROLES['monitoring']}#g;
          s#__CONTROLLER_NODES__#${ROLES['controller']}#g;