15003: Merge branch 'master' into 15003-preprocess-config
[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 flock /var/lib/gopath/gopath.lock go get -t "git.curoverse.com/arvados.git/cmd/arvados-server"
13 install $GOPATH/bin/arvados-server /usr/local/bin
14 (cd /usr/local/bin && ln -sf arvados-server arvados-controller)
15
16 if test "$1" = "--only-deps" ; then
17     exit
18 fi
19
20 uuid_prefix=$(cat /var/lib/arvados/api_uuid_prefix)
21 database_pw=$(cat /var/lib/arvados/api_database_pw)
22
23 if test -s /var/lib/arvados/api_rails_env ; then
24   database_env=$(cat /var/lib/arvados/api_rails_env)
25 else
26   database_env=development
27 fi
28
29 mkdir -p /etc/arvados
30
31 cat >/var/lib/arvados/cluster_config.yml <<EOF
32 Clusters:
33   ${uuid_prefix}:
34     NodeProfiles:
35       "*":
36         arvados-controller:
37           Listen: ":${services[controller]}" # choose a port
38         arvados-api-server:
39           Listen: ":${services[api]}" # must match Rails server port in your Nginx config
40     PostgreSQL:
41       ConnectionPool: 32 # max concurrent connections per arvados server daemon
42       Connection:
43         # All parameters here are passed to the PG client library in a connection string;
44         # see https://www.postgresql.org/docs/current/static/libpq-connect.html#LIBPQ-PARAMKEYWORDS
45         Host: localhost
46         User: arvados
47         Password: ${database_pw}
48         DBName: arvados_${database_env}
49         client_encoding: utf8
50 EOF
51
52 /usr/local/lib/arvbox/yml_override.py /var/lib/arvados/cluster_config.yml
53
54 cp /var/lib/arvados/cluster_config.yml /etc/arvados/config.yml
55
56 exec /usr/local/lib/arvbox/runsu.sh /usr/local/bin/arvados-controller