Skip to content

Commit 614def8

Browse files
Copilotvitabaks
andauthored
Add Ansible 12 compatibility (#1279)
Co-authored-by: Vitaliy Kukharik <[email protected]>
1 parent 49df3c6 commit 614def8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+271
-273
lines changed

.config/python/dev/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
ansible==11.10.0
1+
ansible==12.1.0
22
ansible-lint==25.9.1
33
ansible-compat==25.8.1
44
yamllint==1.37.1

automation/playbooks/pg_upgrade.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
- name: "vitabaks.autobase.pg_upgrade | Upgrade PostgreSQL {{ pg_old_version }} to the new version {{ pg_new_version }}"
2+
- name: "vitabaks.autobase.pg_upgrade | Upgrade PostgreSQL to the new major version"
33
hosts: postgres_cluster
44
gather_facts: true
55
become: true

automation/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
ansible==11.10.0
1+
ansible==12.1.0
22
boto3==1.40.44
33
dopy==0.3.7
44
google-auth==2.41.1

automation/roles/add_repository/tasks/main.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@
152152
when: ansible_architecture in ["x86_64", "amd64"]
153153

154154
# Check if the repository entry exists in the file
155-
- name: Check if pgdg{{ postgresql_version }}-debuginfo exists in repo file
155+
- name: Check if pgdg{{ postgresql_version | default('') }}-debuginfo exists in repo file
156156
ansible.builtin.lineinfile:
157157
path: "{{ pgdg_redhat_repo_path }}"
158158
regexp: '^\[pgdg{{ postgresql_version }}-debuginfo\]'
@@ -164,7 +164,7 @@
164164
pgdg_redhat_repo_path: "/etc/yum.repos.d/pgdg-redhat-all.repo"
165165

166166
# If the entry does not exist, try to add the repository
167-
- name: Add pgdg{{ postgresql_version }}-debuginfo repo if not present
167+
- name: Add pgdg{{ postgresql_version | default('') }}-debuginfo repo if not present
168168
ansible.builtin.yum_repository: # yamllint disable rule:line-length
169169
name: "pgdg{{ postgresql_version }}-debuginfo"
170170
description: "PostgreSQL {{ postgresql_version }} for RHEL {{ ansible_distribution_major_version }} - {{ pgdg_architecture_map[ansible_architecture] }} - Debuginfo"

automation/roles/authorized_keys/tasks/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
register: system_user
77
changed_when: false
88

9-
- name: "Add public keys to ~{{ system_user.stdout }}/.ssh/authorized_keys"
9+
- name: "Add public keys to ~{{ system_user.stdout | default('') }}/.ssh/authorized_keys"
1010
ansible.posix.authorized_key:
1111
user: "{{ system_user.stdout }}"
1212
key: "{{ item }}"

automation/roles/cloud_resources/tasks/aws.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
# SSH key
5656
- block:
5757
# Delete the temporary ssh key from the cloud (if exists)
58-
- name: "AWS: Remove temporary SSH key '{{ ssh_key_name }}' from cloud (if any)"
58+
- name: "AWS: Remove temporary SSH key '{{ ssh_key_name | default('') }}' from cloud (if any)"
5959
amazon.aws.ec2_key:
6060
access_key: "{{ lookup('ansible.builtin.env', 'AWS_ACCESS_KEY_ID') }}"
6161
secret_key: "{{ lookup('ansible.builtin.env', 'AWS_SECRET_ACCESS_KEY') }}"
@@ -68,7 +68,7 @@
6868
- ssh_key_name == tmp_ssh_key_name
6969

7070
# if ssh_key_name and ssh_key_content is specified, add this ssh key to the cloud
71-
- name: "AWS: Add SSH key '{{ ssh_key_name }}' to cloud"
71+
- name: "AWS: Add SSH key '{{ ssh_key_name | default('') }}' to cloud"
7272
amazon.aws.ec2_key:
7373
access_key: "{{ lookup('ansible.builtin.env', 'AWS_ACCESS_KEY_ID') }}"
7474
secret_key: "{{ lookup('ansible.builtin.env', 'AWS_SECRET_ACCESS_KEY') }}"
@@ -86,7 +86,7 @@
8686
- block:
8787
# if server_network is specified, get vpc id for this subnet
8888
- block:
89-
- name: "AWS: Gather information about VPC for '{{ server_network }}'"
89+
- name: "AWS: Gather information about VPC for '{{ server_network | default('') }}'"
9090
amazon.aws.ec2_vpc_subnet_info:
9191
region: "{{ server_location }}"
9292
subnet_ids: "{{ server_network }}"
@@ -509,7 +509,7 @@
509509
(item in ['sync', 'async'] and server_count | int > 1 and synchronous_mode | bool))
510510

