Skip to content

Commit 5143c61

Browse files
stuggiclaude
andcommitted
[b/r] Discover RabbitMQ clusters dynamically in cifmw role
Remove cifmw_backup_restore_rabbitmq_clusters variable and discover cluster names from the OpenStackControlPlane CR at restore time. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 2073edf commit 5143c61

2 files changed

Lines changed: 18 additions & 5 deletions

File tree

docs/dev/backup-restore/role/cifmw_backup_restore/defaults/main.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,6 @@ cifmw_backup_restore_restore_timeout: 900
3939
cifmw_backup_restore_infra_ready_timeout: 20m
4040
cifmw_backup_restore_ctlplane_ready_timeout: 10m
4141
cifmw_backup_restore_strict_restore: true
42-
cifmw_backup_restore_rabbitmq_clusters:
43-
- rabbitmq
44-
- rabbitmq-cell1
4542
cifmw_backup_restore_restore_content: data
4643
cifmw_backup_restore_pin_pvcs: false
4744

docs/dev/backup-restore/role/cifmw_backup_restore/tasks/restore.yml

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,21 +290,37 @@
290290
# ========================================
291291
# Step 8: Restore RabbitMQ Credentials
292292
# ========================================
293+
- name: Get RabbitMQ cluster names from OpenStackControlPlane
294+
ansible.builtin.shell: |
295+
oc get openstackcontrolplane -n {{ cifmw_backup_restore_namespace }} \
296+
-o jsonpath='{.items[0].spec.rabbitmq.templates}' | jq -r 'keys[]'
297+
register: _rabbitmq_cluster_names
298+
changed_when: false
299+
300+
- name: Set RabbitMQ cluster list
301+
ansible.builtin.set_fact:
302+
_rabbitmq_clusters: "{{ _rabbitmq_cluster_names.stdout_lines if _rabbitmq_cluster_names.stdout != '' else [] }}"
303+
304+
- name: Print RabbitMQ clusters found
305+
ansible.builtin.debug:
306+
msg: "RabbitMQ clusters: {{ _rabbitmq_clusters if _rabbitmq_clusters | length > 0 else 'none' }}"
307+
293308
- name: Render RabbitMQ restore resources
294309
ansible.builtin.template:
295310
src: "{{ item.src }}"
296311
dest: "{{ _cifmw_backup_restore_rendered_dir.path }}/{{ item.dest }}"
297312
vars:
298313
resources_backup_name: "{{ _resources_backup_name }}"
299314
restore_suffix: "{{ _restore_suffix }}"
300-
rabbitmq_clusters: "{{ cifmw_backup_restore_rabbitmq_clusters }}"
315+
rabbitmq_clusters: "{{ _rabbitmq_clusters }}"
301316
loop:
302317
- src: 06b-resource-modifiers-tmp.yaml.j2
303318
dest: 06b-resource-modifiers-tmp.yaml
304319
- src: 06b-restore-rabbitmq-secrets.yaml.j2
305320
dest: 06b-restore-rabbitmq-secrets.yaml
306321
- src: 06c-rabbitmquser.yaml.j2
307322
dest: 06c-rabbitmquser.yaml
323+
when: _rabbitmq_clusters | length > 0
308324

309325
- name: Delete temp namespace if it exists
310326
ansible.builtin.shell: |
@@ -350,7 +366,7 @@
350366
oc extract secret/${SOURCE_SECRET} -n openstack-restore-tmp --to=${TMPDIR} --confirm
351367
oc create secret generic ${TARGET_SECRET} -n {{ cifmw_backup_restore_namespace }} --from-file=${TMPDIR}
352368
rm -rf ${TMPDIR}
353-
loop: "{{ cifmw_backup_restore_rabbitmq_clusters }}"
369+
loop: "{{ _rabbitmq_clusters }}"
354370
changed_when: true
355371

356372
- name: Delete temp namespace

0 commit comments

Comments
 (0)