diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml
index 8a90f9ce69566ddda5acef5958de7b554b43e624..e6eeea09ad9f6dc1a22434db7be2db1cb0242a29 100644
--- a/roles/download/defaults/main.yml
+++ b/roles/download/defaults/main.yml
@@ -3,3 +3,11 @@ etcd_download_url: https://github.com/coreos/etcd/releases/download
 flannel_download_url: https://github.com/coreos/flannel/releases/download
 kube_download_url: https://github.com/GoogleCloudPlatform/kubernetes/releases/download
 calico_download_url: https://github.com/Metaswitch/calico-docker/releases/download
+
+etcd_version: v2.2.1
+flannel_version: 0.5.3
+
+kube_version: v1.1.1
+kube_sha1: 0eac7460fcf7d175592466603f6b9c2a076fb7b2
+
+calico_version: v0.11.0
diff --git a/roles/download/vars/main.yml b/roles/download/vars/main.yml
deleted file mode 100644
index 85e1e62402d3b9b4d2f332b26ce0ee43c00d8f67..0000000000000000000000000000000000000000
--- a/roles/download/vars/main.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-etcd_version: v2.2.1
-flannel_version: 0.5.3
-
-kube_version: v1.1.1
-kube_sha1: 0eac7460fcf7d175592466603f6b9c2a076fb7b2
-
-calico_version: v0.10.0
diff --git a/roles/kubernetes/common/defaults/main.yml b/roles/kubernetes/common/defaults/main.yml
index f25f2b8027642306130d5436efe3431d4edf1a5f..09df9be6bd6a76764dfcdbb90d0cfbd7a821cc3d 100644
--- a/roles/kubernetes/common/defaults/main.yml
+++ b/roles/kubernetes/common/defaults/main.yml
@@ -30,6 +30,7 @@ kube_cert_group: kube-cert
 
 dns_domain: "{{ cluster_name }}"
 
+kube_proxy_mode: iptables
 # IP address of the DNS server.
 # Kubernetes will create a pod with several containers, serving as the DNS
 # server and expose it under this IP address. The IP address must be from
diff --git a/roles/kubernetes/master/templates/proxy.j2 b/roles/kubernetes/master/templates/proxy.j2
index fa70f06827a8c7a4ea5001f39986a5f8aa9b2186..1dc680e36e326493552ffa21a2b9c46423c63f77 100644
--- a/roles/kubernetes/master/templates/proxy.j2
+++ b/roles/kubernetes/master/templates/proxy.j2
@@ -4,4 +4,4 @@
 # default config should be adequate
 
 # Add your own!
-KUBE_PROXY_ARGS="--kubeconfig={{ kube_config_dir }}/proxy.kubeconfig --proxy-mode=iptables"
+KUBE_PROXY_ARGS="--kubeconfig={{ kube_config_dir }}/proxy.kubeconfig --proxy-mode={{kube_proxy_mode}}"
diff --git a/roles/kubernetes/node/templates/proxy.j2 b/roles/kubernetes/node/templates/proxy.j2
index 0b336915dc862b0bd16de2c90c02d7d6712ed1b3..f529d7d5e514fda97c425d2d8e1876776a4d631a 100644
--- a/roles/kubernetes/node/templates/proxy.j2
+++ b/roles/kubernetes/node/templates/proxy.j2
@@ -3,4 +3,4 @@
 
 # default config should be adequate
 [Service]
-Environment="KUBE_PROXY_ARGS=--kubeconfig={{ kube_config_dir }}/proxy.kubeconfig --proxy-mode=iptables"
+Environment="KUBE_PROXY_ARGS=--kubeconfig={{ kube_config_dir }}/proxy.kubeconfig --proxy-mode={{kube_proxy_mode}}"
diff --git a/roles/network_plugin/templates/calico/calico-node.service.j2 b/roles/network_plugin/templates/calico/calico-node.service.j2
index b2c41a04e606d02f7acbca73d14ce2cb7bc6b009..0d20205f5644b0f99947d40c645d89c08ec6e8ea 100644
--- a/roles/network_plugin/templates/calico/calico-node.service.j2
+++ b/roles/network_plugin/templates/calico/calico-node.service.j2
@@ -11,7 +11,7 @@ ExecStartPre={{ bin_dir }}/calicoctl checksystem --fix
 {%    if peer_with_router|default(false) %}
 ExecStart={{ bin_dir }}/calicoctl node --ip=${DEFAULT_IPV4} --as={{ local_as }} --kubernetes
 {%     else %}
-ExecStart={{ bin_dir }}/calicoctl node --ip=${DEFAULT_IPV4} --kubernetes --kube-plugin-version=v0.5.0
+ExecStart={{ bin_dir }}/calicoctl node --ip=${DEFAULT_IPV4} --kubernetes --kube-plugin-version=v0.6.0
 {%     endif %}
 {% else %}
 ExecStart={{ bin_dir }}/calicoctl node --ip=${DEFAULT_IPV4}