arvbox creates /var/lib/arvados/run_tests/config.yml
[arvados.git] / tools / arvbox / lib / arvbox / docker / cluster-config.sh
1 #!/bin/bash
2 # Copyright (C) The Arvados Authors. All rights reserved.
3 #
4 # SPDX-License-Identifier: AGPL-3.0
5
6 exec 2>&1
7 set -ex -o pipefail
8
9 if [[ -s /etc/arvados/config.yml ]] ; then
10    exit
11 fi
12
13 . /usr/local/lib/arvbox/common.sh
14
15 uuid_prefix=$(cat /var/lib/arvados/api_uuid_prefix)
16 secret_token=$(cat /var/lib/arvados/api_secret_token)
17 blob_signing_key=$(cat /var/lib/arvados/blob_signing_key)
18 management_token=$(cat /var/lib/arvados/management_token)
19 sso_app_secret=$(cat /var/lib/arvados/sso_app_secret)
20 vm_uuid=$(cat /var/lib/arvados/vm-uuid)
21 database_pw=$(cat /var/lib/arvados/api_database_pw)
22
23 workbench_secret_key_base=$(cat /var/lib/arvados/workbench_secret_token)
24
25 if test -s /var/lib/arvados/api_rails_env ; then
26   database_env=$(cat /var/lib/arvados/api_rails_env)
27 else
28   database_env=development
29 fi
30
31 cat >/var/lib/arvados/cluster_config.yml <<EOF
32 Clusters:
33   ${uuid_prefix}:
34     ManagementToken: $management_token
35     Services:
36       Workbench1:
37         ExternalURL: "https://$localip:${services[workbench]}"
38       Workbench2:
39         ExternalURL: "https://$localip:${services[workbench2-ssl]}"
40       SSO:
41         ExternalURL: "https://$localip:${services[sso]}"
42       Websocket:
43         ExternalURL: "wss://$localip:${services[websockets-ssl]}/websocket"
44       GitSSH:
45         ExternalURL: "ssh://git@$localip:"
46       GitHTTP:
47         ExternalURL: "http://$localip:${services[arv-git-httpd]}/"
48       WebDAV:
49         ExternalURL: "https://$localip:${services[keep-web-ssl]}/"
50       Composer:
51         ExternalURL: "http://$localip:${services[composer]}"
52       Controller:
53         ExternalURL: "https://$localip:${services[controller-ssl]}"
54     NodeProfiles:  # to be deprecated in favor of "Services" section
55       "*":
56         arvados-controller:
57           Listen: ":${services[controller]}" # choose a port
58         arvados-api-server:
59           Listen: ":${services[api]}" # must match Rails server port in your Nginx config
60     PostgreSQL:
61       ConnectionPool: 32 # max concurrent connections per arvados server daemon
62       Connection:
63         # All parameters here are passed to the PG client library in a connection string;
64         # see https://www.postgresql.org/docs/current/static/libpq-connect.html#LIBPQ-PARAMKEYWORDS
65         host: localhost
66         user: arvados
67         password: ${database_pw}
68         dbname: arvados_${database_env}
69         client_encoding: utf8
70     API:
71       RailsSessionSecretToken: $secret_token
72     Collections:
73       BlobSigningKey: $blob_signing_key
74       DefaultReplication: 1
75     Login:
76       ProviderAppSecret: $sso_app_secret
77       ProviderAppID: arvados-server
78     Users:
79       NewUsersAreActive: true
80       AutoAdminFirstUser: true
81       AutoSetupNewUsers: true
82       AutoSetupNewUsersWithVmUUID: $vm_uuid
83       AutoSetupNewUsersWithRepository: true
84     Workbench:
85       SecretKeyBase: $workbench_secret_key_base
86       ArvadosDocsite: http://$localip:${services[doc]}/
87 EOF
88
89 /usr/local/lib/arvbox/yml_override.py /var/lib/arvados/cluster_config.yml
90
91 cp /var/lib/arvados/cluster_config.yml /etc/arvados/config.yml
92
93 mkdir -p /var/lib/arvados/run_tests
94 cat >/var/lib/arvados/run_tests/config.yml <<EOF
95 Clusters:
96   zzzzz:
97     PostgreSQL:
98       Connection:
99         host: localhost
100         user: arvados
101         password: ${database_pw}
102         dbname: arvados_test
103         client_encoding: utf8
104 EOF