--- - name: "⬇️ Fetch existing Keycloak components for '{{ KEYCLOAK_REALM }}'" shell: > {{ KEYCLOAK_EXEC_KCADM }} get components -r {{ KEYCLOAK_REALM }} --format json register: kc_components_without_ldap changed_when: false - name: "🔍 Resolve LDAP federation component ids for '{{ KEYCLOAK_REALM }}'" set_fact: ldap_cmp_ids_without_ldap: >- {{ ( kc_components_without_ldap.stdout | kcadm_json | selectattr('providerType','equalto','org.keycloak.storage.UserStorageProvider') | selectattr('providerId','equalto','ldap') | map(attribute='id') | list ) }} changed_when: false - name: "🧹 Delete LDAP federation components from realm '{{ KEYCLOAK_REALM }}'" shell: > {{ KEYCLOAK_EXEC_KCADM }} delete components/{{ item }} -r {{ KEYCLOAK_REALM }} loop: "{{ ldap_cmp_ids_without_ldap }}" loop_control: label: "{{ item }}" register: kc_delete_ldap_components changed_when: kc_delete_ldap_components.rc == 0 failed_when: kc_delete_ldap_components.rc != 0