diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 50 |
1 files changed, 30 insertions, 20 deletions
@@ -1,32 +1,34 @@ | |||
1 | kong-app | 1 | kong-app |
2 | ========= | 2 | ========= |
3 | 3 | ||
4 | This role aims at creating on a remote kong the service, routes and plugins needed by an app | 4 | This role aims at creating, on a remote kong, a list of services, routes and plugins needed by an app. The API calls are made from the ansible target host. If you use `hosts: localhost` as a target from within your playbook then all API calls will be done from your local machine. |
5 | 5 | ||
6 | Requirements | 6 | Requirements |
7 | ------------ | 7 | ------------ |
8 | 8 | ||
9 | None at the moment | 9 | A Kong server which you want to configure. |
10 | |||
11 | If you want to configure this role with [Dhall](https://dhall-lang.org/) instead of YAML, the role publishes dhall bindings defined in the `dhall/package.dhall` file. These bindings will need Dhall version `1.29.0` or higher. | ||
10 | 12 | ||
11 | Role Variables | 13 | Role Variables |
12 | -------------- | 14 | -------------- |
13 | * `kong_servers`: an array of kong\_server to configure with followin configuration: | 15 | * `kong_servers`: an array of kong_server to configure with the following configuration: |
14 | * `kong_app_admin_url` the kong admin url (mandatory). | 16 | * `kong_app_admin_url` the kong admin API url (mandatory). |
15 | * `kong_app_admin_apikey` the apikey to use kong admin api. Default to "" | 17 | * `kong_app_admin_apikey` the apikey to use during kong admin api calls. Defaults to `""` |
16 | * `services` an array of services to setup (default to []) | 18 | * `services` an array of services to setup. Defaults to `[]`. |
17 | * `name` the name of the service to create for this app, mandatory | 19 | * `name` the name of the service to create for this app, **mandatory** |
18 | * `url` the url of the backend of the app, mandatory. May refer to an upstream by its name (https://upstream\_name/path) | 20 | * `url` the url of the backend of the app, **mandatory**. May refer to an upstream by its name (https://upstream_name/path) |
19 | * `upstream` if the url reference an upstream a dict with the configuration, optional | 21 | * `upstream` if the url reference an upstream a dict with the configuration, optional |
20 | * `conf` the configuration as expected by kong for an upstream creation | 22 | * `conf` the configuration as expected by kong for an upstream creation |
21 | * `name` mandatory name for the upstream | 23 | * `name` mandatory name for the upstream |
22 | * `healthchecks` optional healthchecks configuration as expected by kong api | 24 | * `healthchecks` optional healthchecks configuration as expected by kong api |
23 | * `targets` an array of dict defining a target for kong | 25 | * `targets` an array of dict defining a target for kong |
24 | * `target` the host:port to reach the target (mandatory) | 26 | * `target` the host:port to reach the target, **mandatory** if a target is defined |
25 | * `weight` the weight of the target (optional) | 27 | * `weight` the weight of the target, optional |
26 | * `plugins` An array of plugins to activate with their name and config in a dict | 28 | * `plugins` An array of plugins to activate with their name and config in a dict. (Plugin objects are defined in the [Kong API documentation](https://docs.konghq.com/2.1.x/admin-api/#plugin-object)) |
27 | * `name` | 29 | * `name` |
28 | * `config` | 30 | * `config` |
29 | * `routes` An array of routes to create for this service. | 31 | * `routes` An array of routes to create for this service. (Route objects are defined in the [Kong API documentation](https://docs.konghq.com/2.1.x/admin-api/#route-object)) |
30 | * `hosts` | 32 | * `hosts` |
31 | * `paths` | 33 | * `paths` |
32 | * `protocols` | 34 | * `protocols` |
@@ -35,26 +37,34 @@ Role Variables | |||
35 | Dependencies | 37 | Dependencies |
36 | ------------ | 38 | ------------ |
37 | 39 | ||
38 | 40 | None | |
39 | 41 | ||
40 | Example Playbook | 42 | Example Playbook |
41 | ---------------- | 43 | ---------------- |
42 | 44 | ||
43 | - hosts: localhost | 45 | - hosts: localhost |
44 | roles: | 46 | roles: |
45 | - { role: kong-app, kong_servers: [ kong_app_admin_url: http://localhost:8001, | 47 | - { role: kong-app, |
46 | services: [ name:example, | 48 | kong_servers: |
47 | url: http://example.com, | 49 | - kong_app_admin_url: http://localhost:8001, |
48 | plugins: [], | 50 | services: |
49 | routes: [ { hosts: [my.kong.example], paths: [/] } ]]] | 51 | - name: example, |
52 | url: http://example.com, | ||
53 | plugins: [], | ||
54 | routes: [ { hosts: [my.kong.example], paths: [/] } ] | ||
50 | } | 55 | } |
51 | 56 | ||
57 | Tests | ||
58 | ---- | ||
59 | |||
60 | The role is tested with automated continuous integration tests on Travis (see `tests/` directory). The test playbook targets a fake Kong server (visible in `tests/kong.py`). | ||
61 | |||
52 | License | 62 | License |
53 | ------- | 63 | ------- |
54 | 64 | ||
55 | TBD | 65 | MIT (see LICENSE file for details) |
56 | 66 | ||
57 | Author Information | 67 | Author Information |
58 | ------------------ | 68 | ------------------ |
59 | 69 | ||
60 | FretLink Team | 70 | Developed at [Fretlink](https://tech.fretlink.com) |