From 49d921cf9178b0457699b00ed090c4e5b9d07049 Mon Sep 17 00:00:00 2001
From: nico-netminded <47831870+nico-netminded@users.noreply.github.com>
Date: Mon, 22 Jul 2019 09:50:53 +0200
Subject: [PATCH] Restart canal after scale or upgrade. Just like PR#4531, but
 for canal (#4992)

---
 roles/network_plugin/canal/handlers/main.yml | 14 ++++++++++++++
 roles/network_plugin/canal/tasks/main.yml    |  2 ++
 2 files changed, 16 insertions(+)
 create mode 100644 roles/network_plugin/canal/handlers/main.yml

diff --git a/roles/network_plugin/canal/handlers/main.yml b/roles/network_plugin/canal/handlers/main.yml
new file mode 100644
index 000000000..7769b99b3
--- /dev/null
+++ b/roles/network_plugin/canal/handlers/main.yml
@@ -0,0 +1,14 @@
+---
+- name: reset_canal_cni
+  command: /bin/true
+  notify:
+    - delete 10-canal.conflist
+    - delete canal-node containers
+
+- name: delete 10-canal.conflist
+  file:
+    path: /etc/canal/10-canal.conflist
+    state: absent
+
+- name: delete canal-node containers
+  shell: "docker ps -af name=k8s_POD_canal-node* -q | xargs --no-run-if-empty docker rm -f"
diff --git a/roles/network_plugin/canal/tasks/main.yml b/roles/network_plugin/canal/tasks/main.yml
index 3de079b5f..7595a2a75 100644
--- a/roles/network_plugin/canal/tasks/main.yml
+++ b/roles/network_plugin/canal/tasks/main.yml
@@ -4,6 +4,8 @@
     src: "cni-canal.conflist.j2"
     dest: "/etc/cni/net.d/{% if calico_version is version('v3.3.0', '>=') %}canal.conflist.template{% else %}10-canal.conflist{% endif %}"
     owner: kube
+  register: canal_conflist
+  notify: reset_canal_cni
 
 - name: Canal | Create canal certs directory
   file:
-- 
GitLab