511511
# S3 bucket (Backups)
512-
- name: "AWS: Create S3 bucket '{{ aws_s3_bucket_name }}'"
512+
- name: "AWS: Create S3 bucket '{{ aws_s3_bucket_name | default('') }}'"
513513
amazon.aws.s3_bucket:
514514
access_key: "{{ lookup('ansible.builtin.env', 'AWS_ACCESS_KEY_ID') }}"
515515
secret_key: "{{ lookup('ansible.builtin.env', 'AWS_SECRET_ACCESS_KEY') }}"
@@ -595,7 +595,7 @@
595595
- server_result.results | selectattr('instances', 'defined')
596596

597597
# Delete the temporary ssh key from the cloud after creating the EC2 instance
598-
- name: "AWS: Remove temporary SSH key '{{ ssh_key_name }}' from cloud"
598+
- name: "AWS: Remove temporary SSH key '{{ ssh_key_name | default('') }}' from cloud"
599599
amazon.aws.ec2_key:
600600
access_key: "{{ lookup('ansible.builtin.env', 'AWS_ACCESS_KEY_ID') }}"
601601
secret_key: "{{ lookup('ansible.builtin.env', 'AWS_SECRET_ACCESS_KEY') }}"
@@ -686,7 +686,7 @@
686686
delay: 10
687687
retries: 3
688688

689-
- name: "AWS: Delete S3 bucket '{{ aws_s3_bucket_name }}'"
689+
- name: "AWS: Delete S3 bucket '{{ aws_s3_bucket_name | default('') }}'"
690690
amazon.aws.s3_bucket:
691691
access_key: "{{ lookup('ansible.builtin.env', 'AWS_ACCESS_KEY_ID') }}"
692692
secret_key: "{{ lookup('ansible.builtin.env', 'AWS_SECRET_ACCESS_KEY') }}"

automation/roles/cloud_resources/tasks/azure.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -417,7 +417,7 @@
417417

418418
# Azure Blob Storage (Backups)
419419
- block:
420-
- name: "Azure: Create Storage Account '{{ azure_blob_storage_account_name }}'"
420+
- name: "Azure: Create Storage Account '{{ azure_blob_storage_account_name | default('') }}'"
421421
azure.azcollection.azure_rm_storageaccount:
422422
resource_group: "{{ azure_resource_group | default('postgres-cluster-resource-group' ~ '-' ~ server_location) }}"
423423
name: "{{ azure_blob_storage_account_name }}"
@@ -441,7 +441,7 @@
441441
azure_storage_account_key: "{{ azure_storage_account_info.storageaccounts[0].primary_endpoints.key }}"
442442
no_log: true # do not output storage account contents to the ansible log
443443

444-
- name: "Azure: Create Blob Storage container '{{ azure_blob_storage_name }}'"
444+
- name: "Azure: Create Blob Storage container '{{ azure_blob_storage_name | default('') }}'"
445445
azure.azcollection.azure_rm_storageblob:
446446
resource_group: "{{ azure_resource_group | default('postgres-cluster-resource-group' ~ '-' ~ server_location) }}"
447447
account_name: "{{ azure_blob_storage_account_name }}"
@@ -615,14 +615,14 @@
615615
state: absent
616616

617617
- block:
618-
- name: "Azure: Delete Blob Storage '{{ azure_blob_storage_name }}'"
618+
- name: "Azure: Delete Blob Storage '{{ azure_blob_storage_name | default('') }}'"
619619
azure.azcollection.azure_rm_storageblob:
620620
resource_group: "{{ azure_resource_group | default('postgres-cluster-resource-group' ~ '-' ~ server_location) }}"
621621
storage_account_name: "{{ azure_blob_storage_account_name }}"
622622
container: "{{ azure_blob_storage_name }}"
623623
state: absent
624624

