diff --git a/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2
index 7961ac36fb4dcba2eae336695db66a1b1e08cbef..1df850dbf4e378f0c19299bffcd63287cf9710d6 100644
--- a/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2
+++ b/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2
@@ -35,6 +35,8 @@ spec:
 {% if cloud_provider is defined and cloud_provider == "openstack" %}
     - --cloud-provider={{ cloud_provider }}
     - --cloud-config={{ kube_config_dir }}/cloud_config
+{% elif cloud_provider is defined %}
+    - --cloud-provider={{ cloud_provider }}
 {% endif %}
     - 2>&1 >> {{ kube_log_dir }}/kube-apiserver.log
     volumeMounts:
diff --git a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2
index 32eeca0b4bb131668042284934d71eb9b08af8a0..0195e5eaba6189184bb6d07afd2fa7fd8098ee44 100644
--- a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2
+++ b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2
@@ -17,9 +17,11 @@ spec:
     - --root-ca-file={{ kube_cert_dir }}/ca.pem
     - --enable-hostpath-provisioner={{ kube_hostpath_dynamic_provisioner }}
     - --v={{ kube_log_level | default('2') }}
-{% if cloud_provider is defined and cloud_provider == "openstack" %}
-    - --cloud-provider=openstack
+{% if cloud_provider is defined and cloud_provider == "openstack"%}
+    - --cloud-provider={{cloud_provider}}
     - --cloud-config={{ kube_config_dir }}/cloud_config
+{% elif cloud_provider is defined %}
+    - --cloud-provider={{cloud_provider}}
 {% endif %}
     livenessProbe:
       httpGet:
diff --git a/roles/kubernetes/node/templates/kubelet.j2 b/roles/kubernetes/node/templates/kubelet.j2
index bab27305ec336a8eb9f28b980c0c5b42227e3a7c..7eb76de2debe37ff064f5977925ce2fa756ae4ad 100644
--- a/roles/kubernetes/node/templates/kubelet.j2
+++ b/roles/kubernetes/node/templates/kubelet.j2
@@ -33,8 +33,9 @@ DOCKER_SOCKET="--docker-endpoint=unix:/var/run/weave/weave.sock"
 KUBE_ALLOW_PRIV="--allow-privileged=true"
 {% if cloud_provider is defined and cloud_provider == "openstack" %}
 KUBELET_CLOUDPROVIDER="--cloud-provider={{ cloud_provider }} --cloud-config={{ kube_config_dir }}/cloud_config"
+{% elif cloud_provider is defined %}
+KUBELET_CLOUDPROVIDER="--cloud-provider={{ cloud_provider }}"
 {% else %}
-{# TODO: gce and aws don't need the cloud provider to be set? #}
 KUBELET_CLOUDPROVIDER=""
 {% endif %}
 {% if ansible_service_mgr in ["sysvinit","upstart"] %}