]> git.immae.eu Git - github/fretlink/ansible-clever.git/commitdiff
Merge pull request #69 from paulrbr-fl/documentation
authorpaulrbr-fl <43074087+paulrbr-fl@users.noreply.github.com>
Mon, 22 Jun 2020 14:03:33 +0000 (16:03 +0200)
committerGitHub <noreply@github.com>
Mon, 22 Jun 2020 14:03:33 +0000 (16:03 +0200)
core: README cleanup and test env cleanup

.travis.yml
README.md
default.nix [new file with mode: 0644]
dhall-1.26.1.nix [deleted file]

index d287c26255826fb7b9a9c0c65afab7e9a586795f..92f6295cf48d8ceaf869d533a17b99479a88fffa 100644 (file)
@@ -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
index 348f36d54a4be556e211b8b7519e53fe67c7aa45..22c70b46f2435a38dd746c59df9d9054178a03eb 100644 (file)
--- a/README.md
+++ b/README.md
@@ -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.
+
+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
 ---------------------
 
@@ -59,7 +61,6 @@ clever_scaling:
     max: 5
 ```
 
-
 Dependencies
 ------------
 
@@ -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
 -------
@@ -88,4 +93,4 @@ BSD
 Author Information
 ------------------
 
-Developped at Fretlink (https://www.fretlink.com) for our
+Developped at Fretlink (https://www.fretlink.com)
diff --git a/default.nix b/default.nix
new file mode 100644 (file)
index 0000000..15ee01e
--- /dev/null
@@ -0,0 +1,11 @@
+{ pkgs ? import <nixpkgs> {} }:
+
+with pkgs;
+{
+  inherit shellcheck
+          ansible_2_8;
+  inherit (python37Packages)
+          ansible-lint;
+  inherit (haskellPackages)
+          dhall_1_27_0;
+}
diff --git a/dhall-1.26.1.nix b/dhall-1.26.1.nix
deleted file mode 100644 (file)
index 918a528..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-{ pkgs ? import <nixpkgs> {} }: with pkgs;
-
-let
-  mkVersion =
-    version: sha256:
-      stdenv.mkDerivation {
-        name = "dhall-${version}";
-        inherit version;
-        src = fetchurl {
-          url = "https://github.com/dhall-lang/dhall-haskell/releases/download/${version}/dhall-${version}-x86_64-linux.tar.bz2";
-          inherit sha256;
-        };
-        unpackPhase = ''
-          tar -xjf $src
-        '';
-        installPhase = ''
-          mkdir -p $out/bin
-          mv bin/dhall $out/bin/
-        '';
-      };
-in
-  mkVersion "1.26.1" "0sl4r3mfairgd6kn26hs1r1lkh8rn992grd73078rhqf5w90ag05"