aboutsummaryrefslogtreecommitdiffhomepage
path: root/tasks
diff options
context:
space:
mode:
authorGaëtan Duchaussois <gaetan.duchaussois@fretlink.com>2018-04-26 18:15:47 +0200
committerGaëtan Duchaussois <gaetan.duchaussois@fretlink.com>2018-04-26 18:39:08 +0200
commit507bb99c0f6c79d5257d293a5eda6bbd3e34caaf (patch)
tree3412555e05cc36c1efc01f8fc2c591d35de84f07 /tasks
parent72627c8c7454feb4ee38f2d3eddd4cfcabb9a2d4 (diff)
downloadansible-kong-app-507bb99c0f6c79d5257d293a5eda6bbd3e34caaf.tar.gz
ansible-kong-app-507bb99c0f6c79d5257d293a5eda6bbd3e34caaf.tar.zst
ansible-kong-app-507bb99c0f6c79d5257d293a5eda6bbd3e34caaf.zip
support multiple kong servers
Diffstat (limited to 'tasks')
-rw-r--r--tasks/kong-app.yml8
-rw-r--r--tasks/main.yml8
-rw-r--r--tasks/plugins.yml8
-rw-r--r--tasks/routes.yml12
-rw-r--r--tasks/server.yml8
5 files changed, 26 insertions, 18 deletions
diff --git a/tasks/kong-app.yml b/tasks/kong-app.yml
index f94f044..bff2f46 100644
--- a/tasks/kong-app.yml
+++ b/tasks/kong-app.yml
@@ -1,20 +1,20 @@
1- name: Check if service exists 1- name: Check if service exists
2 uri: 2 uri:
3 url: "{{ kong_app_admin_url }}/services/{{ service.name }}" 3 url: "{{ server.kong_app_admin_url }}/services/{{ service.name }}"
4 method: GET 4 method: GET
5 headers: 5 headers:
6 apikey: "{{ kong_app_admin_apikey }}" 6 apikey: "{{ server.kong_app_admin_apikey }}"
7 status_code: 200,404 7 status_code: 200,404
8 register: kong_app_check_service 8 register: kong_app_check_service
9 9
10- name: Update or Create service 10- name: Update or Create service
11 uri: 11 uri:
12 url: "{{ kong_app_admin_url }}/services/{{ exists_service | ternary('', service.name) }}" 12 url: "{{ server.kong_app_admin_url }}/services/{{ exists_service | ternary('', service.name) }}"
13 method: "{{ exists_service | ternary('POST', 'PATCH') }}" 13 method: "{{ exists_service | ternary('POST', 'PATCH') }}"
14 body: "{{ service_body | to_json }}" 14 body: "{{ service_body | to_json }}"
15 status_code: 200,201 15 status_code: 200,201
16 headers: 16 headers:
17 apikey: "{{ kong_app_admin_apikey }}" 17 apikey: "{{ server.kong_app_admin_apikey }}"
18 Content-Type: application/json 18 Content-Type: application/json
19 vars: 19 vars:
20 exists_service: "{{ kong_app_check_service.status|default(404) == 404 }}" 20 exists_service: "{{ kong_app_check_service.status|default(404) == 404 }}"
diff --git a/tasks/main.yml b/tasks/main.yml
index 4bd42c8..c4e3aec 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -1,8 +1,8 @@
1--- 1---
2- name: Include kong-app tasks 2- name: Include kong server tasks
3 include_tasks: kong-app.yml 3 include_tasks: server.yml
4 tags: 4 tags:
5 - kong-app 5 - kong-app
6 with_items: "{{ kong_services }}" 6 with_items: "{{ kong_servers }}"
7 loop_control: 7 loop_control:
8 loop_var: service 8 loop_var: server
diff --git a/tasks/plugins.yml b/tasks/plugins.yml
index 4dd9137..cedbbd2 100644
--- a/tasks/plugins.yml
+++ b/tasks/plugins.yml
@@ -1,19 +1,19 @@
1- name: Get plugins 1- name: Get plugins
2 uri: 2 uri:
3 url: "{{ kong_app_admin_url }}/services/{{ service.name }}/plugins" 3 url: "{{ server.kong_app_admin_url }}/services/{{ service.name }}/plugins"
4 method: GET 4 method: GET
5 validate_certs: no 5 validate_certs: no
6 headers: 6 headers:
7 apikey: "{{ kong_app_admin_apikey }}" 7 apikey: "{{ server.kong_app_admin_apikey }}"
8 register: kong_app_service_plugins_check 8 register: kong_app_service_plugins_check
9 9
10- name: Setup plugin 10- name: Setup plugin
11 uri: 11 uri:
12 url: "{{ kong_app_admin_url }}/{{ exists_plugin | ternary('services/' ~ service.name ~ '/plugins','plugins/' ~ current_config.id) }}" 12 url: "{{ server.kong_app_admin_url }}/{{ exists_plugin | ternary('services/' ~ service.name ~ '/plugins','plugins/' ~ current_config.id) }}"
13 method: "{{ exists_plugin | ternary ('POST', 'PATCH') }}" 13 method: "{{ exists_plugin | ternary ('POST', 'PATCH') }}"
14 body: "{{ plugin | combine(current_body) | to_json }}" 14 body: "{{ plugin | combine(current_body) | to_json }}"
15 headers: 15 headers:
16 apikey: "{{ kong_app_admin_apikey }}" 16 apikey: "{{ server.kong_app_admin_apikey }}"
17 Content-Type: application/json 17 Content-Type: application/json
18 status_code: 200,201 18 status_code: 200,201
19 with_items: "{{ service.plugins | default([]) }}" 19 with_items: "{{ service.plugins | default([]) }}"
diff --git a/tasks/routes.yml b/tasks/routes.yml
index 881fc96..3ff2507 100644
--- a/tasks/routes.yml
+++ b/tasks/routes.yml
@@ -1,19 +1,19 @@
1- name: Get app routes 1- name: Get app routes
2 uri: 2 uri:
3 url: "{{ kong_app_admin_url }}/services/{{ service.name }}/routes" 3 url: "{{ server.kong_app_admin_url }}/services/{{ service.name }}/routes"
4 method: GET 4 method: GET
5 validate_certs: no 5 validate_certs: no
6 headers: 6 headers:
7 apikey: "{{ kong_app_admin_apikey }}" 7 apikey: "{{ server.kong_app_admin_apikey }}"
8 register: kong_app_service_routes_check 8 register: kong_app_service_routes_check
9 9
10- name: Setup route 10- name: Setup route
11 uri: 11 uri:
12 url: "{{ kong_app_admin_url }}/services/{{ service.name }}/routes" 12 url: "{{ server.kong_app_admin_url }}/services/{{ service.name }}/routes"
13 method: POST 13 method: POST
14 body: "{{ route | to_json }}" 14 body: "{{ route | to_json }}"
15 headers: 15 headers:
16 apikey: "{{ kong_app_admin_apikey }}" 16 apikey: "{{ server.kong_app_admin_apikey }}"
17 Content-Type: application/json 17 Content-Type: application/json
18 status_code: 201 18 status_code: 201
19 with_items: "{{ service.routes | default([]) }}" 19 with_items: "{{ service.routes | default([]) }}"
@@ -22,10 +22,10 @@
22 22
23- name: Delete old routes 23- name: Delete old routes
24 uri: 24 uri:
25 url: "{{ kong_app_admin_url }}/routes/{{ item.id }}" 25 url: "{{ server.kong_app_admin_url }}/routes/{{ item.id }}"
26 method: DELETE 26 method: DELETE
27 headers: 27 headers:
28 apikey: "{{ kong_app_admin_apikey }}" 28 apikey: "{{ server.kong_app_admin_apikey }}"
29 status_code: 204 29 status_code: 204
30 with_items: "{{ kong_app_service_routes_check.json.data }}" 30 with_items: "{{ kong_app_service_routes_check.json.data }}"
31 when: not kong_app_service_routes_check is skipped 31 when: not kong_app_service_routes_check is skipped
diff --git a/tasks/server.yml b/tasks/server.yml
new file mode 100644
index 0000000..664fb99
--- /dev/null
+++ b/tasks/server.yml
@@ -0,0 +1,8 @@
1---
2- name: Include kong-app tasks
3 include_tasks: kong-app.yml
4 tags:
5 - kong-app
6 with_items: "{{ server.services }}"
7 loop_control:
8 loop_var: service