625-
- name: "Azure: Delete Storage Account '{{ azure_blob_storage_account_name }}'"
625+
- name: "Azure: Delete Storage Account '{{ azure_blob_storage_account_name | default('') }}'"
626626
azure.azcollection.azure_rm_storageaccount:
627627
resource_group: "{{ azure_resource_group | default('postgres-cluster-resource-group' ~ '-' ~ server_location) }}"
628628
name: "{{ azure_blob_storage_account_name }}"

automation/roles/cloud_resources/tasks/digitalocean.yml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@
7070
# SSH key
7171
- block:
7272
# Delete the temporary ssh key from the cloud (if exists)
73-
- name: "DigitalOcean: Remove temporary SSH key '{{ ssh_key_name }}' from cloud (if any)"
73+
- name: "DigitalOcean: Remove temporary SSH key '{{ ssh_key_name | default('') }}' from cloud (if any)"
7474
community.digitalocean.digital_ocean_sshkey:
7575
oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
7676
name: "{{ ssh_key_name }}"
@@ -82,7 +82,7 @@
8282
- ssh_key_name == tmp_ssh_key_name
8383

8484
# if ssh_key_name and ssh_key_content is specified, add this ssh key to the cloud
85-
- name: "DigitalOcean: Add SSH key '{{ ssh_key_name }}' to cloud"
85+
- name: "DigitalOcean: Add SSH key '{{ ssh_key_name | default('') }}' to cloud"
8686
community.digitalocean.digital_ocean_sshkey:
8787
oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
8888
name: "{{ ssh_key_name }}"
@@ -99,7 +99,7 @@
9999

100100
# if ssh_key_name is specified, get the fingerprint of one ssh key
101101
# or if tmp_ssh_key_name is used and ssh_public_keys is difined
102-
- name: "DigitalOcean: Get fingerprint for SSH key '{{ ssh_key_name }}'"
102+
- name: "DigitalOcean: Get fingerprint for SSH key '{{ ssh_key_name | default('') }}'"
103103
ansible.builtin.set_fact:
104104
ssh_key_fingerprint: "{{ [item.fingerprint] }}"
105105
loop: "{{ ssh_keys.data | lower }}"
@@ -111,7 +111,7 @@
111111
- item.name == ssh_key_name | lower
112112

113113
# Stop, if the ssh key is not found
114-
- name: "DigitalOcean: Fail if SSH key '{{ ssh_key_name }}' is not found"
114+
- name: "DigitalOcean: Fail if SSH key '{{ ssh_key_name | default('') }}' is not found"
115115
ansible.builtin.fail:
116116
msg: "SSH key {{ ssh_key_name }} not found. Ensure that key has been added to DigitalOcean."
117117
when:
@@ -154,7 +154,7 @@
154154
- vpc_info.data | selectattr('region', 'equalto', server_location) | selectattr('default', 'equalto', true) | list | length > 0
155155

156156
# if server_network is not specified and there is no default VPC, create a network
157-
- name: "DigitalOcean: Create a VPC '{{ digital_ocean_vpc_name | default('network-' + server_location) }}'"
157+
- name: "DigitalOcean: Create a VPC '{{ digital_ocean_vpc_name | default('network-' + server_location | default('')) }}'"
158158
community.digitalocean.digital_ocean_vpc:
159159
oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
160160
name: "{{ digital_ocean_vpc_name | default('network-' + server_location) }}"
@@ -184,7 +184,7 @@
184184
- server_network | length > 0
185185
- vpc_info.data | selectattr('region', 'equalto', server_location) | selectattr('name', 'equalto', server_network) | list | length == 0
186186

187-
- name: Extract ip_range from VPC "{{ server_network }}"
187+
- name: Extract ip_range from VPC "{{ server_network | default('') }}"
188188
ansible.builtin.set_fact:
189189
vpc_ip_range: >-
190190
{{
@@ -196,7 +196,7 @@
196196
}}
197197
when: server_network | length > 0
198198

199-
- name: Extract id from VPC "{{ server_network }}"
199+
- name: Extract id from VPC "{{ server_network | default('') }}"
200200
ansible.builtin.set_fact:
201201
vpc_id: >-
202202
{{
@@ -208,7 +208,7 @@
208208
}}
209209
when: server_network | length > 0
210210

