20926: Allows the database version to be configurable from local.params.
authorLucas Di Pentima <lucas.dipentima@curii.com>
Tue, 12 Sep 2023 22:35:36 +0000 (19:35 -0300)
committerLucas Di Pentima <lucas.dipentima@curii.com>
Tue, 12 Sep 2023 22:35:36 +0000 (19:35 -0300)
Also, installs postgresql-client on the controller nodes from the salt
formula, so that its version matches the configured value.

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

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

index 70edfeb8d0675382b00126eb863669f20d990672..1f5d8df83d71e116b71aca8b23f4b250f737c6dc 100644 (file)
@@ -7,13 +7,14 @@
 {%- set controller_nodes = "__CONTROLLER_NODES__".split(",") %}
 {%- set websocket_ip = "__WEBSOCKET_INT_IP__" %}
 {%- set keepbalance_ip = "__KEEPBALANCE_INT_IP__" %}
+{%- set pg_version = "__DATABASE_POSTGRESQL_VERSION__" %}
 
 ### POSTGRESQL
 postgres:
   pkgs_extra:
     - postgresql-contrib
   use_upstream_repo: true
-  version: '12'
+  version: {{ pg_version }}
   postgresconf: |-
     listen_addresses = '*'  # listen on all interfaces
   acls:
index 0cfae3e28452cedaccde65bcbfa11f3fc496d214..e84b8d6c13822481aa2a1abba9a5303b0839fe8f 100644 (file)
@@ -143,6 +143,7 @@ SHELL_INT_IP=10.1.2.17
 
 DATABASE_NAME="${CLUSTER}_arvados"
 DATABASE_USER="${CLUSTER}_arvados"
+DATABASE_POSTGRESQL_VERSION=12
 # Set this if using an external PostgreSQL service.
 #DATABASE_EXTERNAL_SERVICE_HOST_OR_IP=
 
index 54da585d387dee21ca6d5ccce5ac1e6961513bda..d5273c0c1183f33bb8e0a36acbec7365623a2e04 100644 (file)
@@ -78,6 +78,7 @@ SHELL_INT_IP=""
 
 DATABASE_NAME="${CLUSTER}_arvados"
 DATABASE_USER="${CLUSTER}_arvados"
+DATABASE_POSTGRESQL_VERSION=12
 # Set this if using an external PostgreSQL service.
 #DATABASE_EXTERNAL_SERVICE_HOST_OR_IP=
 
index d42b4cb54cb80b690cbf6c5858e3c9f4e2835520..5d4dc12a12681bbe84f51a25a3313319b12b2723 100644 (file)
@@ -88,6 +88,7 @@ SHELL_INT_IP=""
 
 DATABASE_NAME="${CLUSTER}_arvados"
 DATABASE_USER="${CLUSTER}_arvados"
+DATABASE_POSTGRESQL_VERSION=12
 # Set this if using an external PostgreSQL service.
 #DATABASE_EXTERNAL_SERVICE_HOST_OR_IP=
 
index b44fc8b19ba27834acdca944bf78790d6a2af9d2..be56a9103c8f3dbf34419232d0b48c97b57b61a2 100755 (executable)
@@ -180,6 +180,7 @@ apply_var_substitutions() {
        s#__DATABASE_PASSWORD__#${DATABASE_PASSWORD}#g;
        s#__DATABASE_INT_IP__#${DATABASE_INT_IP:-}#g;
        s#__DATABASE_EXTERNAL_SERVICE_HOST_OR_IP__#${DATABASE_EXTERNAL_SERVICE_HOST_OR_IP:-}#g;
+       s#__DATABASE_POSTGRESQL_VERSION__#${DATABASE_POSTGRESQL_VERSION}#g;
        s#__KEEPWEB_EXT_SSL_PORT__#${KEEPWEB_EXT_SSL_PORT}#g;
        s#__KEEP_EXT_SSL_PORT__#${KEEP_EXT_SSL_PORT}#g;
        s#__MANAGEMENT_TOKEN__#${MANAGEMENT_TOKEN}#g;
@@ -819,6 +820,7 @@ else
           echo "    - nginx.passenger" >> ${STATES_TOP}
         fi
         echo "    - extra.passenger_rvm" >> ${STATES_TOP}
+        grep -q "\- postgres.client$" ${STATES_TOP} || echo "    - postgres.client" >> ${STATES_TOP}
 
         ### If we don't install and run LE before arvados-api-server, it fails and breaks everything
         ### after it. So we add this here as we are, after all, sharing the host for api and controller