--- # NOTE (leseb): we must check each inventory group so this will work with collocated daemons - name: inspect ceph mon container command: "{{ container_binary }} inspect {{ ceph_mon_container_stat.stdout }}" changed_when: false register: ceph_mon_inspect when: - mon_group_name in group_names - ceph_mon_container_stat.get('rc') == 0 - ceph_mon_container_stat.get('stdout_lines', [])|length != 0 - name: inspect ceph osd container command: "{{ container_binary }} inspect {{ ceph_osd_container_stat.stdout }}" changed_when: false register: ceph_osd_inspect when: - osd_group_name in group_names - ceph_osd_container_stat.get('rc') == 0 - ceph_osd_container_stat.get('stdout_lines', [])|length != 0 - name: inspect ceph mds container command: "{{ container_binary }} inspect {{ ceph_mds_container_stat.stdout }}" changed_when: false register: ceph_mds_inspect when: - mds_group_name in group_names - ceph_mds_container_stat.get('rc') == 0 - ceph_mds_container_stat.get('stdout_lines', [])|length != 0 - name: inspect ceph rgw container command: "{{ container_binary }} inspect {{ ceph_rgw_container_stat.stdout }}" changed_when: false register: ceph_rgw_inspect when: - rgw_group_name in group_names - ceph_rgw_container_stat.get('rc') == 0 - ceph_rgw_container_stat.get('stdout_lines', [])|length != 0 - name: inspect ceph mgr container command: "{{ container_binary }} inspect {{ ceph_mgr_container_stat.stdout }}" changed_when: false register: ceph_mgr_inspect when: - mgr_group_name in group_names - ceph_mgr_container_stat.get('rc') == 0 - ceph_mgr_container_stat.get('stdout_lines', [])|length != 0 - name: inspect ceph rbd mirror container command: "{{ container_binary }} inspect {{ ceph_rbd_mirror_container_stat.stdout }}" changed_when: false register: ceph_rbd_mirror_inspect when: - rbdmirror_group_name in group_names - ceph_rbd_mirror_container_stat.get('rc') == 0 - ceph_rbd_mirror_container_stat.get('stdout_lines', [])|length != 0 - name: inspect ceph nfs container command: "{{ container_binary }} inspect {{ ceph_nfs_container_stat.stdout }}" changed_when: false register: ceph_nfs_inspect when: - nfs_group_name in group_names - ceph_nfs_container_stat.get('rc') == 0 - ceph_nfs_container_stat.get('stdout_lines', [])|length != 0 # NOTE(leseb): using failed_when to handle the case when the image is not present yet - name: "inspecting ceph mon container image before pulling" command: "{{ container_binary }} inspect {{ (ceph_mon_inspect.stdout | from_json)[0].Image }}" changed_when: false failed_when: false register: ceph_mon_container_inspect_before_pull when: - mon_group_name in group_names - ceph_mon_inspect.get('rc') == 0 - name: "inspecting ceph osd container image before pulling" command: "{{ container_binary }} inspect {{ (ceph_osd_inspect.stdout | from_json)[0].Image }}" changed_when: false failed_when: false register: ceph_osd_container_inspect_before_pull when: - osd_group_name in group_names - ceph_osd_inspect.get('rc') == 0 - name: "inspecting ceph rgw container image before pulling" command: "{{ container_binary }} inspect {{ (ceph_rgw_inspect.stdout | from_json)[0].Image }}" changed_when: false failed_when: false register: ceph_rgw_container_inspect_before_pull when: - rgw_group_name in group_names - ceph_rgw_inspect.get('rc') == 0 - name: "inspecting ceph mds container image before pulling" command: "{{ container_binary }} inspect {{ (ceph_mds_inspect.stdout | from_json)[0].Image }}" changed_when: false failed_when: false register: ceph_mds_container_inspect_before_pull when: - mds_group_name in group_names - ceph_mds_inspect.get('rc') == 0 - name: "inspecting ceph mgr container image before pulling" command: "{{ container_binary }} inspect {{ (ceph_mgr_inspect.stdout | from_json)[0].Image }}" changed_when: false failed_when: false register: ceph_mgr_container_inspect_before_pull when: - mgr_group_name in group_names - ceph_mgr_inspect.get('rc') == 0 - name: "inspecting ceph rbd mirror container image before pulling" command: "{{ container_binary }} inspect {{ (ceph_rbd_mirror_inspect.stdout | from_json)[0].Image }}" changed_when: false failed_when: false register: ceph_rbd_mirror_container_inspect_before_pull when: - rbdmirror_group_name in group_names - ceph_rbd_mirror_inspect.get('rc') == 0 - name: "inspecting ceph nfs container image before pulling" command: "{{ container_binary }} inspect {{ (ceph_nfs_inspect.stdout | from_json)[0].Image }}" changed_when: false failed_when: false register: ceph_nfs_container_inspect_before_pull when: - nfs_group_name in group_names - ceph_nfs_inspect.get('rc') == 0 - name: set_fact ceph_mon_image_repodigest_before_pulling set_fact: ceph_mon_image_repodigest_before_pulling: "{{ (ceph_mon_container_inspect_before_pull.stdout | from_json)[0].RepoDigests[0].split('@')[1] }}" when: - mon_group_name in group_names - ceph_mon_container_inspect_before_pull.get('rc') == 0 - name: set_fact ceph_osd_image_repodigest_before_pulling set_fact: ceph_osd_image_repodigest_before_pulling: "{{ (ceph_osd_container_inspect_before_pull.stdout | from_json)[0].RepoDigests[0].split('@')[1] }}" when: - osd_group_name in group_names - ceph_osd_container_inspect_before_pull.get('rc') == 0 - name: set_fact ceph_mds_image_repodigest_before_pulling set_fact: ceph_mds_image_repodigest_before_pulling: "{{ (ceph_mds_container_inspect_before_pull.stdout | from_json)[0].RepoDigests[0].split('@')[1] }}" when: - mds_group_name in group_names - ceph_mds_container_inspect_before_pull.get('rc') == 0 - name: set_fact ceph_rgw_image_repodigest_before_pulling set_fact: ceph_rgw_image_repodigest_before_pulling: "{{ (ceph_rgw_container_inspect_before_pull.stdout | from_json)[0].RepoDigests[0].split('@')[1] }}" when: - rgw_group_name in group_names - ceph_rgw_container_inspect_before_pull.get('rc') == 0 - name: set_fact ceph_mgr_image_repodigest_before_pulling set_fact: ceph_mgr_image_repodigest_before_pulling: "{{ (ceph_mgr_container_inspect_before_pull.stdout | from_json)[0].RepoDigests[0].split('@')[1] }}" when: - mgr_group_name in group_names - ceph_mgr_container_inspect_before_pull.get('rc') == 0 - name: set_fact ceph_rbd_mirror_image_repodigest_before_pulling set_fact: ceph_rbd_mirror_image_repodigest_before_pulling: "{{ (ceph_rbd_mirror_container_inspect_before_pull.stdout | from_json)[0].RepoDigests[0].split('@')[1] }}" when: - rbdmirror_group_name in group_names - ceph_rbd_mirror_container_inspect_before_pull.get('rc') == 0 - name: set_fact ceph_nfs_image_repodigest_before_pulling set_fact: ceph_nfs_image_repodigest_before_pulling: "{{ (ceph_nfs_container_inspect_before_pull.stdout | from_json)[0].RepoDigests[0].split('@')[1] }}" when: - nfs_group_name in group_names - ceph_nfs_container_inspect_before_pull.get('rc') == 0 - name: "pulling {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} image" command: "{{ timeout_command }} {{ container_binary }} pull {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}" changed_when: false register: docker_image until: docker_image.rc == 0 retries: "{{ docker_pull_retry }}" delay: 10 when: (ceph_docker_dev_image is undefined or not ceph_docker_dev_image | bool) - name: "inspecting {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} image after pulling" command: "{{ container_binary }} inspect {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}" changed_when: false failed_when: false register: image_inspect_after_pull - name: set_fact image_repodigest_after_pulling set_fact: image_repodigest_after_pulling: "{{ (image_inspect_after_pull.stdout | from_json)[0].RepoDigests[0].split('@')[1] }}" when: image_inspect_after_pull.rc == 0 - name: set_fact ceph_mon_image_updated set_fact: ceph_mon_image_updated: "{{ ceph_mon_image_repodigest_before_pulling != image_repodigest_after_pulling }}" changed_when: true notify: restart ceph mons when: - mon_group_name in group_names - ceph_mon_container_inspect_before_pull.get('rc') == 0 - ceph_mon_image_repodigest_before_pulling != image_repodigest_after_pulling - name: set_fact ceph_osd_image_updated set_fact: ceph_osd_image_updated: "{{ ceph_osd_image_repodigest_before_pulling != image_repodigest_after_pulling }}" changed_when: true notify: restart ceph osds when: - osd_group_name in group_names - ceph_osd_container_inspect_before_pull.get('rc') == 0 - ceph_osd_image_repodigest_before_pulling != image_repodigest_after_pulling - name: set_fact ceph_mds_image_updated set_fact: ceph_mds_image_updated: "{{ ceph_mds_image_repodigest_before_pulling != image_repodigest_after_pulling }}" changed_when: true notify: restart ceph mdss when: - mds_group_name in group_names - ceph_mds_container_inspect_before_pull.get('rc') == 0 - ceph_mds_image_repodigest_before_pulling != image_repodigest_after_pulling - name: set_fact ceph_rgw_image_updated set_fact: ceph_rgw_image_updated: "{{ ceph_rgw_image_repodigest_before_pulling != image_repodigest_after_pulling }}" changed_when: true notify: restart ceph rgws when: - rgw_group_name in group_names - ceph_rgw_container_inspect_before_pull.get('rc') == 0 - ceph_rgw_image_repodigest_before_pulling != image_repodigest_after_pulling - name: set_fact ceph_mgr_image_updated set_fact: ceph_mgr_image_updated: "{{ ceph_mgr_image_repodigest_before_pulling != image_repodigest_after_pulling }}" changed_when: true notify: restart ceph mgrs when: - mgr_group_name in group_names - ceph_mgr_container_inspect_before_pull.get('rc') == 0 - ceph_mgr_image_repodigest_before_pulling != image_repodigest_after_pulling - name: set_fact ceph_rbd_mirror_image_updated set_fact: ceph_rbd_mirror_image_updated: "{{ ceph_rbd_mirror_image_repodigest_before_pulling != image_repodigest_after_pulling }}" changed_when: true notify: restart ceph rbdmirrors when: - rbdmirror_group_name in group_names - ceph_rbd_mirror_container_inspect_before_pull.get('rc') == 0 - ceph_rbd_mirror_image_repodigest_before_pulling != image_repodigest_after_pulling - name: set_fact ceph_nfs_image_updated set_fact: ceph_nfs_image_updated: "{{ ceph_nfs_image_repodigest_before_pulling != image_repodigest_after_pulling }}" changed_when: true notify: restart ceph nfss when: - nfs_group_name in group_names - ceph_nfs_container_inspect_before_pull.get('rc') == 0 - ceph_nfs_image_repodigest_before_pulling != image_repodigest_after_pulling - name: export local ceph dev image command: > {{ container_binary }} save -o "/tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar" "{{ ceph_docker_username }}/{{ ceph_docker_imagename }}:{{ ceph_docker_image_tag }}" delegate_to: localhost when: (ceph_docker_dev_image is defined and ceph_docker_dev_image) run_once: true - name: copy ceph dev image file copy: src: "/tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar" dest: "/tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar" when: (ceph_docker_dev_image is defined and ceph_docker_dev_image | bool) - name: load ceph dev image command: "{{ container_binary }} load -i /tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar" when: (ceph_docker_dev_image is defined and ceph_docker_dev_image | bool) - name: remove tmp ceph dev image file file: name: "/tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar" state: absent when: (ceph_docker_dev_image is defined and ceph_docker_dev_image | bool)