Merge branch '21285-max-gw-tunnels'
[arvados.git] / tools / salt-install / config_examples / multi_host / aws / pillars / arvados.sls
1 ---
2 # Copyright (C) The Arvados Authors. All rights reserved.
3 #
4 # SPDX-License-Identifier: AGPL-3.0
5
6 {%- set _workers = ("__CONTROLLER_MAX_WORKERS__" or grains['num_cpus']*2)|int %}
7 {%- set max_workers = [_workers, 8]|max %}
8 {%- set max_reqs = ("__CONTROLLER_MAX_QUEUED_REQUESTS__" or 128)|int %}
9 {%- set database_host = ("__DATABASE_EXTERNAL_SERVICE_HOST_OR_IP__" or "__DATABASE_INT_IP__") %}
10 {%- set database_name = "__DATABASE_NAME__" %}
11 {%- set database_user = "__DATABASE_USER__" %}
12 {%- set database_password = "__DATABASE_PASSWORD__" %}
13
14 # The variables commented out are the default values that the formula uses.
15 # The uncommented values are REQUIRED values. If you don't set them, running
16 # this formula will fail.
17 arvados:
18   ### GENERAL CONFIG
19   version: '__VERSION__'
20   ## It makes little sense to disable this flag, but you can, if you want :)
21   # use_upstream_repo: true
22
23   ## Repo URL is built with grains values. If desired, it can be completely
24   ## overwritten with the pillar parameter 'repo_url'
25   # repo:
26   #   humanname: Arvados Official Repository
27
28   release: __RELEASE__
29
30   ## IMPORTANT!!!!!
31   ## api, workbench and shell require some gems, so you need to make sure ruby
32   ## and deps are installed in order to install and compile the gems.
33   ## We default to `false` in these two variables as it's expected you already
34   ## manage OS packages with some other tool and you don't want us messing up
35   ## with your setup.
36   ruby:
37     ## We set these to `true` here for testing purposes.
38     ## They both default to `false`.
39     manage_ruby: true
40     manage_gems_deps: true
41     # pkg: ruby
42     # gems_deps:
43     #     - curl
44     #     - g++
45     #     - gcc
46     #     - git
47     #     - libcurl4
48     #     - libcurl4-gnutls-dev
49     #     - libpq-dev
50     #     - libxml2
51     #     - libxml2-dev
52     #     - make
53     #     - python3-dev
54     #     - ruby-dev
55     #     - zlib1g-dev
56
57   config:
58     check_command: /usr/bin/arvados-server config-check -strict=false -config
59   #   file: /etc/arvados/config.yml
60   #   user: root
61   ## IMPORTANT!!!!!
62   ## If you're intalling any of the rails apps (api, workbench), the group
63   ## should be set to that of the web server, usually `www-data`
64   #   group: root
65   #   mode: 640
66   dispatcher:
67     pkg:
68       name: arvados-dispatch-cloud
69     service:
70       name: arvados-dispatch-cloud
71
72   ### ARVADOS CLUSTER CONFIG
73   cluster:
74     name: __CLUSTER__
75     domain: __DOMAIN__
76
77     database:
78       # max concurrent connections per arvados server daemon
79       # connection_pool_max: 32
80       name: {{ database_name }}
81       host: {{ database_host }}
82       password: {{ database_password }}
83       user: {{ database_user }}
84       encoding: en_US.utf8
85       client_encoding: UTF8
86
87     tls:
88       # certificate: ''
89       # key: ''
90       # required to test with arvados-snakeoil certs
91       insecure: false
92
93     resources:
94       virtual_machines:
95         shell:
96           name: shell.__DOMAIN__
97           backend: __SHELL_INT_IP__
98           port: 4200
99
100     ### TOKENS
101     tokens:
102       system_root: __SYSTEM_ROOT_TOKEN__
103       management: __MANAGEMENT_TOKEN__
104       anonymous_user: __ANONYMOUS_USER_TOKEN__
105
106     ### KEYS
107     secrets:
108       blob_signing_key: __BLOB_SIGNING_KEY__
109       workbench_secret_key: "deprecated"
110
111     Login:
112       Test:
113         Enable: true
114         Users:
115           __INITIAL_USER__:
116             Email: __INITIAL_USER_EMAIL__
117             Password: __INITIAL_USER_PASSWORD__
118
119     ### API
120     API:
121       MaxConcurrentRailsRequests: {{ max_workers * 2 }}
122       MaxConcurrentRequests: {{ max_reqs }}
123       MaxQueuedRequests: {{ max_reqs }}
124
125     ### CONTAINERS
126     {%- set dispatcher_ssh_privkey = "__DISPATCHER_SSH_PRIVKEY__" %}
127     Containers:
128       MaxRetryAttempts: 10
129       CloudVMs:
130         ResourceTags:
131           Name: __CLUSTER__-compute-node
132         BootProbeCommand: 'systemctl is-system-running'
133         ImageID: __COMPUTE_AMI__
134         Driver: ec2
135         DriverParameters:
136           Region: __COMPUTE_AWS_REGION__
137           EBSVolumeType: gp3
138           AdminUsername: __COMPUTE_USER__
139           ### This SG should allow SSH from the dispatcher to the compute nodes
140           SecurityGroupIDs: ['__COMPUTE_SG__']
141           SubnetID: __COMPUTE_SUBNET__
142           IAMInstanceProfile: __CLUSTER__-compute-node-00-iam-role
143       DispatchPrivateKey: {{ dispatcher_ssh_privkey|yaml_dquote }}
144
145     ### VOLUMES
146     ## This should usually match all your `keepstore` instances
147     Volumes:
148       # the volume name will be composed with
149       # <cluster>-nyw5e-<volume>
150       __CLUSTER__-nyw5e-000000000000000:
151         Replication: 2
152         Driver: S3
153         DriverParameters:
154           Bucket: __KEEP_AWS_S3_BUCKET__
155           IAMRole: __KEEP_AWS_IAM_ROLE__
156           Region: __KEEP_AWS_REGION__
157           # IMPORTANT: The default value for PrefixLength is 0, and should not
158           # be changed once the volume is in use. For new installations it's
159           # recommended to set it to 3 for better performance.
160           # See: https://doc.arvados.org/install/configure-s3-object-storage.html
161           PrefixLength: 3
162
163     Users:
164       NewUsersAreActive: true
165       AutoAdminFirstUser: true
166       AutoSetupNewUsers: true
167       AutoSetupNewUsersWithRepository: true
168
169     Services:
170       Controller:
171         ExternalURL: 'https://__DOMAIN__:__CONTROLLER_EXT_SSL_PORT__'
172         InternalURLs:
173           'http://localhost:8003': {}
174       DispatchCloud:
175         InternalURLs:
176           'http://__DISPATCHER_INT_IP__:9006': {}
177       Keepbalance:
178         InternalURLs:
179           'http://__KEEPBALANCE_INT_IP__:9005': {}
180       Keepproxy:
181         ExternalURL: 'https://keep.__DOMAIN__:__KEEP_EXT_SSL_PORT__'
182         InternalURLs:
183           'http://localhost:25107': {}
184       Keepstore:
185         InternalURLs:
186           'http://__KEEPSTORE0_INT_IP__:25107': {}
187       RailsAPI:
188         InternalURLs:
189           'http://localhost:8004': {}
190       WebDAV:
191         ExternalURL: 'https://*.collections.__DOMAIN__:__KEEPWEB_EXT_SSL_PORT__/'
192         InternalURLs:
193           'http://__KEEPWEB_INT_IP__:9002': {}
194       WebDAVDownload:
195         ExternalURL: 'https://download.__DOMAIN__:__KEEPWEB_EXT_SSL_PORT__'
196       WebShell:
197         ExternalURL: 'https://webshell.__DOMAIN__:__KEEPWEB_EXT_SSL_PORT__'
198       Websocket:
199         ExternalURL: 'wss://ws.__DOMAIN__/websocket'
200         InternalURLs:
201           'http://localhost:8005': {}
202       Workbench1:
203         ExternalURL: 'https://workbench.__DOMAIN__:__WORKBENCH1_EXT_SSL_PORT__'
204       Workbench2:
205         ExternalURL: 'https://workbench2.__DOMAIN__:__WORKBENCH2_EXT_SSL_PORT__'
206
207     InstanceTypes:
208       t3small:
209         ProviderType: t3.small
210         VCPUs: 2
211         RAM: 2GiB
212         AddedScratch: 50GB
213         Price: 0.0208
214       c5large:
215         ProviderType: c5.large
216         VCPUs: 2
217         RAM: 4GiB
218         AddedScratch: 50GB
219         Price: 0.085
220       m5large:
221         ProviderType: m5.large
222         VCPUs: 2
223         RAM: 8GiB
224         AddedScratch: 50GB
225         Price: 0.096
226       c5xlarge:
227         ProviderType: c5.xlarge
228         VCPUs: 4
229         RAM: 8GiB
230         AddedScratch: 100GB
231         Price: 0.17
232       m5xlarge:
233         ProviderType: m5.xlarge
234         VCPUs: 4
235         RAM: 16GiB
236         AddedScratch: 100GB
237         Price: 0.192
238       m5xlarge_extradisk:
239         ProviderType: m5.xlarge
240         VCPUs: 4
241         RAM: 16GiB
242         AddedScratch: 400GB
243         Price: 0.193
244       c52xlarge:
245         ProviderType: c5.2xlarge
246         VCPUs: 8
247         RAM: 16GiB
248         AddedScratch: 200GB
249         Price: 0.34
250       m52xlarge:
251         ProviderType: m5.2xlarge
252         VCPUs: 8
253         RAM: 32GiB
254         AddedScratch: 200GB
255         Price: 0.384
256       c54xlarge:
257         ProviderType: c5.4xlarge
258         VCPUs: 16
259         RAM: 32GiB
260         AddedScratch: 400GB
261         Price: 0.68
262       m54xlarge:
263         ProviderType: m5.4xlarge
264         VCPUs: 16
265         RAM: 64GiB
266         AddedScratch: 400GB
267         Price: 0.768