diff --git a/roles/kubernetes-apps/policy_controller/calico/defaults/main.yml b/roles/kubernetes-apps/policy_controller/calico/defaults/main.yml
index a872b5be3c2cf8d792f6011bc6edb58110e3f5fa..93d12c901353196ff441b1d1882199a1316e0a15 100644
--- a/roles/kubernetes-apps/policy_controller/calico/defaults/main.yml
+++ b/roles/kubernetes-apps/policy_controller/calico/defaults/main.yml
@@ -8,6 +8,3 @@ calico_policy_controller_memory_requests: 64M
 # SSL
 calico_cert_dir: "/etc/calico/certs"
 canal_cert_dir: "/etc/canal/certs"
-
-# Datastore type
-calico_datastore: "etcd"
diff --git a/roles/kubespray-defaults/defaults/main.yaml b/roles/kubespray-defaults/defaults/main.yaml
index d68196f79a42971b8a1e3ddc2e3d709e273e2854..27d2ed7e78dd329d5f7fde8c042fdcc543474023 100644
--- a/roles/kubespray-defaults/defaults/main.yaml
+++ b/roles/kubespray-defaults/defaults/main.yaml
@@ -144,6 +144,9 @@ peer_with_calico_rr: "{{ 'calico-rr' in groups and groups['calico-rr']|length >
 # Set to false to disable calico-upgrade
 calico_upgrade_enabled: true
 
+# Choose data store type for calico: "etcd" or "kdd" (kubernetes datastore)
+calico_datastore: "etcd"
+
 # Kubernetes internal network for services, unused block of space.
 kube_service_addresses: 10.233.0.0/18
 
diff --git a/roles/network_plugin/calico/defaults/main.yml b/roles/network_plugin/calico/defaults/main.yml
index d7108a4add23b93441652a82ebfaee12b85823dc..43f1c1e161a2de7dd8fa70f18bdda7d5af60b7b8 100644
--- a/roles/network_plugin/calico/defaults/main.yml
+++ b/roles/network_plugin/calico/defaults/main.yml
@@ -67,7 +67,8 @@ kube_etcd_cert_file: node-{{ inventory_hostname }}.pem
 kube_etcd_key_file: node-{{ inventory_hostname }}-key.pem
 
 # Choose data store type for calico: "etcd" or "kdd" (kubernetes datastore)
-calico_datastore: "etcd"
+# The default value calico_datastore: "etcd" is set in role kubespray-default
+
 # Use typha (only with kdd)
 typha_enabled: false
 # Number of typha replicas