1 - name: Set upstream variable
3 upstream: "{{ service.upstream }}"
5 - name: Check if upstream exists
7 url: "{{ server.kong_app_admin_url }}/upstreams/{{ upstream.conf.name }}"
10 apikey: "{{ server.kong_app_admin_apikey }}"
12 register: kong_app_check_upstream
14 - name: Update or Create upstream
16 url: "{{ server.kong_app_admin_url }}/upstreams/{{ exists_upstream | ternary('', upstream.conf.name) }}"
17 method: "{{ exists_upstream | ternary('POST', 'PATCH') }}"
18 body: "{{ upstream.conf | to_json }}"
21 apikey: "{{ server.kong_app_admin_apikey }}"
22 Content-Type: application/json
24 exists_upstream: "{{ kong_app_check_upstream.status|default(404) == 404 }}"
26 - name: Get upstream targets
28 url: "{{ server.kong_app_admin_url }}/upstreams/{{ upstream.conf.name }}/targets"
31 apikey: "{{ server.kong_app_admin_apikey }}"
32 register: kong_app_service_targets_check
34 - name: Create targets
36 url: "{{ server.kong_app_admin_url }}/upstreams/{{ upstream.conf.name }}/targets"
38 body: "{{ target | to_json }}"
40 apikey: "{{ server.kong_app_admin_apikey }}"
41 Content-Type: application/json
43 with_items: "{{ upstream.targets | default([]) }}"
47 - name: Delete old targets
49 url: "{{ server.kong_app_admin_url }}/upstreams/{{ upstream.conf.name }}/targets/{{ item.id }}"
52 apikey: "{{ server.kong_app_admin_apikey }}"
54 with_items: "{{ kong_app_service_targets_check.json.data }}"
55 when: not kong_app_service_targets_check is skipped