]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
docker2podman: make images pulling optional
authorGuillaume Abrioux <gabrioux@redhat.com>
Mon, 22 Jun 2020 12:35:16 +0000 (14:35 +0200)
committerDimitri Savineau <savineau.dimitri@gmail.com>
Mon, 22 Jun 2020 18:19:44 +0000 (14:19 -0400)
This commit makes the images pulling skipped if podman isn't installed
on the machine.

In OSP context, the podman installation is done later in the workflow,
it means all `podman pull` commands will fail.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1849559
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit 37b20b6525a217008b07624d40b1ac95577c7fe3)

infrastructure-playbooks/docker-to-podman.yml

index 458cee99adad831f5082f8b1183d0428705d5c31..123cba60e3dc251280a3d6f7ee91e4b41a16e236 100644 (file)
       tags: with_pkg
       when: not is_atomic | bool
 
-    - name: "pulling {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} image from docker daemon"
-      command: "{{ timeout_command }} {{ container_binary }} pull docker-daemon:{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
+    - name: check podman presence
+      command: command -v podman
+      register: podman_presence
       changed_when: false
-      register: pull_image
-      until: pull_image.rc == 0
-      retries: "{{ docker_pull_retry }}"
-      delay: 10
-      when: inventory_hostname in groups.get(mon_group_name, []) or
-            inventory_hostname in groups.get(osd_group_name, []) or
-            inventory_hostname in groups.get(mds_group_name, []) or
-            inventory_hostname in groups.get(rgw_group_name, []) or
-            inventory_hostname in groups.get(mgr_group_name, []) or
-            inventory_hostname in groups.get(rbdmirror_group_name, []) or
-            inventory_hostname in groups.get(iscsi_gw_group_name, []) or
-            inventory_hostname in groups.get(nfs_group_name, [])
-
-    - name: "pulling alertmanager/grafana/prometheus images from docker daemon"
-      command: "{{ timeout_command }} {{ container_binary }} pull docker-daemon:{{ item }}"
-      changed_when: false
-      register: pull_image
-      until: pull_image.rc == 0
-      retries: "{{ docker_pull_retry }}"
-      delay: 10
-      loop:
-        - "{{ alertmanager_container_image }}"
-        - "{{ grafana_container_image }}"
-        - "{{ prometheus_container_image }}"
-      when:
-        - dashboard_enabled | bool
-        - inventory_hostname in groups.get(grafana_server_group_name, [])
-
-    - name: "pulling {{ node_exporter_container_image }} image from docker daemon"
-      command: "{{ timeout_command }} {{ container_binary }} pull docker-daemon:{{ node_exporter_container_image }}"
-      changed_when: false
-      register: pull_image
-      until: pull_image.rc == 0
-      retries: "{{ docker_pull_retry }}"
-      delay: 10
-      when: dashboard_enabled | bool
+      failed_when: false
+
+    - name: pulling images from docker daemon
+      when: podman_presence.rc == 0
+      block:
+        - name: "pulling {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} image from docker daemon"
+          command: "{{ timeout_command }} {{ container_binary }} pull docker-daemon:{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
+          changed_when: false
+          register: pull_image
+          until: pull_image.rc == 0
+          retries: "{{ docker_pull_retry }}"
+          delay: 10
+          when: inventory_hostname in groups.get(mon_group_name, []) or
+                inventory_hostname in groups.get(osd_group_name, []) or
+                inventory_hostname in groups.get(mds_group_name, []) or
+                inventory_hostname in groups.get(rgw_group_name, []) or
+                inventory_hostname in groups.get(mgr_group_name, []) or
+                inventory_hostname in groups.get(rbdmirror_group_name, []) or
+                inventory_hostname in groups.get(iscsi_gw_group_name, []) or
+                inventory_hostname in groups.get(nfs_group_name, [])
+
+        - name: "pulling alertmanager/grafana/prometheus images from docker daemon"
+          command: "{{ timeout_command }} {{ container_binary }} pull docker-daemon:{{ item }}"
+          changed_when: false
+          register: pull_image
+          until: pull_image.rc == 0
+          retries: "{{ docker_pull_retry }}"
+          delay: 10
+          loop:
+            - "{{ alertmanager_container_image }}"
+            - "{{ grafana_container_image }}"
+            - "{{ prometheus_container_image }}"
+          when:
+            - dashboard_enabled | bool
+            - inventory_hostname in groups.get(grafana_server_group_name, [])
+
+        - name: "pulling {{ node_exporter_container_image }} image from docker daemon"
+          command: "{{ timeout_command }} {{ container_binary }} pull docker-daemon:{{ node_exporter_container_image }}"
+          changed_when: false
+          register: pull_image
+          until: pull_image.rc == 0
+          retries: "{{ docker_pull_retry }}"
+          delay: 10
+          when: dashboard_enabled | bool
 
     - import_role:
         name: ceph-mon