feat: pre-pull ovn-controller image
Closes-Bug: ATMOSPHERE-634
Depends-On: I0b15142aabab38fafab829a16cee0297b749e6e8
Change-Id: I2661648efde71b38be3c2ed32ef3375e8c7dae51
(cherry picked from commit bc6a06bfbb4133f6e8295ad5953bd2fe8c3d86d6)
diff --git a/playbooks/openstack.yml b/playbooks/openstack.yml
index ffd5322..abd5843 100644
--- a/playbooks/openstack.yml
+++ b/playbooks/openstack.yml
@@ -79,7 +79,7 @@
tags:
- iscsi
-- name: Deploy Open vSwitch
+- name: Deploy SDN
hosts: controllers:computes
become: true
gather_facts: false
@@ -88,13 +88,13 @@
tags:
- openvswitch
-- hosts: controllers[0]
- become: true
- roles:
- role: ovn
tags:
- ovn
+- hosts: controllers[0]
+ become: true
+ roles:
- role: libvirt
tags:
- libvirt
diff --git a/releasenotes/notes/prepull-ovn-controller-62f8a216e8b41c9f.yaml b/releasenotes/notes/prepull-ovn-controller-62f8a216e8b41c9f.yaml
new file mode 100644
index 0000000..6d01476
--- /dev/null
+++ b/releasenotes/notes/prepull-ovn-controller-62f8a216e8b41c9f.yaml
@@ -0,0 +1,5 @@
+---
+features:
+ - The ``ovn-controller`` image is now being pre-pulled on the nodes prior
+ to the Helm chart being deployed. This will help reduce the time it takes
+ to switch over to the new version of the ``ovn-controller`` image.
diff --git a/roles/ovn/tasks/main.yml b/roles/ovn/tasks/main.yml
index b3d8f76..69430e8 100644
--- a/roles/ovn/tasks/main.yml
+++ b/roles/ovn/tasks/main.yml
@@ -38,6 +38,21 @@
- _ovn_controller_ds_info.resources | length > 0
- "'type' in _ovn_controller_ds_info.resources[0].spec.selector.matchLabels"
+- name: Cache ovn-controller image before install or upgrade
+ block:
+ - name: Pull ovn-controller image
+ ansible.builtin.command: crictl pull {{ atmosphere_images['ovn_controller'] }}
+ register: pull_result
+ changed_when: false
+
+ - name: Verify ovn-controller image pull
+ ansible.builtin.assert:
+ that:
+ - pull_result.rc == 0
+ - "'Image is up to date' in pull_result.stdout or 'Image pulled' in pull_result.stdout"
+ fail_msg: "Failed to pull ovn-controller image"
+ success_msg: "Successfully pulled ovn-controller image"
+
- name: Deploy Helm chart
run_once: true
when: atmosphere_network_backend == 'ovn'