From e378f4fb1459ea70d8a57a975900010bbeb1afb8 Mon Sep 17 00:00:00 2001
From: ant31 <2t.antoine@gmail.com>
Date: Mon, 28 Dec 2015 22:02:30 +0100
Subject: [PATCH] Install calico-plugin before running calico

---
 roles/download/defaults/main.yml        |  3 ++-
 roles/download/tasks/calico.yml         |  6 ++++++
 roles/kubernetes/node/tasks/install.yml | 13 +++++++++++++
 roles/network_plugin/tasks/main.yml     |  2 +-
 4 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml
index eee11e2e9..0a2b3a177 100644
--- a/roles/download/defaults/main.yml
+++ b/roles/download/defaults/main.yml
@@ -7,9 +7,10 @@ kubectl_checksum: "01b9bea18061a27b1cf30e34fd8ab45cfc096c9a9d57d0ed21072abb40dd3
 kubelet_checksum: "62191c66f2d670dd52ddf1d88ef81048977abf1ffaa95ee6333299447eb6a482"
 
 calico_version: v0.13.0
+calico_plugin_version: v0.7.0
 
 etcd_download_url: "https://github.com/coreos/etcd/releases/download"
 flannel_download_url: "https://github.com/coreos/flannel/releases/download"
 kube_download_url: "https://storage.googleapis.com/kubernetes-release/release/{{ kube_version }}/bin/linux/amd64"
 calico_download_url: "https://github.com/Metaswitch/calico-docker/releases/download"
-
+calico_plugin_download_url: "https://github.com/projectcalico/calico-kubernetes/releases/download/{{calico_plugin_version}}/calico_kubernetes"
diff --git a/roles/download/tasks/calico.yml b/roles/download/tasks/calico.yml
index b6d506fe2..9fa82cac1 100644
--- a/roles/download/tasks/calico.yml
+++ b/roles/download/tasks/calico.yml
@@ -19,3 +19,9 @@
   when: not c_tar.stat.exists
   register: dl_calico
   delegate_to: "{{ groups['kube-master'][0] }}"
+
+
+- name: Download calico-kubernetes-plugin
+  local_action: get_url
+    url="{{calico_plugin_download_url}}"
+    dest="{{ local_release_dir }}/calico/bin/calico"
diff --git a/roles/kubernetes/node/tasks/install.yml b/roles/kubernetes/node/tasks/install.yml
index 6c0a75470..190b2d1c7 100644
--- a/roles/kubernetes/node/tasks/install.yml
+++ b/roles/kubernetes/node/tasks/install.yml
@@ -11,3 +11,16 @@
      mode=0755
   notify:
     - restart kubelet
+
+- name: Calico-plugin | Directory
+  file: path=/usr/libexec/kubernetes/kubelet-plugins/net/exec/calico/ state=directory
+  when: kube_network_plugin == "calico"
+
+- name: Calico-plugin | Binary
+  copy:
+    src={{ local_release_dir }}/calico/bin/calico
+    dest=/usr/libexec/kubernetes/kubelet-plugins/net/exec/calico/calico
+    mode=0755
+  when: kube_network_plugin == "calico"
+  notify:
+    - restart kubelet
\ No newline at end of file
diff --git a/roles/network_plugin/tasks/main.yml b/roles/network_plugin/tasks/main.yml
index 68363b53c..a5e4c1f59 100644
--- a/roles/network_plugin/tasks/main.yml
+++ b/roles/network_plugin/tasks/main.yml
@@ -2,7 +2,7 @@
 - name: "Test if network plugin is defined"
   fail: msg="ERROR, One network_plugin variable must be defined (Flannel or Calico)"
   when: ( kube_network_plugin is defined and kube_network_plugin == "calico" and kube_network_plugin == "flannel" ) or
-        kube_network_plugin is not defined 
+        kube_network_plugin is not defined
 
 - name: Write network-environment
   template: src=network-environment.j2 dest=/etc/network-environment mode=640
-- 
GitLab