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