galaxy_info:
author: FretLink team
description: Love and trucks
- company: FretLink
+ company: FretLink
# If the issue tracker for your role is not on github, uncomment the
# next line and provide a value
# - GPLv3
# - Apache
# - CC-BY
- license: TBD
+ license: TBD
min_ansible_version: 2.4
status_code: 200,404
register: kong_app_check_service
-#- name: Update or Create service
-# uri:
-# url: "{{ kong_app_admin_url }}/services/{{ kong_app_service_name }}"
-# method: "{{ (kong_app_check_service.status_code == 404) | ternary ('POST', 'PATCH') }}"
-# body: "{{ kong_app_service_body | to_json }}"
-# headers:
-# apikey: "{{ kong_app_admin_apikey }}"
-# Content-Type: application/json
-# status_code: 200,201
+- name: Update or Create service
+ uri:
+ url: "{{ kong_app_admin_url }}/services/{{ (kong_app_check_service.status == 404) | ternary('', kong_app_service_name) }}"
+ method: "{{ (kong_app_check_service.status == 404) | ternary('POST', 'PATCH') }}"
+ body: "{{ kong_app_service_body | to_json }}"
+ status_code: 200,201
+ headers:
+ apikey: "{{ kong_app_admin_apikey }}"
+ Content-Type: application/json
- name: Setup plugins
import_tasks: plugins.yml
url: "{{ kong_app_admin_url }}/services/{{ kong_app_service_name }}/plugins"
method: GET
validate_certs: no
+ headers:
+ apikey: "{{ kong_app_admin_apikey }}"
register: kong_app_service_plugins_check
-- name: Set plugins facts
- set_fact:
- kong_app_current_plugins: "{{ kong_app_service_plugins_check.json | default('{}') | from_json }}"
-
-- name: Setup plugin {{ plugin.name }}
+- name: Setup plugin
uri:
- url: "{{ kong_app_admin_url }}/services/{{ kong_app_service_name }}/plugins"
- method: "{{ (current_config == {}) | ternary ('POST', 'PATCH') }}"
+ url: "{{ kong_app_admin_url }}/{{ (current_config.id == '') | ternary('services/' ~ kong_app_service_name ~ '/plugins','plugins/' ~ current_config.id) }}"
+ method: "{{ (current_config.id == '') | ternary ('POST', 'PATCH') }}"
body: "{{ plugin | combine(current_body) | to_json }}"
headers:
apikey: "{{ kong_app_admin_apikey }}"
loop_control:
loop_var: plugin
vars:
- current_config: "{{ kong_app_current_plugins.data | selectattr('name', plugin.name) | first |default({}) }}"
+ current_config: "{{ kong_app_service_plugins_check.json.data | selectattr('name', 'equalto', plugin.name) | first |default({\"id\": ''}) }}"
current_id_hash:
- id: "{{ current_config.id | default('')}}"
+ id: "{{ current_config.id }}"
current_body: "{{ (current_id_hash.id == '') | ternary({}, current_id_hash) }}"
url: "{{ kong_app_admin_url }}/services/{{ kong_app_service_name }}/routes"
method: GET
validate_certs: no
+ headers:
+ apikey: "{{ kong_app_admin_apikey }}"
register: kong_app_service_routes_check
-- name: Set routes facts
- set_fact:
- kong_app_current_routes: "{{ kong_app_service_routes_check.json |default('{\"data\": []}') | from_json }}"
-
- name: Setup route
uri:
url: "{{ kong_app_admin_url }}/services/{{ kong_app_service_name }}/routes"
- name: Delete old routes
uri:
- url: "{{ kong_app_admin_url }}/services/routes/{{ item.id }}"
+ url: "{{ kong_app_admin_url }}/routes/{{ item.id }}"
method: DELETE
headers:
apikey: "{{ kong_app_admin_apikey }}"
status_code: 204
- with_items: "{{ kong_app_current_routes.data }}"
+ with_items: "{{ kong_app_service_routes_check.json.data }}"