8 .. |img_travis| image:: https://travis-ci.com/saltstack-formulas/arvados-formula.svg?branch=master
9 :alt: Travis CI Build Status
11 :target: https://travis-ci.com/saltstack-formulas/arvados-formula
12 .. |img_sr| image:: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
13 :alt: Semantic Release
15 :target: https://github.com/semantic-release/semantic-release
17 A SaltStack formula to install and configure an `Arvados cluster <https://arvados.org>`_.
19 .. contents:: **Table of Contents**
24 See the full `SaltStack Formulas installation and usage instructions
25 <https://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html>`_.
27 If you are interested in writing or contributing to formulas, please pay attention to the `Writing Formula Section
28 <https://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html#writing-formulas>`_.
30 If you want to use this formula, please pay attention to the ``FORMULA`` file and/or ``git tag``,
31 which contains the currently released version. This formula is versioned according to `Semantic Versioning <http://semver.org/>`_.
33 See `Formula Versioning Section <https://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html#versioning>`_ for more details.
35 If you need (non-default) configuration, please pay attention to the ``pillar.example`` file and/or `Special notes`_ section.
37 Contributing to this repo
38 -------------------------
40 **Commit message formatting is significant!!**
42 Please see `How to contribute <https://github.com/saltstack-formulas/.github/blob/master/CONTRIBUTING.rst>`_ for more details.
47 Arvados **requires** a Postgres database for its API server and SSL for communications. If you don't satisfy these two requirements, things
48 won't work. It also uses an Nginx server as a redirector but probably almost any other webserver/redirector can be used instead.
50 We suggest you use the `postgres-formula <https://github.com/saltstack-formulas/postgres-formula/>`_,
51 the `nginx-formula <https://github.com/saltstack-formulas/nginx-formula/>`_ and the
52 `letsencrypt-formula <https://github.com/saltstack-formulas/letsencrypt-formula/>`_ to install satisfy these dependencies.
53 In the FIXME directory there are some example pillar YAMLs to set up these packages as Arvados needs it.
55 Also, please note that the individual subcomponents `clean` states **won't remove the config**: as the config is common to all the suite
56 components and they can be installed in the same host, removing it with a subcomponent might break others.
58 If you want to remove the config in a host where you're removing a subcomponent, use the `arvados.config.clean` state after the
59 `arvados.<subcomponent>.clean` state.
61 The `arvados.clean` state will remove everything, config included, and can be used in any host to remove all of arvados files.
72 *Meta-state (This is a state that includes other states)*.
74 This installs the WHOLE arvados suite in a single host,
75 manages the arvados configuration file and then
76 starts the associated arvados services.
81 *Meta-state (This is a state that includes other states)*.
83 this state will undo everything performed in the ``arvados`` meta-state in reverse order, i.e.
84 stops the services, removes the configuration file and then uninstalls the packages.
89 This state will configure the arvados cluster. As all the arvados components use the same config
90 file, any of the following components will include this state and you will rarely need to call it
91 independently. You can still do, as to get a parsed config file to use somewhere else.
96 This state will configure the arvados repository.
98 ``arvados.repo.clean``
99 ^^^^^^^^^^^^^^^^^^^^^^^
101 This state will remove the arvados repository configuration.
106 *Meta-state (This is a state that includes other states)*.
108 This state installs an `arvados shell node <https://doc.arvados.org/master/install/install-shell-server.html>`_.
110 ``arvados.shell.clean``
111 ^^^^^^^^^^^^^^^^^^^^^^^
113 *Meta-state (This is a state that includes other states)*.
115 this state will undo everything performed in the ``arvados.shell`` meta-state in reverse order, i.e.
116 uninstalls the packages and gems.
118 ``arvados.shell.package``
119 ^^^^^^^^^^^^^^^^^^^^^^^^^
121 This state will install the arvados shell packages and gems only.
123 ``arvados.shell.package.clean``
124 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
126 This state will remove the packages and gems of the arvados shell node.
147 This state will start the arvados service and has a dependency on ``arvados.config``
150 ``arvados.service.clean``
151 ^^^^^^^^^^^^^^^^^^^^^^^^^^
153 This state will stop the arvados service and disable it at boot time.
155 ``arvados.config.clean``
156 ^^^^^^^^^^^^^^^^^^^^^^^^^
158 This state will remove the configuration of the arvados service and has a
159 dependency on ``arvados.service.clean`` via include list.
161 ``arvados.package.clean``
162 ^^^^^^^^^^^^^^^^^^^^^^^^^^
164 This state will remove the arvados package and has a depency on
165 ``arvados.config.clean`` via include list.
170 Linux testing is done with ``kitchen-salt``.
180 $ gem install bundler
182 $ bin/kitchen test [platform]
184 Where ``[platform]`` is the platform name defined in ``kitchen.yml``,
185 e.g. ``debian-10-3000-1-py3``.
187 ``bin/kitchen converge``
188 ^^^^^^^^^^^^^^^^^^^^^^^^
190 Creates the docker instance and runs the ``arvados`` main state, ready for testing.
192 ``bin/kitchen verify``
193 ^^^^^^^^^^^^^^^^^^^^^^
195 Runs the ``inspec`` tests on the actual instance.
197 ``bin/kitchen destroy``
198 ^^^^^^^^^^^^^^^^^^^^^^^
200 Removes the docker instance.
205 Runs all of the stages above in one go: i.e. ``destroy`` + ``converge`` + ``verify`` + ``destroy``.
207 ``bin/kitchen login``
208 ^^^^^^^^^^^^^^^^^^^^^
210 Gives you SSH access to the instance for manual testing.