Files
computer-playbook/tasks/utils/sync/role.yml
T
kevinveenbirkenbachandClaude Opus 5.5 bbe39a6004 fix(design): load the proxy handlers before a role sync runs its role
make compose-role-sync marks every shared service as converged, so the
proxy role never runs ahead of the app role and its handlers stay
unknown until the app role includes its stack. A task that notifies
reload-openresty before that point aborted the sync with "The requested
handler 'reload-openresty' was not found" whenever it reported a
change; web-app-keycloak deploys its logout status panel that way.

The sync now loads the handlers of svc-prx-openresty first.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-05 23:09:16 +02:00

40 lines
1.3 KiB
YAML

---
- name: 📂 Include Token Store
ansible.builtin.include_role:
name: sys-token-store
- name: 🔒 Skip the stack-wide service stop that only the destructor stage undoes
ansible.builtin.set_fact:
run_once_sys_service: true
- name: 🔒 Treat every shared service of the running stack as converged
ansible.builtin.set_fact:
"{{ 'run_once_' ~ (service_item.role | replace('-', '_')) }}": true
loop: >-
{{
query('service_registry', 'ordered', roles_dir=(lookup('path_absolute', 'roles')))
| first
| rejectattr('role', 'equalto', sync_application_id)
| list
}}
loop_control:
loop_var: service_item
label: "{{ service_item.id }}"
- name: 🎛️ Load the proxy handlers an app role may notify before its stack
ansible.builtin.include_tasks: "{{ lookup('path_absolute', 'tasks/utils/load/handlers.yml') }}"
vars:
handler_role_name: svc-prx-openresty
- name: "🔧 Run the role of '{{ sync_application_id }}'"
ansible.builtin.include_role:
name: "{{ sync_application_id }}"
- name: 🚿 Flush the handlers of the role
ansible.builtin.meta: flush_handlers
- name: "▶️ Run the Playwright spec of '{{ sync_application_id }}'"
ansible.builtin.include_role:
name: test-e2e-playwright
when: sync_playwright | bool