]> git.immae.eu Git - github/fretlink/ansible-clever.git/blame - README.md
core: cleanup the README to better document the role
[github/fretlink/ansible-clever.git] / README.md
CommitLineData
4882b0d3 1# ansible-clever
3ed1cca7
PB
2
3[![Build Status](https://travis-ci.com/fretlink/ansible-clever.svg?token=D3nFpUxMu7vStDHwUNy4&branch=master)](https://travis-ci.com/fretlink/ansible-clever)
4
e6428dce 5Ansible role for Clever Cloud deployment
f7dd5848 6=======
f7dd5848 7
e6872941 8This role deploys applications on clever cloud (https://www.clever-cloud.com).
e6428dce 9It handles the publication over git, as well as configuring domain names, environment variables and log drains, dedicated build instances, and scalability parameters.
f7dd5848
GD
10
11Requirements
12------------
13
e6428dce
PB
14This role requires [`clever-tools`](https://github.com/CleverCloud/clever-tools) CLI version `2.6.1` or higher.
15
16If you want to configure this role with [Dhall](https://dhall-lang.org/) instead of YAML, the dhall bindings defined in the `dhall/` directory will need Dhall version `1.26.0` or higher.
f7dd5848
GD
17
18Role Variables
19--------------
20
e6428dce
PB
21Variables for the application:
22
23- `clever_token`: clever_cloud token, **mandatory**.
24- `clever_secret`: clever_cloud secret, **mandatory**.
25- `clever_app`: the id of the app to link, **mandatory**.
26- `clever_env`: a dict of environment variables to add to the application, optional.
f7dd5848
GD
27- `clever_addons`: a list of dict describing addons enabled for the application from which we would use information during deploy, optional.<br/>
28 Example: `{ name: pg, env_prefix: POSTGRESQL_ADDON }`
e6428dce 29- `clever_app_tasks_file`: path to an Ansible tasks file to be executed after environment and addons variables where gathered. Specific to an application and should be use to run migrations for example. Optional.
1157a45f 30- `clever_domain`: the domain from which the application should be reachable, optional.
23c0fc8a 31- `clever_syslog_server`: UDP Syslog server to be used as UDPSyslog drain for the application, optional. Example: `udp://198.51.100.51:12345`.
e6428dce 32- _Obsolete_: `clever_metrics`: metrics used to be disabled by default. Now they are enabled by default on Clever-Cloud and can be explicitly disabled with the `clever_disable_metrics` variable.
e6872941 33- `clever_disable_metrics`: a boolean to disable metrics support. Optional, default to `false`.
e6428dce 34- `clever_env_output_file`: as a post deploy task you might need to retrieve the full Clever environment configuration (i.e. with addon env variables). If this variable is set to a filename then the env will be retrieved after a successful deploy and written to this file. Beware, the resulting file will contain sensitive information (addon passwords, …). Optional.
1c139365 35- `clever_build_flavor`: an optional text value used to configure the size of the dedicated build instance (for instance `S` or `XL`). If not defined, it delegates to clever cloud default behaviour. Setting `disabled` disables the dedicated build instance altogether.
96f02eb1 36- `clever_scaling`: an optional object used to configure the runtime instances flavours and numbers. If not defined, it delegates to clever cloud default behaviour.
f7dd5848
GD
37
38Variables specific to deployment, default should be fine:
e6428dce 39
8a5d45d7 40- `clever_cli_version`: Version of clever cli tools, default to `2.6.1`.
f7dd5848 41- `clever_user_path`: Path relative to ansible_user home dir where cli tools and helpers are installed default to `.local/bin`.
e6428dce 42- `clever_app_root`: Path of the application to deploy, default to `app_root` if defined or `"{{ playbook_dir }}/.."` otherwise. I.e. the default behavior will work fine if you define a playbook using this role in a one level deep directory (e.g. `deployment/`) of the root of the application.
f7dd5848
GD
43- `clever_app_confdir`: Path where to store clever cloud data specific to this application, default to `"{{ clever_app_root }}/.clever_cloud"`
44- `clever_login_file`: Path to store login information. Default to `"{{ clever_app_confdir }}/login"`.
45
e6428dce
PB
46Variables specific to Haskell applications:
47
48- `clever_haskell_entry_point`: the haskell executable name to be executed by clever cloud, optional.
49
96f02eb1
CD
50Scaling configuration
51---------------------
52
53```yaml
54clever_scaling:
55 # instances and flavors are optional and can be configured as
56 # either a fixed value (with `fixed`) or a range # (with `min` and `max`)
57 flavors:
58 fixed: XS
59 instances:
60 min: 2
61 max: 5
62```
63
f7dd5848
GD
64Dependencies
65------------
66
67None
68
69Example Playbook
70----------------
71
72Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:
73
e6428dce 74 - hosts: localhost
f7dd5848 75 roles:
e6428dce
PB
76 - role: fretlink.clever,
77 vars:
78 clever_app: app_00000000-0000-0000-0000-000000000000,
79 clever_token: "{{ vault_clever_token }}",
80 clever_secret: "{{ vault_clever_secret}}"
f7dd5848
GD
81
82
e6428dce 83Tests
f7dd5848
GD
84----
85
e6428dce 86The role is tested with automated continuous integration on Travis. Please check the `tests/` directory for other usage examples of this role.
f7dd5848
GD
87
88License
89-------
90
91BSD
92
93Author Information
94------------------
95
e6428dce 96Developped at Fretlink (https://www.fretlink.com)