|
1 | 1 | ---
|
2 |
| -- name: LB | DO | Set defaults |
| 2 | +- name: DO | Set defaults |
3 | 3 | ansible.builtin.set_fact:
|
4 |
| - vpc_uuid: "{{ lb.vpc_uuid | d('') }}" |
| 4 | + # vpc_uuid: "{{ lb.vpc_uuid | d('') }}" |
5 | 5 | lb_name: ''
|
6 |
| - lb_ip: '' |
| 6 | + # lb_ip: '' |
| 7 | + lb_spec: "{{ lb.spec | d({}) }}" |
7 | 8 |
|
8 | 9 | # API does not return when member=true name=vpc_name
|
9 |
| -- name: LB | DO | Lookup for vpc_uuid |
10 |
| - community.digitalocean.digital_ocean_vpc_info: |
11 |
| - register: do_vpc |
12 |
| - when: vpc_uuid | length > 0 |
13 |
| - |
14 |
| -- name: LB | DO | Set vpc_uuid |
15 |
| - ansible.builtin.set_fact: |
16 |
| - vpc_uuid: "{{ do_vpc.data | json_query(filter_vpc) | join(' ') }}" |
| 10 | +- name: DO | Lookup for vpc_uuid |
17 | 11 | when:
|
18 |
| - - vpc_uuid | length > 0 |
19 |
| - - not(do_vpc.failed) |
20 |
| - vars: |
21 |
| - filter_vpc: "[?name=='{{ lb.vpc_name }}'].id" |
| 12 | + - lb_spec.vpc_uuid is not defined |
| 13 | + - lb_spec.vpc_uuid | d('') | length == 0 |
| 14 | + block: |
| 15 | + - name: DO | Lookup for vpc_uuid |
| 16 | + community.digitalocean.digital_ocean_vpc_info: |
| 17 | + register: do_vpc |
22 | 18 |
|
23 |
| -- name: LB | DO | Gather load balancers |
| 19 | + - name: DO | Set vpc_uuid |
| 20 | + ansible.builtin.set_fact: |
| 21 | + lb_spec: "{{ lb_spec | combine({ |
| 22 | + 'vpc_uuid': do_vpc.data | json_query(filter_vpc) | join(' ') |
| 23 | + }) }}" |
| 24 | + when: not(do_vpc.failed) |
| 25 | + vars: |
| 26 | + filter_vpc: "[?name=='{{ lb.vpc_name }}'].id" |
| 27 | + |
| 28 | +- name: DO | Gather load balancers |
24 | 29 | community.digitalocean.digital_ocean_load_balancer_info:
|
25 | 30 | register: do_lbs
|
26 | 31 |
|
27 |
| -- name: LB | DO | Set LB Name when eixsts |
28 |
| - ansible.builtin.set_fact: |
29 |
| - lb_name: "{{ do_lbs.data | community.general.json_query(filter_lb) | join(' ') }}" |
30 |
| - vars: |
31 |
| - filter_lb: "[?name=='{{ lb.name }}'].name" |
| 32 | +# - name: DO | Set LB Name when eixsts |
| 33 | +# ansible.builtin.set_fact: |
| 34 | +# lb_name: "{{ do_lbs.data | community.general.json_query(filter_lb) | join(' ') }}" |
| 35 | +# vars: |
| 36 | +# filter_lb: "[?name=='{{ lb_spec.name }}'].name" |
32 | 37 |
|
33 |
| -- name: LB | DO | Set LB ID when eixsts |
34 |
| - ansible.builtin.set_fact: |
35 |
| - lb_id: "{{ do_lbs.data | community.general.json_query(filter_lb) | join(' ') }}" |
36 |
| - vars: |
37 |
| - filter_lb: "[?name=='{{ lb.name }}'].id" |
| 38 | +# - name: DO | Set LB ID when eixsts |
| 39 | +# ansible.builtin.set_fact: |
| 40 | +# lb_id: "{{ do_lbs.data | community.general.json_query(filter_lb) | join(' ') }}" |
| 41 | +# vars: |
| 42 | +# filter_lb: "[?name=='{{ lb.name }}'].id" |
38 | 43 |
|
39 |
| -- name: LB | DO | Set LB IP when eixsts |
40 |
| - ansible.builtin.set_fact: |
41 |
| - lb_ip: "{{ do_lbs.data | community.general.json_query(filter_lb) | join(' ') }}" |
42 |
| - vars: |
43 |
| - filter_lb: "[?name=='{{ lb.name }}'].ip" |
| 44 | +# - name: DO | Set LB IP when eixsts |
| 45 | +# ansible.builtin.set_fact: |
| 46 | +# lb_ip: "{{ do_lbs.data | community.general.json_query(filter_lb) | join(' ') }}" |
| 47 | +# vars: |
| 48 | +# filter_lb: "[?name=='{{ lb.name }}'].ip" |
44 | 49 |
|
45 |
| -- name: LB | DO | Create |
| 50 | +- name: DO | Create |
46 | 51 | community.digitalocean.digital_ocean_load_balancer:
|
47 |
| - state: present |
48 |
| - name: "{{ lb.name | d(omit) }}" |
49 |
| - project: "{{ lb.project_name | d(omit) }}" |
50 |
| - region: "{{ lb.region | d(omit) }}" |
51 |
| - vpc_uuid: "{{ vpc_uuid | d(omit) }}" |
52 |
| - size: "{{ lb.size | d(omit) }}" |
53 |
| - droplet_ids: "{{ lb.droplet_ids | d([]) }}" |
54 |
| - forwarding_rules: "{{ lb.forwarding_rules | d(omit) }}" |
55 |
| - health_check: "{{ lb.health_check | d(omit) }}" |
56 |
| - redirect_http_to_https: "{{ lb.redirect_http_to_https | d(omit) }}" |
57 |
| - enable_backend_keepalive: "{{ lb.enable_backend_keepalive | d(omit) }}" |
58 |
| - enable_proxy_protocol: "{{ lb.enable_proxy_protocol | d(omit) }}" |
59 |
| - algorithm: "{{ lb.algorithm | d(omit) }}" |
60 |
| - wait: true |
61 |
| - when: lb_name | length > 0 |
| 52 | + # state: present |
| 53 | + # name: "{{ lb.name | d(omit) }}" |
| 54 | + # project: "{{ lb.project_name | d(omit) }}" |
| 55 | + # region: "{{ lb.region | d(omit) }}" |
| 56 | + # vpc_uuid: "{{ vpc_uuid | d(omit) }}" |
| 57 | + # size: "{{ lb.size | d(omit) }}" |
| 58 | + # droplet_ids: "{{ lb.droplet_ids | d([]) }}" |
| 59 | + # forwarding_rules: "{{ lb.forwarding_rules | d(omit) }}" |
| 60 | + # health_check: "{{ lb.health_check | d(omit) }}" |
| 61 | + # redirect_http_to_https: "{{ lb.redirect_http_to_https | d(omit) }}" |
| 62 | + # enable_backend_keepalive: "{{ lb.enable_backend_keepalive | d(omit) }}" |
| 63 | + # enable_proxy_protocol: "{{ lb.enable_proxy_protocol | d(omit) }}" |
| 64 | + # algorithm: "{{ lb.algorithm | d(omit) }}" |
| 65 | + # wait: true |
| 66 | + args: "{{ lb_spec }}" |
| 67 | + # when: lb_name | length == 0 |
62 | 68 | register: lb_out
|
63 | 69 |
|
64 | 70 | # Gather info again (maybe sleep a bit?)
|
65 |
| -- name: LB | DO | Gather load balancers to register |
| 71 | +- name: DO | Gather load balancers to register |
66 | 72 | community.digitalocean.digital_ocean_load_balancer_info:
|
67 | 73 | register: do_lbs
|
68 |
| - when: lb_ip | length > 0 |
| 74 | + # when: lb_ip | length == 0 |
69 | 75 |
|
70 |
| -- name: LB | DO | Set LB IP when eixsts |
| 76 | +- name: DO | Set LB IP when eixsts |
71 | 77 | ansible.builtin.set_fact:
|
72 | 78 | lb_ip: "{{ do_lbs.data | community.general.json_query(filter_lb) | join(' ') }}"
|
73 | 79 | vars:
|
74 |
| - filter_lb: "[?name=='{{ lb.name }}'].ip" |
75 |
| - when: lb_ip | length > 0 |
| 80 | + filter_lb: "[?name=='{{ lb_spec.name }}'].ip" |
| 81 | + # when: lb_ip | length == 0 |
76 | 82 |
|
77 |
| -- name: LB | DO | Callback register resources |
78 |
| - ansible.builtin.include_tasks: "do-lb-register-{{ res.service }}.yaml" |
79 |
| - with_items: "{{ lb.register_resources | d([]) }}" |
| 83 | +- name: DO | Callback register resources |
| 84 | + ansible.builtin.include_tasks: "do-lb-register-{{ cb.service }}.yaml" |
| 85 | + with_items: "{{ lb.callbacks | d([]) }}" |
80 | 86 | loop_control:
|
81 |
| - loop_var: res |
| 87 | + loop_var: cb |
0 commit comments