211-
- name: "DigitalOcean: Create a tag '{{ patroni_cluster_name }}'"
211+
- name: "DigitalOcean: Create a tag '{{ patroni_cluster_name | default('') }}'"
212212
community.digitalocean.digital_ocean_tag:
213213
oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
214214
name: "{{ patroni_cluster_name }}"
@@ -615,7 +615,7 @@
615615
when: cloud_load_balancer | bool
616616

617617
# Spaces Object Storage (Backups)
618-
- name: "DigitalOcean: Create Spaces Bucket '{{ digital_ocean_spaces_name }}'"
618+
- name: "DigitalOcean: Create Spaces Bucket '{{ digital_ocean_spaces_name | default('') }}'"
619619
community.digitalocean.digital_ocean_spaces:
620620
oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
621621
name: "{{ digital_ocean_spaces_name }}"
@@ -700,7 +700,7 @@
700700
- droplet_result.results | selectattr('data', 'defined')
701701

702702
# Delete the temporary SSH key from the cloud after creating the droplet
703-
- name: "DigitalOcean: Remove temporary SSH key '{{ ssh_key_name }}' from cloud"
703+
- name: "DigitalOcean: Remove temporary SSH key '{{ ssh_key_name | default('') }}' from cloud"
704704
community.digitalocean.digital_ocean_sshkey:
705705
oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
706706
name: "{{ ssh_key_name }}"
@@ -774,7 +774,7 @@
774774
state: "absent"
775775
name: "{{ patroni_cluster_name }}-private-firewall"
776776

777-
- name: "DigitalOcean: Delete Spaces Bucket '{{ digital_ocean_spaces_name }}'"
777+
- name: "DigitalOcean: Delete Spaces Bucket '{{ digital_ocean_spaces_name | default('') }}'"
778778
community.digitalocean.digital_ocean_spaces:
779779
oauth_token: "{{ lookup('ansible.builtin.env', 'DO_API_TOKEN') }}"
780780
name: "{{ digital_ocean_spaces_name }}"

automation/roles/cloud_resources/tasks/gcp.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@
110110
- name = "{{ gcp_network_name }}"
111111
register: subnetwork_info
112112

113-
- name: "GCP: Extract ip_range for network '{{ gcp_network_name }}'"
113+
- name: "GCP: Extract ip_range for network '{{ gcp_network_name | default('default') }}'"
114114
ansible.builtin.set_fact:
115115
gcp_network_ip_range: "{{ subnetwork_info.resources[0].ipCidrRange }}"
116116

@@ -489,7 +489,7 @@
489489
when: cloud_load_balancer | bool
490490

491491
# GCS Bucket (Backups)
492-
- name: "GCP: Create bucket '{{ gcp_bucket_name }}'"
492+
- name: "GCP: Create bucket '{{ gcp_bucket_name | default('') }}'"
493493
google.cloud.gcp_storage_bucket:
494494
auth_kind: "serviceaccount"
495495
service_account_contents: "{{ gcp_service_account_contents }}"
@@ -725,7 +725,7 @@
725725
name: "{{ patroni_cluster_name }}-lb-firewall-rule"
726726
state: absent
727727

728-
- name: "GCP: Delete bucket '{{ gcp_bucket_name }}'"
728+
- name: "GCP: Delete bucket '{{ gcp_bucket_name | default('') }}'"
729729
google.cloud.gcp_storage_bucket:
730730
auth_kind: "serviceaccount"
731731
service_account_contents: "{{ gcp_service_account_contents }}"

automation/roles/cloud_resources/tasks/hetzner.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
# SSH key
7272
- block:
7373
# 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)"
7575
hetzner.hcloud.ssh_key:
7676
api_token: "{{ lookup('ansible.builtin.env', 'HCLOUD_API_TOKEN') }}"
7777
name: "{{ ssh_key_name }}"
@@ -82,7 +82,7 @@
8282
- ssh_key_name == tmp_ssh_key_name
8383

8484
# 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"
8686
hetzner.hcloud.ssh_key:
8787
api_token: "{{ lookup('ansible.builtin.env', 'HCLOUD_API_TOKEN') }}"
8888
name: "{{ ssh_key_name }}"
@@ -93,7 +93,7 @@
9393
- ssh_key_content | length > 0
9494

