---
+# NOTE (leseb): we must check each inventory group so this will work with collocated daemons
+- name: inspect ceph mon container
+ command: "docker 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: "docker 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: "docker 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: "docker 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: "docker 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: "docker 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: "docker 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_docker_registry}}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} image before pulling"
- command: "docker inspect {{ ceph_docker_registry}}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
+- name: "inspecting ceph mon container image before pulling"
+ command: "docker 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: "docker 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: "docker 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: "docker 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: "docker 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: "docker inspect {{ (ceph_rbd_mirror_inspect.stdout | from_json)[0].Image }}"
changed_when: false
failed_when: false
- register: container_inspect_before_pull
+ 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: "docker 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 repodigest_before_pulling
+- name: set_fact ceph_mon_image_repodigest_before_pulling
set_fact:
- repodigest_before_pulling: "{{ (container_inspect_before_pull.stdout | from_json)[0].RepoDigests[0] }}"
+ ceph_mon_image_repodigest_before_pulling: "{{ (ceph_mon_container_inspect_before_pull.stdout | from_json)[0].RepoDigests[0].split('@')[1] }}"
when:
- - container_inspect_before_pull.rc == 0
+ - 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 {{ docker_pull_timeout }} docker pull {{ ceph_docker_registry}}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
- name: "inspecting {{ ceph_docker_registry}}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} image after pulling"
command: "docker inspect {{ ceph_docker_registry}}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
failed_when: false
- register: container_inspect_after_pull
+ register: image_inspect_after_pull
-- name: set_fact repodigest_after_pulling
+- name: set_fact image_repodigest_after_pulling
set_fact:
- repodigest_after_pulling: "{{ (container_inspect_after_pull.stdout | from_json)[0].RepoDigests[0] }}"
+ image_repodigest_after_pulling: "{{ (image_inspect_after_pull.stdout | from_json)[0].RepoDigests[0].split('@')[1] }}"
when:
- - container_inspect_after_pull.rc == 0
+ - image_inspect_after_pull.rc == 0
-- name: set_fact is_image_updated
+- name: set_fact ceph_mon_image_updated
set_fact:
- is_image_updated: "{{ repodigest_before_pulling == repodigest_after_pulling }}"
+ 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:
- - container_inspect_before_pull.rc == 0
- - repodigest_before_pulling == repodigest_after_pulling
+ - 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
local_action: