Merge branch '22349-arvados-railsapi-service'
[arvados-formula.git] / pillar.example
1 # -*- coding: utf-8 -*-
2 # vim: ft=yaml
3 ---
4 # Copyright (C) The Arvados Authors. All rights reserved.
5 #
6 # SPDX-License-Identifier: Apache-2.0
7
8 # The variables commented out are the default values that the formula uses.
9 # The uncommented values are REQUIRED values. If you don't set them, running
10 # this formula will fail.
11 arvados:
12   ### GENERAL CONFIG
13   # version: '2.1.0'
14   # release: production
15   ### It makes little sense to disable this flag, but you can, if you want :)
16   # use_upstream_repo: true
17
18   ### Repo URL is built with grains values. If desired, it can be completely
19   ### overwritten with the pillar parameter 'repo_url'
20   # repo:
21   #   humanname: Arvados Official Repository
22
23   # IMPORTANT!!!!!
24   # api, workbench and shell require some gems, so you need to make sure ruby
25   # and deps are installed in order to install and compile the gems.
26   # We default to `false` in these two variables as it's expected you already
27   # manage OS packages with some other tool and you don't want us messing up
28   # with your setup.
29   ruby:
30     # We set these to `true` here for testing purposes.
31     # They both default to `false`.
32     manage_ruby: true
33     # pkg: ruby        # Can specify a backport name like ruby3.2
34     manage_gems_deps: true
35     # gems_deps:
36     #     - curl
37     #     - g++
38     #     - gcc
39     #     - git
40     #     - libcurl4
41     #     - libcurl4-gnutls-dev
42     #     - libpq-dev
43     #     - libxml2
44     #     - libxml2-dev
45     #     - make
46     #     - python3-dev
47     #     - ruby-dev
48     #     - zlib1g-dev
49
50   # config:
51   #   file: /etc/arvados/config.yml
52   #   user: root
53   ### IMPORTANT!!!!!
54   ### If you're installing any of the rails apps (api, workbench), the group
55   ### should be set to that of the web server, usually `www-data`
56   #   group: root
57   #   mode: 640
58   #
59   ### This is the command run to verify the configuration is correct before
60   ### deploying it. By default it uses `-strict=true`, so it will error on
61   ### warnings (ie, unknown/deprecated parameters)
62   #
63   #   check_command: /usr/bin/arvados-server config-check -config
64   #
65   ### To fail only on errors, you can use
66   #
67   #   check_command: /usr/bin/arvados-server config-check -strict=false -config
68   #
69   ### and to disable configuration checking (not recommended), just set it to
70   ### any command that returns true
71   #
72   #   check_command: /bin/true
73
74   ### ARVADOS CLUSTER CONFIG
75   cluster:
76     name: fixme
77     domain: example.net
78
79     database:
80       # max concurrent connections per arvados server daemon
81       # connection_pool_max: 32
82       name: arvados
83       host: 127.0.0.1
84       password: changeme_arvados
85       user: arvados
86       # You can pass extra database connections parameters here,
87       # which will be rendered as yaml.
88       # extra_conn_params:
89       #   sslmode: prefer
90       #   verify-ca: false
91       #   client_encoding: UTF8
92
93     tls:
94       # certificate: ''
95       # key: ''
96       # required to test with snakeoil certs
97       insecure: true
98
99     ### TOKENS
100     tokens:
101       # Secrets and tokens have to be +32 alphanumeric,
102       # it does not accept underscores or special characters.
103       # See https://dev.arvados.org/issues/17150
104       system_root: systemroottokenmushaveatleast32characters
105       management: managementtokenmushaveatleast32characters
106       # The AnonymousUserToken can be set here or in the
107       # Users dictionary below. The latter will be used if set.
108       anonymous_user: anonymoususertokenmushaveatleast32characters
109
110     ### KEYS
111     secrets:
112       blob_signing_key: blobsigningkeymushaveatleast32characters
113       workbench_secret_key: workbenchsecretkeymushaveatleast32characters
114       dispatcher_access_key: changemedispatcheraccesskey
115       dispatcher_secret_key: changemedispatchersecretkey
116       keep_access_key: changemekeepaccesskey
117       keep_secret_key: changemekeepsecretkey
118
119     ### ARVADOS RESOURCES
120     # This dict allows you to create various resources in the Arvados
121     # database so they're ready to use.
122     # Check the `arvados.api.resources.* states to see which can be
123     # currently managed
124
125     ### SHELL / WEBSHELL REGISTRATION
126     # In order to use shell nodes via webshell, Arvados needs to know of
127     # their existence and they need to be configured as upstreams in nginx
128     # (see https://doc.arvados.org/v2.0/install/install-webshell.html)
129     # This could be achieved in various ways (ie, through salt mine if you
130     # want them to be dinamically created), but that's outside the scope of
131     # this formula. The following dict is just an example that will be used
132     # by the `arvados.api.resources.virtual_machines` state to add entries
133     # in Arvados' database of the cluster's resources'
134     # It's additionally used in the
135     #   `test/salt/pillar/examples/nginx_webshell_configuration.sls`
136     # pillar to add the corresponding `location` entries in nginx's webshell
137     # vhosts & upstreams
138     resources:
139       virtual_machines:
140         shell1:
141           name: webshell1      # if not set, will match the one of the dict key above
142           backend: 1.2.3.4     # upstream host ip/name that has the shell role
143           port: 4200           # port where shellinabox is listening
144         # when no other parameter is set:
145         # `name` will match the name of the key
146         # backend` will match `name`
147         # `port` will default to shellinabox's 4200
148         webshell2: {}
149
150     ### VOLUMES
151     ## This should usually match all your `keepstore` instances
152     Volumes:
153       # the volume name will be composed with
154       # <cluster>-nyw5e-<volume>
155       fixme-nyw5e-000000000000000:
156         AccessViaHosts:
157           http://keep0.fixme.example.net:25107:
158             ReadOnly: false
159         Replication: 2
160         Driver: Directory
161         DriverParameters:
162           Root: /tmp
163
164     Users:
165       NewUsersAreActive: true
166       AutoAdminFirstUser: true
167       AutoSetupNewUsers: true
168       AutoSetupNewUsersWithRepository: true
169
170     Services:
171       Controller:
172         ExternalURL: https://fixme.example.net
173         InternalURLs:
174           http://localhost:8003: {}
175       DispatchCloud:
176         InternalURLs:
177           http://fixme.example.net:9006: {}
178       Keepbalance:
179         InternalURLs:
180           http://fixme.example.net:9005: {}
181       Keepproxy:
182         ExternalURL: https://keep.fixme.example.net
183         InternalURLs:
184           http://localhost:25100: {}
185       Keepstore:
186         InternalURLs:
187           http://keep0.fixme.example.net:25107: {}
188       RailsAPI:
189         InternalURLs:
190           http://localhost:8004: {}
191       WebDAV:
192         ExternalURL: https://collections.fixme.example.net
193         InternalURLs:
194           http://localhost:9002: {}
195       WebDAVDownload:
196         ExternalURL: https://download.fixme.example.net
197       WebShell:
198         ExternalURL: https://webshell.fixme.example.net
199       Websocket:
200         ExternalURL: wss://ws.fixme.example.net/websocket
201         InternalURLs:
202           http://localhost:8005: {}
203       Workbench1:
204         ExternalURL: https://workbench.fixme.example.net
205       Workbench2:
206         ExternalURL: https://workbench2.fixme.example.net
207
208 #  ### THESE ARE THE PACKAGES AND DAEMONS BASIC CONFIGS
209 #  #### API
210 #   api:
211 #     pkg:
212 #       name:
213 #         - arvados-api-server
214 #         - arvados-dispatch-cloud
215 #     gem:
216 #       name:
217 #         - arvados-cli
218 #     service:
219 #       name:
220 #         - nginx
221 #       port: 8004
222 #  #### CONTROLLER
223 #   controller:
224 #     pkg:
225 #       name: arvados-controller
226 #     gem:
227 #       name:
228 #         - arvados-cli
229 #     service:
230 #       name: arvados-controller
231 #       port: 8003
232 #  #### DISPATCHER
233 #   dispatcher:
234 #     pkg:
235 #       name:
236 #         - crunch-dispatch-local
237 #       #   - arvados-dispatch-cloud
238 #       #   - crunch-dispatch-slurm
239 #     service:
240 #       name: crunch-dispatch-local
241 #       port: 9006
242 #  #### KEEPPROXY
243 #   keepproxy:
244 #     pkg:
245 #       name: keepproxy
246 #     service:
247 #       name: keepproxy
248 #       port: 25107
249 #  #### KEEPWEB
250 #   keepweb:
251 #     pkg:
252 #       name: keep-web
253 #     service:
254 #       name: keep-web
255 #     #   webdav
256 #       port: 9002
257 #  #### KEEPSTORE
258 #   keepstore:
259 #     pkg:
260 #       name: keepstore
261 #     service:
262 #       name: keepstore
263 #       port: 25107
264 #  #### SHELL
265 #   shell:
266 #     pkg:
267 #       name:
268 #         - arvados-client
269 #         - arvados-src
270 #         - python3-arvados-fuse
271 #         - python3-arvados-python-client
272 #         - python3-arvados-cwl-runner
273 #     gem:
274 #       name:
275 #         - arvados-cli
276 #         - arvados-login-sync
277 #     shellinabox:
278 #       config: /etc/default/shellinabox
279 #       service:
280 #         name: shellinabox
281 #         port: 4200
282 #  #### WORKBENCH
283 #   workbench:
284 #     pkg:
285 #       name: arvados-workbench
286 #     service:
287 #       name: nginx
288 #  #### WORKBENCH2
289 #   workbench2:
290 #     pkg:
291 #       name: arvados-workbench2
292 #     service:
293 #       name: nginx
294 #  ####  WEBSOCKET
295 #   websocket:
296 #     pkg:
297 #       name: arvados-ws
298 #     service:
299 #       name: arvados-ws
300 #       port: 8005
301
302 #  ## SALTSTACK FORMULAS TOFS configuration
303 #   https://template-formula.readthedocs.io/en/latest/TOFS_pattern.html
304 #   tofs:
305 #   #    The files_switch key serves as a selector for alternative
306 #   #    directories under the formula files directory. See TOFS pattern
307 #   #    doc for more info.
308 #   #    Note: Any value not evaluated by `config.get` will be used literally.
309 #   #    This can be used to set custom paths, as many levels deep as required.
310 #     files_switch:
311 #       - any/path/can/be/used/here
312 #       - id
313 #       - roles
314 #       - osfinger
315 #       - os
316 #       - os_family
317 #   #    All aspects of path/file resolution are customisable using the options below.
318 #   #    This is unnecessary in most cases; there are sensible defaults.
319 #   #    Default path: salt://< path_prefix >/< dirs.files >/< dirs.default >
320 #   #            I.e.: salt://arvados/files/default
321 #   #    path_prefix: template_alt
322 #   #    dirs:
323 #   #      files: files_alt
324 #   #      default: default_alt
325 #   #    The entries under `source_files` are prepended to the default source files
326 #   #    given for the state
327 #   #    source_files:
328 #   #      arvados-config-file-file-managed:
329 #   #        - 'example_alt.tmpl'
330 #   #        - 'example_alt.tmpl.jinja'