2 # Copyright (C) The Arvados Authors. All rights reserved.
4 # SPDX-License-Identifier: AGPL-3.0
7 ARVADOS_FORMULA_BRANCH=${2}
17 if [ "$rc" -ne 0 ]; then
18 echo "Error occurred ($rc) while running $0 at line $1 : $BASH_COMMAND"
23 # trap '_exit_handler $LINENO' EXIT ERR
25 cd terraform || exit 1
27 NODE_A_EXT=$(terraform output -json public_ip | jq -r .[0])
28 NODE_B_EXT=$(terraform output -json public_ip | jq -r .[1])
29 NODE_A_INT=$(terraform output -json private_ip | jq -r .[0])
30 NODE_B_INT=$(terraform output -json private_ip | jq -r .[1])
31 CLUSTER_NAME=$(terraform output -json cluster_name | jq -r .)
33 echo " + Waiting 10 seconds for nodes to be up"
36 cd $WORKSPACE/tools/salt-install || exit 1
39 echo "== Preparing config files"
40 cp -vr ./config_examples/multi_host/aws ${GIT_COMMIT}/local_config_dir
41 ### FIXME!!!! The multi-host arvados' configuration requires a LOT of env-dependent changes
42 ### which are a bit hard to modify in a script.
43 ### Using a modified version of the single_host/single_hostname file
44 echo "== Copying a custom-made arvados pillar for this test case"
45 cp -v ./config_examples/multi_host/aws/pillars/arvados_development.sls ${GIT_COMMIT}/local_config_dir/pillars/arvados.sls
47 sed "s#cluster_fixme_or_this_wont_work#${CLUSTER_NAME}#g;
48 s#domain_fixme_or_this_wont_work#testing.arvados#g;
49 s#HOSTNAME_EXT=\"hostname_ext_fixme_or_this_wont_work\"#HOSTNAME_EXT=\"${CLUSTER_NAME}.testing.arvados\"#g;
50 s#IP_INT=\"ip_int_fixme_or_this_wont_work\"#IP_INT=\"127.0.0.1\"#g;
51 s#CLUSTER_INT_CIDR=10.0.0.0/16#CLUSTER_INT_CIDR=10.0.0.0/8#g;
52 s#CONTROLLER_INT_IP=.*#CONTROLLER_INT_IP=${NODE_A_INT}#g;
53 s#WEBSOCKET_INT_IP=.*#WEBSOCKET_INT_IP=${NODE_A_INT}#g;
54 s#KEEP_INT_IP=.*#KEEP_INT_IP=${NODE_A_INT}#g;
55 s#KEEPWEB_INT_IP=.*#KEEPWEB_INT_IP=${NODE_A_INT}#g;
56 s#KEEPSTORE0_INT_IP=.*#KEEPSTORE0_INT_IP=${NODE_A_INT}#g;
57 s#KEEPSTORE1_INT_IP=.*#KEEPSTORE1_INT_IP=${NODE_B_INT}#g;
58 s#WORKBENCH1_INT_IP=.*#WORKBENCH1_INT_IP=${NODE_A_INT}#g;
59 s#WORKBENCH2_INT_IP=.*#WORKBENCH2_INT_IP=${NODE_A_INT}#g;
60 s#WEBSHELL_INT_IP=.*#WEBSHELL_INT_IP=${NODE_A_INT}#g;
61 s#DATABASE_INT_IP=.*#DATABASE_INT_IP=${NODE_A_INT}#g;
62 s#SHELL_INT_IP=.*#SHELL_INT_IP=${NODE_B_INT}#g;
63 s#RELEASE=\"production\"#RELEASE=\"${RELEASE}\"#g;
64 s#SSL_MODE=\"lets-encrypt\"#SSL_MODE=\"bring-your-own\"#g;
65 s/# BRANCH=\"main\"/BRANCH=${ARVADOS_FORMULA_BRANCH}/g;
66 s/# VERSION=.*$/VERSION=\"${VERSION}\"/g;
68 local.params.example.multiple_hosts > ${GIT_COMMIT}/debian11-local.params.example.multiple_hosts
70 cp -vr tests provision.sh ${GIT_COMMIT}
71 cp -vr /usr/local/arvados-dev/jenkins/test-arvados-multinode/certs/* ${GIT_COMMIT}/local_config_dir/certs/
73 echo "== Setting up NODE_A with database,api,controller,keepstore,websocket,workbench2,keepbalance,keepproxy,workbench,dispatcher"
75 echo " + Copying files to NODE_A"
76 scp -o "StrictHostKeyChecking=no" -r ${GIT_COMMIT}/* admin@${NODE_A_EXT}:
78 echo " + Installing NODE_A"
79 ssh -o "StrictHostKeyChecking=no" admin@${NODE_A_EXT} sudo ./provision.sh \
81 --roles database,api,controller,keepstore,websocket,workbench2,keepbalance,keepproxy,workbench \
82 --config debian11-local.params.example.multiple_hosts \
85 echo "== Setting up NODE_B with keepstore,keepweb,webshell,shell"
87 echo " + Copying files to NODE_B"
88 scp -o "StrictHostKeyChecking=no" -r ${GIT_COMMIT}/* admin@${NODE_B_EXT}:
90 echo " + Installing NODE_B"
91 ssh -o "StrictHostKeyChecking=no" admin@${NODE_B_EXT} sudo ./provision.sh \
93 --roles keepstore,keepweb,webshell,shell,dispatcher \
94 --config debian11-local.params.example.multiple_hosts \