Skip to content

Commit f3c6234

Browse files
committed
fixes: digital ocean provisioning
1 parent 7c521f0 commit f3c6234

File tree

3 files changed

+75
-67
lines changed

3 files changed

+75
-67
lines changed

tasks/do-lb-register-dns.yaml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,46 @@
11
---
2-
- name: LB | DO | Register DNS | Set IP
2+
- name: DO | CB DNS | Register DNS | Set IP
33
ansible.builtin.set_fact:
44
res_value: "{{ lb_ip }}"
5-
when: res.value is not defined
5+
when: cb.value is not defined
66

77
# Module does not provide a good lookup nor indepotency, so
88
# let's load current records filter it and create only new ones.
99
# It provides indepotency by name, and not value. Additional
1010
# checks should be done to achieve that.
1111

12-
- name: LB | DO | Register DNS | Get RR
12+
- name: DO | CB DNS | Register DNS | Get RR
1313
community.digitalocean.digital_ocean_domain_record_info:
1414
state: present
15-
domain: "{{ res.domain }}"
15+
domain: "{{ cb.domain }}"
1616
register: reg_dns_zone_records
1717

18-
- name: LB | DO | Register DNS | Show RRs
18+
- name: DO | CB DNS | Register DNS | Show RRs
1919
ansible.builtin.debug:
2020
var: reg_dns_zone_records
2121

22-
- name: LB | DO | Register DNS | Set list to add
22+
- name: DO | CB DNS | Register DNS | Set list to add
2323
ansible.builtin.set_fact:
2424
rr_to_add: []
2525

26-
- name: LB | DO | Register DNS | Discover value
26+
- name: DO | CB DNS | Register DNS | Discover value
2727
ansible.builtin.set_fact:
2828
rr_to_add: "{{ rr_to_add + [record] }}"
2929
when: reg_dns_zone_records.data.records | community.general.json_query(q_rr) | length <= 0
30-
with_items: "{{ res.records }}"
30+
with_items: "{{ cb.records }}"
3131
loop_control:
3232
loop_var: record
3333
vars:
3434
q_rr: "[?name=='{{ record.name }}']"
3535

36-
- name: LB | DO | Register DNS | Show RRs to add
36+
- name: DO | CB DNS | Register DNS | Show RRs to add
3737
ansible.builtin.debug:
3838
var: rr_to_add
3939

40-
- name: LB | DO | Register DNS | Create RR # noqa: args[module]
40+
- name: DO | CB DNS | Register DNS | Create RR # noqa: args[module]
4141
community.digitalocean.digital_ocean_domain_record:
4242
state: present
43-
domain: "{{ res.domain }}"
43+
domain: "{{ cb.domain }}"
4444
type: "{{ record.type }}"
4545
name: "{{ record.name }}"
4646
data: "{{ record.value | d(res_value) }}"

tasks/do-lb.yaml

Lines changed: 62 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,87 @@
11
---
2-
- name: LB | DO | Set defaults
2+
- name: DO | Set defaults
33
ansible.builtin.set_fact:
4-
vpc_uuid: "{{ lb.vpc_uuid | d('') }}"
4+
# vpc_uuid: "{{ lb.vpc_uuid | d('') }}"
55
lb_name: ''
6-
lb_ip: ''
6+
# lb_ip: ''
7+
lb_spec: "{{ lb.spec | d({}) }}"
78

89
# 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
1711
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
2218

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
2429
community.digitalocean.digital_ocean_load_balancer_info:
2530
register: do_lbs
2631

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"
3237

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"
3843

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"
4449

45-
- name: LB | DO | Create
50+
- name: DO | Create
4651
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
6268
register: lb_out
6369

6470
# Gather info again (maybe sleep a bit?)
65-
- name: LB | DO | Gather load balancers to register
71+
- name: DO | Gather load balancers to register
6672
community.digitalocean.digital_ocean_load_balancer_info:
6773
register: do_lbs
68-
when: lb_ip | length > 0
74+
# when: lb_ip | length == 0
6975

70-
- name: LB | DO | Set LB IP when eixsts
76+
- name: DO | Set LB IP when eixsts
7177
ansible.builtin.set_fact:
7278
lb_ip: "{{ do_lbs.data | community.general.json_query(filter_lb) | join(' ') }}"
7379
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
7682

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([]) }}"
8086
loop_control:
81-
loop_var: res
87+
loop_var: cb

tasks/main.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
loop_control:
77
loop_var: tg
88

9+
- debug: var=cloud_loadbalancers
10+
911
- name: Setup Load Balancers by provider
1012
ansible.builtin.include_tasks: "{{ lb.provider }}-lb.yaml"
1113
with_items: "{{ cloud_loadbalancers | d([]) }}"

0 commit comments

Comments
 (0)