9595
# 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('') }}'"
9797
hetzner.hcloud.ssh_key_info:
9898
api_token: "{{ lookup('ansible.builtin.env', 'HCLOUD_API_TOKEN') }}"
9999
name: "{{ ssh_key_name }}"
@@ -169,7 +169,7 @@
169169
retries: 3
170170

171171
# 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"
173173
ansible.builtin.fail:
174174
msg: "No network with name '{{ server_network }}' in location '{{ target_network_zone }}'"
175175
when:
@@ -182,7 +182,7 @@
182182
| selectattr("network_zone", "equalto", target_network_zone)
183183
| list | length > 0)
184184

185-
- name: "Hetzner Cloud: Extract ip_range for network '{{ server_network }}'"
185+
- name: "Hetzner Cloud: Extract ip_range for network '{{ server_network | default('') }}'"
186186
ansible.builtin.set_fact:
187187
server_network_ip_range: "{{ item.ip_range }}"
188188
loop: "{{ network_info.hcloud_network_info }}"
@@ -194,14 +194,14 @@
194194

195195
# if server_network is not specified, create a network and subnet
196196
- 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"
198198
hetzner.hcloud.network:
199199
api_token: "{{ lookup('ansible.builtin.env', 'HCLOUD_API_TOKEN') }}"
200200
name: "{{ hcloud_network_name | default('postgres-cluster-network-' + target_network_zone) }}"
201201
ip_range: "{{ hcloud_network_ip_range | default('10.0.0.0/16') }}"
202202
state: present
203203

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"
205205
hetzner.hcloud.subnetwork:
206206
api_token: "{{ lookup('ansible.builtin.env', 'HCLOUD_API_TOKEN') }}"
207207
network: "{{ hcloud_network_name | default('postgres-cluster-network-' + target_network_zone) }}"
@@ -444,7 +444,7 @@
444444
- cloud_firewall | bool
445445

446446
# 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('') }}'"
448448
amazon.aws.s3_bucket:
449449
endpoint_url: "{{ hetzner_object_storage_endpoint }}"
450450
ceph: true
@@ -504,7 +504,7 @@
504504
([patroni_cluster_name + '-firewall'] if cloud_firewall | bool else [])
505505
}}
506506
507-
- name: "Hetzner Cloud: Add server to network '{{ server_network }}'"
507+
- name: "Hetzner Cloud: Add server to network '{{ server_network | default('') }}'"
508508
hetzner.hcloud.server_network:
509509
api_token: "{{ lookup('ansible.builtin.env', 'HCLOUD_API_TOKEN') }}"
510510
network: "{{ server_network }}"
@@ -583,7 +583,7 @@
583583
(item == 'replica' and server_count | int > 1) or
584584
(item in ['sync', 'async'] and server_count | int > 1 and synchronous_mode | bool))
585585

586-
- name: "Hetzner Cloud: Add Load Balancer to network '{{ server_network }}'"
586+
- name: "Hetzner Cloud: Add Load Balancer to network '{{ server_network | default('') }}'"
587587
hetzner.hcloud.load_balancer_network:
588588
api_token: "{{ lookup('ansible.builtin.env', 'HCLOUD_API_TOKEN') }}"
589589
load_balancer: "{{ patroni_cluster_name }}-{{ item }}"
@@ -642,7 +642,7 @@
642642
(item == 'replica' and server_count | int > 1) or
643643
(item in ['sync', 'async'] and server_count | int > 1 and synchronous_mode | bool))
644644

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') }}')"
646646
hetzner.hcloud.load_balancer_target:
647647
api_token: "{{ lookup('ansible.builtin.env', 'HCLOUD_API_TOKEN') }}"
648648
load_balancer: "{{ patroni_cluster_name }}-{{ item }}"
@@ -736,7 +736,7 @@
736736
- server_result.results | selectattr('hcloud_server', 'defined')
737737

738738
# 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"
740740
hetzner.hcloud.ssh_key:
741741
api_token: "{{ lookup('ansible.builtin.env', 'HCLOUD_API_TOKEN') }}"
742742
name: "{{ ssh_key_name }}"
@@ -817,7 +817,7 @@
817817
state: "absent"
818818
name: "{{ patroni_cluster_name }}-firewall"
819819

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('') }}'"
821821
amazon.aws.s3_bucket:
822822
endpoint_url: "{{ hetzner_object_storage_endpoint }}"
823823
ceph: true

0 commit comments

Comments
 (0)