diff --git a/roles/network_plugin/calico/defaults/main.yml b/roles/network_plugin/calico/defaults/main.yml
index 8d0759ffb230401236f77e144cee4eeda681bf97..0f59b21d59ac5b1e1cb8c12d91d0518882f72b79 100644
--- a/roles/network_plugin/calico/defaults/main.yml
+++ b/roles/network_plugin/calico/defaults/main.yml
@@ -7,9 +7,13 @@ ipip: false
 
 # cloud_provider can only be set to 'gce' or 'aws'
 # cloud_provider:
+
 calicoctl_image_repo: calico/ctl
 calicoctl_image_tag: "{{ calico_version }}"
 
+calico_node_image_repo: calico/node
+calico_node_image_tag: "{{ calico_version }}"
+
 # Set to true if your Hyperkube has all required components to run
 # calico. This is required in order to run canalized calico.
 use_hyperkube_cni: false
diff --git a/roles/network_plugin/calico/templates/calico-node.service.j2 b/roles/network_plugin/calico/templates/calico-node.service.j2
index cd4f286794dfd7e0468587f83aecabb1b235e4d3..a7f7e4bab302e6ba25218f6c1f705ddfefdb6eb1 100644
--- a/roles/network_plugin/calico/templates/calico-node.service.j2
+++ b/roles/network_plugin/calico/templates/calico-node.service.j2
@@ -8,9 +8,9 @@ Wants=docker.socket etcd-proxy.service
 User=root
 PermissionsStartOnly=true
 {% if inventory_hostname in groups['kube-node'] and peer_with_router|default(false)%}
-ExecStart={{ bin_dir }}/calicoctl node --ip={{ip | default(ansible_default_ipv4.address) }} --as={{ local_as }} --detach=false
+ExecStart={{ bin_dir }}/calicoctl node --ip={{ip | default(ansible_default_ipv4.address) }} --as={{ local_as }} --detach=false --node-image={{ calico_node_image_repo }}:{{ calico_node_image_tag }}
 {%     else %}
-ExecStart={{ bin_dir }}/calicoctl node --ip={{ip | default(ansible_default_ipv4.address) }} --detach=false
+ExecStart={{ bin_dir }}/calicoctl node --ip={{ip | default(ansible_default_ipv4.address) }} --detach=false --node-image={{ calico_node_image_repo }}:{{ calico_node_image_tag }}
 {%     endif %}
 Restart=always
 RestartSec=10s