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