21125: Updates S3 PrefixLength to 3, adding a warning note.
[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           # IMPORTANT: The default value for PrefixLength is 0, and should not
156           # be changed once the cluster is in use. For new installations it's
157           # recommended to set it to 3 for better performance.
158           # See: https://doc.arvados.org/install/configure-s3-object-storage.html
159           PrefixLength: 3
160
161     Users:
162       NewUsersAreActive: true
163       AutoAdminFirstUser: true
164       AutoSetupNewUsers: true
165       AutoSetupNewUsersWithRepository: true
166
167     Services:
168       Controller:
169         ExternalURL: 'https://__DOMAIN__:__CONTROLLER_EXT_SSL_PORT__'
170         InternalURLs:
171           'http://localhost:8003': {}
172       DispatchCloud:
173         InternalURLs:
174           'http://__DISPATCHER_INT_IP__:9006': {}
175       Keepbalance:
176         InternalURLs:
177           'http://__KEEPBALANCE_INT_IP__:9005': {}
178       Keepproxy:
179         ExternalURL: 'https://keep.__DOMAIN__:__KEEP_EXT_SSL_PORT__'
180         InternalURLs:
181           'http://localhost:25107': {}
182       Keepstore:
183         InternalURLs:
184           'http://__KEEPSTORE0_INT_IP__:25107': {}
185       RailsAPI:
186         InternalURLs:
187           'http://localhost:8004': {}
188       WebDAV:
189         ExternalURL: 'https://*.collections.__DOMAIN__:__KEEPWEB_EXT_SSL_PORT__/'
190         InternalURLs:
191           'http://__KEEPWEB_INT_IP__:9002': {}
192       WebDAVDownload:
193         ExternalURL: 'https://download.__DOMAIN__:__KEEPWEB_EXT_SSL_PORT__'
194       WebShell:
195         ExternalURL: 'https://webshell.__DOMAIN__:__KEEPWEB_EXT_SSL_PORT__'
196       Websocket:
197         ExternalURL: 'wss://ws.__DOMAIN__/websocket'
198         InternalURLs:
199           'http://localhost:8005': {}
200       Workbench1:
201         ExternalURL: 'https://workbench.__DOMAIN__:__WORKBENCH1_EXT_SSL_PORT__'
202       Workbench2:
203         ExternalURL: 'https://workbench2.__DOMAIN__:__WORKBENCH2_EXT_SSL_PORT__'
204
205     InstanceTypes:
206       t3small:
207         ProviderType: t3.small
208         VCPUs: 2
209         RAM: 2GiB
210         AddedScratch: 50GB
211         Price: 0.0208
212       c5large:
213         ProviderType: c5.large
214         VCPUs: 2
215         RAM: 4GiB
216         AddedScratch: 50GB
217         Price: 0.085
218       m5large:
219         ProviderType: m5.large
220         VCPUs: 2
221         RAM: 8GiB
222         AddedScratch: 50GB
223         Price: 0.096
224       c5xlarge:
225         ProviderType: c5.xlarge
226         VCPUs: 4
227         RAM: 8GiB
228         AddedScratch: 100GB
229         Price: 0.17
230       m5xlarge:
231         ProviderType: m5.xlarge
232         VCPUs: 4
233         RAM: 16GiB
234         AddedScratch: 100GB
235         Price: 0.192
236       m5xlarge_extradisk:
237         ProviderType: m5.xlarge
238         VCPUs: 4
239         RAM: 16GiB
240         AddedScratch: 400GB
241         Price: 0.193
242       c52xlarge:
243         ProviderType: c5.2xlarge
244         VCPUs: 8
245         RAM: 16GiB
246         AddedScratch: 200GB
247         Price: 0.34
248       m52xlarge:
249         ProviderType: m5.2xlarge
250         VCPUs: 8
251         RAM: 32GiB
252         AddedScratch: 200GB
253         Price: 0.384
254       c54xlarge:
255         ProviderType: c5.4xlarge
256         VCPUs: 16
257         RAM: 32GiB
258         AddedScratch: 400GB
259         Price: 0.68
260       m54xlarge:
261         ProviderType: m5.4xlarge
262         VCPUs: 16
263         RAM: 64GiB
264         AddedScratch: 400GB
265         Price: 0.768