]> git.immae.eu Git - github/fretlink/ansible-clever.git/blame - README.md
Merge pull request #67 from clementd-fretlink/scaling
[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
4882b0d3 5Ansible role for clever cloud deployment
f7dd5848
GD
6=======
7Clever deploy
8=========
9
e6872941
CD
10This role deploys applications on clever cloud (https://www.clever-cloud.com).
11It handles the publication over git, as well as domain names, environment variables and log drains configuration.
f7dd5848
GD
12
13Requirements
14------------
15
44ed0759 16This role requires `clever-tools` version `2.6.1` or higher.
f7dd5848
GD
17
18Role Variables
19--------------
20
21Variables for the application
22- `clever_token`: clever_cloud token, mandatory.
23- `clever_secret`: clever_cloud secret, mandatory.
24- `clever_app`: the id of the app to link, mandatory.
25- `clever_env`: a dict of environment variables for the application (without add_ons one already available), optional.
f7fe658a 26- `clever_base_env`: a dict set in vars/main.yml with safe default and mandatory variables for an app to be run on clever. ` clever_base_env | combine(clever_env)` is passed to `clever env` command
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 }`
f7fe658a 29- `clever_app_tasks_file`: tasks file to be executed after environment and addons variables where gathered. Specific to an app, should be use to run migrations. Optional.
65b86d1f 30- `clever_haskell_entry_point`: the haskell executable name to be executed by clever cloud, optional.
1157a45f
PB
31- `clever_domain`: the domain from which the application should be reachable, optional.
32- _Obsolete_: `domain`: Same as above but was replaced by `clever_domain` since v1.4 of this role.
23c0fc8a
PB
33- `clever_syslog_server`: UDP Syslog server to be used as UDPSyslog drain for the application, optional. Example: `udp://198.51.100.51:12345`.
34- _Obsolete_: `syslog_server`: Same as above but was replaced by `clever_syslog_server` since v1.5 of this role.
e6872941
CD
35- _Obsolete_: `clever_metrics`: metrics used to be disabled by default. Now they are enabled by default and can be explicitly disabled with `clever_disable_metrics`.
36- `clever_disable_metrics`: a boolean to disable metrics support. Optional, default to `false`.
56797728 37- `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 inside this file. Optional.
1c139365 38- `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 39- `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
40
41Variables specific to deployment, default should be fine:
8a5d45d7 42- `clever_cli_version`: Version of clever cli tools, default to `2.6.1`.
f7dd5848 43- `clever_user_path`: Path relative to ansible_user home dir where cli tools and helpers are installed default to `.local/bin`.
8056915b 44- `clever_app_root`: Path of the application to deploy, default to `app_root` if defined or `"{{ playbook_dir }}/.."`, ie ansible directory in the root of the application.
f7dd5848
GD
45- `clever_app_confdir`: Path where to store clever cloud data specific to this application, default to `"{{ clever_app_root }}/.clever_cloud"`
46- `clever_login_file`: Path to store login information. Default to `"{{ clever_app_confdir }}/login"`.
47
96f02eb1
CD
48Scaling configuration
49---------------------
50
51```yaml
52clever_scaling:
53 # instances and flavors are optional and can be configured as
54 # either a fixed value (with `fixed`) or a range # (with `min` and `max`)
55 flavors:
56 fixed: XS
57 instances:
58 min: 2
59 max: 5
60```
61
f7dd5848
GD
62
63Dependencies
64------------
65
66None
67
68Example Playbook
69----------------
70
71Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:
72
73 - hosts: servers
74 roles:
75 - { role: fretlink.clever, clever_app: 42, clever_token: "{{ vault_clever_token }}", clever_secret: "{{ vault_clever_secret}}" }
76
77
78TODO
79----
80
81Add some tests and Travis integration
82
83License
84-------
85
86BSD
87
88Author Information
89------------------
90
91Developped at Fretlink (https://www.fretlink.com) for our