diff --git a/roles/kubernetes/control-plane/meta/main.yml b/roles/kubernetes/control-plane/meta/main.yml
index f3cd01a6430a118c77be5ee77f096ef67b48c0dc..2657006e0206c56ea22ce7cc9a5cdd298bdde0a2 100644
--- a/roles/kubernetes/control-plane/meta/main.yml
+++ b/roles/kubernetes/control-plane/meta/main.yml
@@ -4,3 +4,8 @@ dependencies:
     when: kube_token_auth
     tags:
       - k8s-secrets
+  - role: adduser
+    user: "{{ addusers.etcd }}"
+    when:
+      - etcd_deployment_type == "kubeadm"
+      - not (ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk", "ClearLinux"] or is_fedora_coreos)
diff --git a/roles/kubernetes/control-plane/tasks/kubeadm-etcd.yml b/roles/kubernetes/control-plane/tasks/kubeadm-etcd.yml
index 1e97ac24064e077c8a5bb25fc322c4e6b1057949..ae47354527a505182186ba3a460eaeef27e92fbe 100644
--- a/roles/kubernetes/control-plane/tasks/kubeadm-etcd.yml
+++ b/roles/kubernetes/control-plane/tasks/kubeadm-etcd.yml
@@ -23,3 +23,4 @@
     owner: "{{ etcd_owner }}"
     group: "{{ etcd_owner }}"
     mode: 0700
+  when: etcd_deployment_type == "kubeadm"