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