diff --git a/roles/kubernetes/preinstall/tasks/growpart-centos-7.yml b/roles/kubernetes/preinstall/tasks/growpart-centos-7.yml
new file mode 100644
index 0000000000000000000000000000000000000000..506589760fdd0e15bb8fa4c2ff3a735da24a77f3
--- /dev/null
+++ b/roles/kubernetes/preinstall/tasks/growpart-centos-7.yml
@@ -0,0 +1,23 @@
+---
+
+- name: install growpart
+  package: name=cloud-utils-growpart state=latest
+
+- name: check if growpart needs to be run
+  command: growpart -N /dev/sda 1
+  failed_when: False
+  changed_when: "'NOCHANGE:' not in growpart_needed.stdout"
+  register: growpart_needed
+
+- name: check fs type
+  command: file -Ls /dev/sda1
+  changed_when: False
+  register: fs_type
+
+- name: run growpart
+  command: growpart /dev/sda 1
+  when: growpart_needed.changed
+
+- name: run xfs_growfs
+  command: xfs_growfs /dev/sda1
+  when: growpart_needed.changed and 'XFS' in fs_type.stdout
\ No newline at end of file
diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml
index fd8a808a367947b65de511bce21ed81b20beae35..5f266233909371a011883acd8ae900b37639c09d 100644
--- a/roles/kubernetes/preinstall/tasks/main.yml
+++ b/roles/kubernetes/preinstall/tasks/main.yml
@@ -180,3 +180,9 @@
 
 - include: resolvconf.yml
   tags: [bootstrap-os, resolvconf]
+  
+- include: growpart-centos-7.yml
+  when: ansible_distribution in ["CentOS","RedHat"] and
+        ansible_distribution_major_version >= 7
+  tags: bootstrap-os
+