diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml
index eee11e2e942e044767bfe686ec789324c05be33a..0a2b3a177ea1b4564d9a7d840e456d9dc14cc467 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 b6d506fe2a9f0d3a4b622854e51fdcda6b50afb5..9fa82cac10d2bb4340c49977db6b8edfd7d44c63 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 6c0a75470e9369df0611110784981ae5183e8b47..190b2d1c7a3fc4b6b158e9001c85ed51ea9e0de0 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 68363b53cee841a2c25ad303eca400ca10bbd63d..a5e4c1f59525aa905ff276ce068d10f1091e277c 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