Skip to content

Commit 9a41903

Browse files
stuggiclaude
andcommitted
[b/r] Extract RabbitMQUser CR creation into template
Move inline RabbitMQUser CR creation from shell to a Jinja2 template (06c-rabbitmquser.yaml.j2), consistent with all other restore steps. The secret existence check remains as a pre-flight warning in the playbook. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 5220f3d commit 9a41903

2 files changed

Lines changed: 49 additions & 26 deletions

File tree

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

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -637,34 +637,34 @@
637637
oc delete namespace openstack-restore-tmp --wait=false
638638
changed_when: true
639639

640-
- name: Create RabbitMQUser CRs for restored credentials
641-
ansible.builtin.shell: |
642-
CLUSTER_NAME="{{ item }}"
643-
RESTORED_SECRET_NAME="${CLUSTER_NAME}-restored-user"
644-
645-
if ! oc get secret "${RESTORED_SECRET_NAME}" -n {{ openstack_namespace }} &>/dev/null; then
646-
echo "WARNING: Secret ${RESTORED_SECRET_NAME} not found - skipping"
647-
exit 0
640+
- name: Check restored RabbitMQ secrets exist
641+
ansible.builtin.shell: |
642+
MISSING=""
643+
for CLUSTER in {{ rabbitmq_clusters | join(' ') }}; do
644+
SECRET="${CLUSTER}-restored-user"
645+
if ! oc get secret "${SECRET}" -n {{ openstack_namespace }} &>/dev/null; then
646+
MISSING="${MISSING} ${SECRET}"
647+
fi
648+
done
649+
if [ -n "${MISSING}" ]; then
650+
echo "WARNING: Missing restored secrets:${MISSING}" >&2
648651
fi
652+
changed_when: false
653+
failed_when: false
649654

650-
cat <<EOF | oc apply -f -
651-
apiVersion: rabbitmq.openstack.org/v1beta1
652-
kind: RabbitMQUser
653-
metadata:
654-
name: ${CLUSTER_NAME}-restored-user
655-
namespace: {{ openstack_namespace }}
656-
spec:
657-
rabbitmqClusterName: ${CLUSTER_NAME}
658-
secret: ${RESTORED_SECRET_NAME}
659-
tags:
660-
- administrator
661-
permissions:
662-
configure: ".*"
663-
read: ".*"
664-
write: ".*"
665-
EOF
666-
echo "Created RabbitMQUser CR for ${CLUSTER_NAME}"
667-
loop: "{{ rabbitmq_clusters }}"
655+
- name: Render RabbitMQUser CRs
656+
ansible.builtin.template:
657+
src: "{{ playbook_dir }}/templates/06c-rabbitmquser.yaml.j2"
658+
dest: "{{ rendered_dir.path }}/06c-rabbitmquser.yaml"
659+
660+
- name: "Next: Create RabbitMQUser CRs"
661+
ansible.builtin.debug:
662+
msg: "{{ lookup('file', rendered_dir.path + '/06c-rabbitmquser.yaml').splitlines() }}"
663+
when: not (auto_ack | bool)
664+
665+
- name: Apply RabbitMQUser CRs
666+
ansible.builtin.shell: |
667+
oc apply -f {{ rendered_dir.path }}/06c-rabbitmquser.yaml
668668
changed_when: true
669669

670670
- name: Wait for RabbitMQUser CRs to be ready
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
# Step 8: RabbitMQ Credential Restore - RabbitMQUser CRs
3+
# Creates a RabbitMQUser CR for each RabbitMQ cluster, referencing the
4+
# restored default-user secret with original credentials.
5+
{% for cluster_name in rabbitmq_clusters %}
6+
apiVersion: rabbitmq.openstack.org/v1beta1
7+
kind: RabbitMQUser
8+
metadata:
9+
name: {{ cluster_name }}-restored-user
10+
namespace: {{ openstack_namespace }}
11+
spec:
12+
rabbitmqClusterName: {{ cluster_name }}
13+
secret: {{ cluster_name }}-restored-user
14+
tags:
15+
- administrator
16+
permissions:
17+
configure: ".*"
18+
read: ".*"
19+
write: ".*"
20+
{% if not loop.last %}
21+
---
22+
{% endif %}
23+
{% endfor %}

0 commit comments

Comments
 (0)