Merge branch '20937-arv-copy-http' refs #20937
[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   #   file: /etc/arvados/config.yml
59   #   user: root
60   ## IMPORTANT!!!!!
61   ## If you're intalling any of the rails apps (api, workbench), the group
62   ## should be set to that of the web server, usually `www-data`
63   #   group: root
64   #   mode: 640
65   dispatcher:
66     pkg:
67       name: arvados-dispatch-cloud
68     service:
69       name: arvados-dispatch-cloud
70
71   ### ARVADOS CLUSTER CONFIG
72   cluster:
73     name: __CLUSTER__
74     domain: __DOMAIN__
75
76     database:
77       # max concurrent connections per arvados server daemon
78       # connection_pool_max: 32
79       name: {{ database_name }}
80       host: {{ database_host }}
81       password: {{ database_password }}
82       user: {{ database_user }}
83       encoding: en_US.utf8
84       client_encoding: UTF8
85
86     tls:
87       # certificate: ''
88       # key: ''
89       # required to test with arvados-snakeoil certs
90       insecure: false
91
92     resources:
93       virtual_machines:
94         shell:
95           name: shell.__DOMAIN__
96           backend: __SHELL_INT_IP__
97           port: 4200
98
99     ### TOKENS
100     tokens:
101       system_root: __SYSTEM_ROOT_TOKEN__
102       management: __MANAGEMENT_TOKEN__
103       anonymous_user: __ANONYMOUS_USER_TOKEN__
104
105     ### KEYS
106     secrets:
107       blob_signing_key: __BLOB_SIGNING_KEY__
108       workbench_secret_key: __WORKBENCH_SECRET_KEY__
109
110     Login:
111       Test:
112         Enable: true
113         Users:
114           __INITIAL_USER__:
115             Email: __INITIAL_USER_EMAIL__
116             Password: __INITIAL_USER_PASSWORD__
117
118     ### API
119     API:
120       MaxConcurrentRequests: {{ max_workers * 2 }}
121       MaxQueuedRequests: {{ max_reqs }}
122
123     ### CONTAINERS
124     {%- set dispatcher_ssh_privkey = "__DISPATCHER_SSH_PRIVKEY__" %}
125     Containers:
126       MaxRetryAttempts: 10
127       CloudVMs:
128         ResourceTags:
129           Name: __CLUSTER__-compute-node
130         BootProbeCommand: 'systemctl is-system-running'
131         ImageID: __COMPUTE_AMI__
132         Driver: ec2
133         DriverParameters:
134           Region: __COMPUTE_AWS_REGION__
135           EBSVolumeType: gp3
136           AdminUsername: __COMPUTE_USER__
137           ### This SG should allow SSH from the dispatcher to the compute nodes
138           SecurityGroupIDs: ['__COMPUTE_SG__']
139           SubnetID: __COMPUTE_SUBNET__
140           IAMInstanceProfile: __CLUSTER__-compute-node-00-iam-role
141       DispatchPrivateKey: {{ dispatcher_ssh_privkey|yaml_dquote }}
142
143     ### VOLUMES
144     ## This should usually match all your `keepstore` instances
145     Volumes:
146       # the volume name will be composed with
147       # <cluster>-nyw5e-<volume>
148       __CLUSTER__-nyw5e-000000000000000:
149         Replication: 2
150         Driver: S3
151         DriverParameters:
152           Bucket: __KEEP_AWS_S3_BUCKET__
153           IAMRole: __KEEP_AWS_IAM_ROLE__
154           Region: __KEEP_AWS_REGION__
155
156     Users:
157       NewUsersAreActive: true
158       AutoAdminFirstUser: true
159       AutoSetupNewUsers: true
160       AutoSetupNewUsersWithRepository: true
161
162     Services:
163       Controller:
164         ExternalURL: 'https://__DOMAIN__:__CONTROLLER_EXT_SSL_PORT__'
165         InternalURLs:
166           'http://localhost:8003': {}
167       DispatchCloud:
168         InternalURLs:
169           'http://__DISPATCHER_INT_IP__:9006': {}
170       Keepbalance:
171         InternalURLs:
172           'http://__KEEPBALANCE_INT_IP__:9005': {}
173       Keepproxy:
174         ExternalURL: 'https://keep.__DOMAIN__:__KEEP_EXT_SSL_PORT__'
175         InternalURLs:
176           'http://localhost:25107': {}
177       Keepstore:
178         InternalURLs:
179           'http://__KEEPSTORE0_INT_IP__:25107': {}
180       RailsAPI:
181         InternalURLs:
182           'http://localhost:8004': {}
183       WebDAV:
184         ExternalURL: 'https://*.collections.__DOMAIN__:__KEEPWEB_EXT_SSL_PORT__/'
185         InternalURLs:
186           'http://__KEEPWEB_INT_IP__:9002': {}
187       WebDAVDownload:
188         ExternalURL: 'https://download.__DOMAIN__:__KEEPWEB_EXT_SSL_PORT__'
189       WebShell:
190         ExternalURL: 'https://webshell.__DOMAIN__:__KEEPWEB_EXT_SSL_PORT__'
191       Websocket:
192         ExternalURL: 'wss://ws.__DOMAIN__/websocket'
193         InternalURLs:
194           'http://localhost:8005': {}
195       Workbench1:
196         ExternalURL: 'https://workbench.__DOMAIN__:__WORKBENCH1_EXT_SSL_PORT__'
197       Workbench2:
198         ExternalURL: 'https://workbench2.__DOMAIN__:__WORKBENCH2_EXT_SSL_PORT__'
199
200     InstanceTypes:
201       t3small:
202         ProviderType: t3.small
203         VCPUs: 2
204         RAM: 2GiB
205         AddedScratch: 50GB
206         Price: 0.0208
207       c5large:
208         ProviderType: c5.large
209         VCPUs: 2
210         RAM: 4GiB
211         AddedScratch: 50GB
212         Price: 0.085
213       m5large:
214         ProviderType: m5.large
215         VCPUs: 2
216         RAM: 8GiB
217         AddedScratch: 50GB
218         Price: 0.096
219       c5xlarge:
220         ProviderType: c5.xlarge
221         VCPUs: 4
222         RAM: 8GiB
223         AddedScratch: 100GB
224         Price: 0.17
225       m5xlarge:
226         ProviderType: m5.xlarge
227         VCPUs: 4
228         RAM: 16GiB
229         AddedScratch: 100GB
230         Price: 0.192
231       m5xlarge_extradisk:
232         ProviderType: m5.xlarge
233         VCPUs: 4
234         RAM: 16GiB
235         AddedScratch: 400GB
236         Price: 0.193
237       c52xlarge:
238         ProviderType: c5.2xlarge
239         VCPUs: 8
240         RAM: 16GiB
241         AddedScratch: 200GB
242         Price: 0.34
243       m52xlarge:
244         ProviderType: m5.2xlarge
245         VCPUs: 8
246         RAM: 32GiB
247         AddedScratch: 200GB
248         Price: 0.384
249       c54xlarge:
250         ProviderType: c5.4xlarge
251         VCPUs: 16
252         RAM: 32GiB
253         AddedScratch: 400GB
254         Price: 0.68
255       m54xlarge:
256         ProviderType: m5.4xlarge
257         VCPUs: 16
258         RAM: 64GiB
259         AddedScratch: 400GB
260         Price: 0.768