--- - name: create list secondary_realms set_fact: secondary_realms: "{{ secondary_realms | default([]) | union([{ 'realm': item.rgw_realm, 'zonegroup': item.rgw_zonegroup, 'zone': item.rgw_zone, 'endpoint': item.endpoint, 'system_access_key': item.system_access_key, 'system_secret_key': item.system_secret_key, 'is_master': item.rgw_zonemaster | default(hostvars[item.host]['rgw_zonemaster']) }]) }}" loop: "{{ rgw_instances_all }}" run_once: true when: not item.rgw_zonemaster | default(hostvars[item.host]['rgw_zonemaster']) | bool - name: ensure connection to primary cluster from mon uri: url: "{{ item.endpoint }}" delegate_to: "{{ groups[mon_group_name][0] }}" run_once: true loop: "{{ secondary_realms }}" when: secondary_realms is defined - name: ensure connection to primary cluster from rgw uri: url: "{{ item.endpoint }}" loop: "{{ rgw_instances }}" when: not item.rgw_zonemaster | default(rgw_zonemaster) | bool - name: fetch the realm(s) command: "{{ container_exec_cmd }} radosgw-admin realm pull --cluster={{ cluster }} --rgw-realm={{ item.realm }} --url={{ item.endpoint }} --access-key={{ item.system_access_key }} --secret={{ item.system_secret_key }}" delegate_to: "{{ groups[mon_group_name][0] }}" run_once: true loop: "{{ secondary_realms }}" when: secondary_realms is defined - name: get the period(s) command: "{{ container_exec_cmd }} radosgw-admin period get --cluster={{ cluster }} --rgw-realm={{ item.realm }}" delegate_to: "{{ groups[mon_group_name][0] }}" run_once: true loop: "{{ secondary_realms }}" when: secondary_realms is defined - name: create the zone command: "{{ container_exec_cmd }} radosgw-admin zone create --cluster={{ cluster }} --rgw-realm={{ item.item.realm }} --rgw-zonegroup={{ item.item.zonegroup }} --rgw-zone={{ item.item.zone }} --access-key={{ item.item.system_access_key }} --secret={{ item.item.system_secret_key }} {{ '--default' if zones | length == 1 else '' }}" delegate_to: "{{ groups[mon_group_name][0] }}" run_once: true loop: "{{ zonecheck.results }}" when: - zones is defined - zones | length > 0 - not item.item.is_master | bool - "'No such file or directory' in item.stderr" - name: add endpoints to their zone(s) command: "{{ container_exec_cmd }} radosgw-admin zone modify --cluster={{ cluster }} --rgw-realm={{ item.realm }} --rgw-zonegroup={{ item.zonegroup }} --rgw-zone={{ item.zone }} --endpoints {{ item.endpoints }}" loop: "{{ zone_endpoints_list }}" delegate_to: "{{ groups[mon_group_name][0] }}" run_once: true when: - zone_endpoints_list is defined - not item.is_master | bool - name: update period for zone creation command: "{{ container_exec_cmd }} radosgw-admin --cluster={{ cluster }} --rgw-realm={{ item.realm }} --rgw-zonegroup={{ item.zonegroup }} --rgw-zone={{ item.zone }} period update --commit" delegate_to: "{{ groups[mon_group_name][0] }}" run_once: true loop: "{{ zone_endpoints_list }}" when: - zone_endpoints_list is defined - not item.is_master | bool