|
71 | 71 | # SSH key |
72 | 72 | - block: |
73 | 73 | # Delete the temporary ssh key from the cloud (if exists) |
74 | | - - name: "Hetzner Cloud: Remove temporary SSH key '{{ ssh_key_name }}' from cloud (if any)" |
| 74 | + - name: "Hetzner Cloud: Remove temporary SSH key '{{ ssh_key_name | default('') }}' from cloud (if any)" |
75 | 75 | hetzner.hcloud.ssh_key: |
76 | 76 | api_token: "{{ lookup('ansible.builtin.env', 'HCLOUD_API_TOKEN') }}" |
77 | 77 | name: "{{ ssh_key_name }}" |
|
82 | 82 | - ssh_key_name == tmp_ssh_key_name |
83 | 83 |
|
84 | 84 | # if ssh_key_name and ssh_key_content is specified, add this ssh key to the cloud |
85 | | - - name: "Hetzner Cloud: Add SSH key '{{ ssh_key_name }}' to cloud" |
| 85 | + - name: "Hetzner Cloud: Add SSH key '{{ ssh_key_name | default('') }}' to cloud" |
86 | 86 | hetzner.hcloud.ssh_key: |
87 | 87 | api_token: "{{ lookup('ansible.builtin.env', 'HCLOUD_API_TOKEN') }}" |
88 | 88 | name: "{{ ssh_key_name }}" |
|
93 | 93 | - ssh_key_content | length > 0 |
94 | 94 |
|
95 | 95 | # if ssh_key_name is specified |
96 | | - - name: "Hetzner Cloud: Gather information about SSH key '{{ ssh_key_name }}'" |
| 96 | + - name: "Hetzner Cloud: Gather information about SSH key '{{ ssh_key_name | default('') }}'" |
97 | 97 | hetzner.hcloud.ssh_key_info: |
98 | 98 | api_token: "{{ lookup('ansible.builtin.env', 'HCLOUD_API_TOKEN') }}" |
99 | 99 | name: "{{ ssh_key_name }}" |
|
169 | 169 | retries: 3 |
170 | 170 |
|
171 | 171 | # if server_network is specified |
172 | | - - name: "Hetzner Cloud: Check if network '{{ server_network }}' exists for given location" |
| 172 | + - name: "Hetzner Cloud: Check if network '{{ server_network | default('') }}' exists for given location" |
173 | 173 | ansible.builtin.fail: |
174 | 174 | msg: "No network with name '{{ server_network }}' in location '{{ target_network_zone }}'" |
175 | 175 | when: |
|
182 | 182 | | selectattr("network_zone", "equalto", target_network_zone) |
183 | 183 | | list | length > 0) |
184 | 184 |
|
185 | | - - name: "Hetzner Cloud: Extract ip_range for network '{{ server_network }}'" |
| 185 | + - name: "Hetzner Cloud: Extract ip_range for network '{{ server_network | default('') }}'" |
186 | 186 | ansible.builtin.set_fact: |
187 | 187 | server_network_ip_range: "{{ item.ip_range }}" |
188 | 188 | loop: "{{ network_info.hcloud_network_info }}" |
|
194 | 194 |
|
195 | 195 | # if server_network is not specified, create a network and subnet |
196 | 196 | - block: |
197 | | - - name: "Hetzner Cloud: Create a network '{{ hcloud_network_name | default('postgres-cluster-network-' + target_network_zone) }}'" |
| 197 | + - name: "Hetzner Cloud: Create a postgres cluster network" |
198 | 198 | hetzner.hcloud.network: |
199 | 199 | api_token: "{{ lookup('ansible.builtin.env', 'HCLOUD_API_TOKEN') }}" |
200 | 200 | name: "{{ hcloud_network_name | default('postgres-cluster-network-' + target_network_zone) }}" |
201 | 201 | ip_range: "{{ hcloud_network_ip_range | default('10.0.0.0/16') }}" |
202 | 202 | state: present |
203 | 203 |
|
204 | | - - name: "Hetzner Cloud: Create a subnetwork in network '{{ hcloud_network_name | default('postgres-cluster-network-' + target_network_zone) }}'" |
| 204 | + - name: "Hetzner Cloud: Create a subnetwork in postgres cluster network" |
205 | 205 | hetzner.hcloud.subnetwork: |
206 | 206 | api_token: "{{ lookup('ansible.builtin.env', 'HCLOUD_API_TOKEN') }}" |
207 | 207 | network: "{{ hcloud_network_name | default('postgres-cluster-network-' + target_network_zone) }}" |
|
444 | 444 | - cloud_firewall | bool |
445 | 445 |
|
446 | 446 | # Object Storage (S3 bucket for backups) |
447 | | - - name: "Hetzner Cloud: Create Object Storage (S3 bucket) '{{ hetzner_object_storage_name }}'" |
| 447 | + - name: "Hetzner Cloud: Create Object Storage (S3 bucket) '{{ hetzner_object_storage_name | default('') }}'" |
448 | 448 | amazon.aws.s3_bucket: |
449 | 449 | endpoint_url: "{{ hetzner_object_storage_endpoint }}" |
450 | 450 | ceph: true |
|
504 | 504 | ([patroni_cluster_name + '-firewall'] if cloud_firewall | bool else []) |
505 | 505 | }} |
506 | 506 |
|
507 | | - - name: "Hetzner Cloud: Add server to network '{{ server_network }}'" |
| 507 | + - name: "Hetzner Cloud: Add server to network '{{ server_network | default('') }}'" |
508 | 508 | hetzner.hcloud.server_network: |
509 | 509 | api_token: "{{ lookup('ansible.builtin.env', 'HCLOUD_API_TOKEN') }}" |
510 | 510 | network: "{{ server_network }}" |
|
583 | 583 | (item == 'replica' and server_count | int > 1) or |
584 | 584 | (item in ['sync', 'async'] and server_count | int > 1 and synchronous_mode | bool)) |
585 | 585 |
|
586 | | - - name: "Hetzner Cloud: Add Load Balancer to network '{{ server_network }}'" |
| 586 | + - name: "Hetzner Cloud: Add Load Balancer to network '{{ server_network | default('') }}'" |
587 | 587 | hetzner.hcloud.load_balancer_network: |
588 | 588 | api_token: "{{ lookup('ansible.builtin.env', 'HCLOUD_API_TOKEN') }}" |
589 | 589 | load_balancer: "{{ patroni_cluster_name }}-{{ item }}" |
|
642 | 642 | (item == 'replica' and server_count | int > 1) or |
643 | 643 | (item in ['sync', 'async'] and server_count | int > 1 and synchronous_mode | bool)) |
644 | 644 |
|
645 | | - - name: "Hetzner Cloud: Add servers to Load Balancer (use label_selector 'cluster={{ patroni_cluster_name }}')" |
| 645 | + - name: "Hetzner Cloud: Add servers to Load Balancer (use label_selector 'cluster={{ patroni_cluster_name | default('postgres-cluster') }}')" |
646 | 646 | hetzner.hcloud.load_balancer_target: |
647 | 647 | api_token: "{{ lookup('ansible.builtin.env', 'HCLOUD_API_TOKEN') }}" |
648 | 648 | load_balancer: "{{ patroni_cluster_name }}-{{ item }}" |
|
736 | 736 | - server_result.results | selectattr('hcloud_server', 'defined') |
737 | 737 |
|
738 | 738 | # Delete the temporary ssh key from the cloud after creating the server |
739 | | -- name: "Hetzner Cloud: Remove temporary SSH key {{ ssh_key_name }} from cloud" |
| 739 | +- name: "Hetzner Cloud: Remove temporary SSH key {{ ssh_key_name | default('') }} from cloud" |
740 | 740 | hetzner.hcloud.ssh_key: |
741 | 741 | api_token: "{{ lookup('ansible.builtin.env', 'HCLOUD_API_TOKEN') }}" |
742 | 742 | name: "{{ ssh_key_name }}" |
|
817 | 817 | state: "absent" |
818 | 818 | name: "{{ patroni_cluster_name }}-firewall" |
819 | 819 |
|
820 | | - - name: "Hetzner Cloud: Delete Object Storage (S3 bucket) '{{ hetzner_object_storage_name }}'" |
| 820 | + - name: "Hetzner Cloud: Delete Object Storage (S3 bucket) '{{ hetzner_object_storage_name | default('') }}'" |
821 | 821 | amazon.aws.s3_bucket: |
822 | 822 | endpoint_url: "{{ hetzner_object_storage_endpoint }}" |
823 | 823 | ceph: true |
|
0 commit comments