Skip to content

Commit 2073edf

Browse files
stuggiclaude
andcommitted
[b/r] Discover RabbitMQ clusters dynamically from OpenStackControlPlane
Replace hardcoded rabbitmq_clusters variable with dynamic discovery from spec.rabbitmq.templates keys in the OpenStackControlPlane CR. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 6aaf0e8 commit 2073edf

2 files changed

Lines changed: 21 additions & 7 deletions

File tree

docs/dev/backup-restore/restore/06c-manual-rabbitmq-restore.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,11 @@ oc wait --for=jsonpath='{.status.phase}'=Completed \
2828
### 2. Copy old credentials to target namespace
2929

3030
```bash
31-
# For each RabbitMQ cluster (adjust cluster names for your deployment)
32-
for CLUSTER in rabbitmq rabbitmq-cell1; do
31+
# Get RabbitMQ cluster names from the OpenStackControlPlane CR
32+
RABBITMQ_CLUSTERS=$(oc get openstackcontrolplane -n openstack \
33+
-o jsonpath='{.items[0].spec.rabbitmq.templates}' | jq -r 'keys[]')
34+
35+
for CLUSTER in ${RABBITMQ_CLUSTERS}; do
3336
if ! oc get secret "${CLUSTER}-default-user" -n openstack-restore-tmp &>/dev/null; then
3437
echo "Secret ${CLUSTER}-default-user not found in temp namespace - skipping"
3538
continue
@@ -46,7 +49,7 @@ done
4649
### 3. Create RabbitMQUser CRs
4750

4851
```bash
49-
for CLUSTER in rabbitmq rabbitmq-cell1; do
52+
for CLUSTER in ${RABBITMQ_CLUSTERS}; do
5053
RESTORED_SECRET="${CLUSTER}-restored-user"
5154

5255
if ! oc get secret "${RESTORED_SECRET}" -n openstack &>/dev/null; then

docs/dev/backup-restore/restore/restore-openstack.yaml

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444
# infra_ready_timeout: Timeout waiting for infrastructure (default: 20m)
4545
# ctlplane_ready_timeout: Timeout waiting for full control plane (default: 10m)
4646
# strict_restore: Fail on PartiallyFailed restores (default: true)
47-
# rabbitmq_clusters: List of RabbitMQ cluster names (default: [rabbitmq, rabbitmq-cell1])
4847
# restore_content: What to restore from Galera dumps: "data" (default), "grants", or "all"
4948
# data - Restore database data only; operators recreate users/grants with new passwords
5049
# grants - Restore user grants only
@@ -67,9 +66,6 @@
6766
infra_ready_timeout: 20m
6867
ctlplane_ready_timeout: 10m
6968
strict_restore: true
70-
rabbitmq_clusters:
71-
- rabbitmq
72-
- rabbitmq-cell1
7369
auto_ack: false
7470
pin_pvcs: false
7571
restore_content: data
@@ -560,6 +556,21 @@
560556
# ========================================
561557
# Step 8: Restore RabbitMQ Credentials
562558
# ========================================
559+
- name: Get RabbitMQ cluster names from OpenStackControlPlane
560+
ansible.builtin.shell: |
561+
oc get openstackcontrolplane -n {{ openstack_namespace }} \
562+
-o jsonpath='{.items[0].spec.rabbitmq.templates}' | jq -r 'keys[]'
563+
register: rabbitmq_cluster_names
564+
changed_when: false
565+
566+
- name: Set RabbitMQ cluster list
567+
ansible.builtin.set_fact:
568+
rabbitmq_clusters: "{{ rabbitmq_cluster_names.stdout_lines if rabbitmq_cluster_names.stdout != '' else [] }}"
569+
570+
- name: Print RabbitMQ clusters found
571+
ansible.builtin.debug:
572+
msg: "RabbitMQ clusters: {{ rabbitmq_clusters if rabbitmq_clusters | length > 0 else 'none' }}"
573+
563574
- name: Render resource modifier for temp namespace
564575
ansible.builtin.template:
565576
src: "{{ playbook_dir }}/templates/06b-resource-modifiers-tmp.yaml.j2"

0 commit comments

Comments
 (0)