Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

core: README cleanup and test env cleanup #69

Merged
merged 2 commits into from
Jun 22, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
---
sudo: false
language: nix
nix: 2.2.1
nix: 2.3.4
env:
- NIX_PATH=nixpkgs=channel:nixos-19.09
- NIX_PATH=nixpkgs=channel:nixos-20.03

install:
- nix-env -iA pkgs.python37Packages.ansible-lint pkgs.python37Packages.ansible pkgs.shellcheck -f '<nixpkgs>'
- nix-env -if ./dhall-1.26.1.nix
- nix-env -i -f ./default.nix

# Check ansible version
- ansible --version
Expand Down
53 changes: 29 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,49 +2,51 @@

[![Build Status](https://travis-ci.com/fretlink/ansible-clever.svg?token=D3nFpUxMu7vStDHwUNy4&branch=master)](https://travis-ci.com/fretlink/ansible-clever)

Ansible role for clever cloud deployment
Ansible role for Clever Cloud deployment
=======
Clever deploy
=========

This role deploys applications on clever cloud (https://www.clever-cloud.com).
It handles the publication over git, as well as domain names, environment variables and log drains configuration.
It handles the publication over git, as well as configuring domain names, environment variables and log drains, dedicated build instances, and scalability parameters.

Requirements
------------

This role requires `clever-tools` version `2.6.1` or higher.
This role requires [`clever-tools`](https://github.com/CleverCloud/clever-tools) CLI version `2.6.1` or higher.
paulrbr-fl marked this conversation as resolved.
Show resolved Hide resolved

If 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.

Role Variables
--------------

Variables for the application
- `clever_token`: clever_cloud token, mandatory.
- `clever_secret`: clever_cloud secret, mandatory.
- `clever_app`: the id of the app to link, mandatory.
- `clever_env`: a dict of environment variables for the application (without add_ons one already available), optional.
- `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
Variables for the application:

- `clever_token`: clever_cloud token, **mandatory**.
- `clever_secret`: clever_cloud secret, **mandatory**.
- `clever_app`: the id of the app to link, **mandatory**.
- `clever_env`: a dict of environment variables to add to the application, optional.
- `clever_addons`: a list of dict describing addons enabled for the application from which we would use information during deploy, optional.<br/>
Example: `{ name: pg, env_prefix: POSTGRESQL_ADDON }`
- `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.
- `clever_haskell_entry_point`: the haskell executable name to be executed by clever cloud, optional.
- `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.
- `clever_domain`: the domain from which the application should be reachable, optional.
- _Obsolete_: `domain`: Same as above but was replaced by `clever_domain` since v1.4 of this role.
- `clever_syslog_server`: UDP Syslog server to be used as UDPSyslog drain for the application, optional. Example: `udp://198.51.100.51:12345`.
- _Obsolete_: `syslog_server`: Same as above but was replaced by `clever_syslog_server` since v1.5 of this role.
- _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`.
- _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.
- `clever_disable_metrics`: a boolean to disable metrics support. Optional, default to `false`.
- `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.
- `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.
- `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.
- `clever_scaling`: an optional object used to configure the runtime instances flavours and numbers. If not defined, it delegates to clever cloud default behaviour.

Variables specific to deployment, default should be fine:

- `clever_cli_version`: Version of clever cli tools, default to `2.6.1`.
- `clever_user_path`: Path relative to ansible_user home dir where cli tools and helpers are installed default to `.local/bin`.
- `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.
- `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.
- `clever_app_confdir`: Path where to store clever cloud data specific to this application, default to `"{{ clever_app_root }}/.clever_cloud"`
- `clever_login_file`: Path to store login information. Default to `"{{ clever_app_confdir }}/login"`.

Variables specific to Haskell applications:

- `clever_haskell_entry_point`: the haskell executable name to be executed by clever cloud, optional.

Scaling configuration
---------------------

Expand All @@ -59,7 +61,6 @@ clever_scaling:
max: 5
```


Dependencies
------------

Expand All @@ -70,15 +71,19 @@ Example Playbook

Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:

- hosts: servers
- hosts: localhost
roles:
- { role: fretlink.clever, clever_app: 42, clever_token: "{{ vault_clever_token }}", clever_secret: "{{ vault_clever_secret}}" }
- role: fretlink.clever,
vars:
clever_app: app_00000000-0000-0000-0000-000000000000,
clever_token: "{{ vault_clever_token }}",
clever_secret: "{{ vault_clever_secret}}"


TODO
Tests
----

Add some tests and Travis integration
The role is tested with automated continuous integration on Travis. Please check the `tests/` directory for other usage examples of this role.

License
-------
Expand All @@ -88,4 +93,4 @@ BSD
Author Information
------------------

Developped at Fretlink (https://www.fretlink.com) for our
Developped at Fretlink (https://www.fretlink.com)
11 changes: 11 additions & 0 deletions default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{ pkgs ? import <nixpkgs> {} }:

with pkgs;
{
inherit shellcheck
ansible_2_8;
inherit (python37Packages)
ansible-lint;
inherit (haskellPackages)
dhall_1_27_0;
}
22 changes: 0 additions & 22 deletions dhall-1.26.1.nix

This file was deleted.