diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml
index 36a444675a549405ad48d429414b39f1e688542a..08f45d88e1c7798ed6a2a8e681b04b1bc72af373 100644
--- a/roles/kubernetes/preinstall/tasks/main.yml
+++ b/roles/kubernetes/preinstall/tasks/main.yml
@@ -48,8 +48,8 @@
 
 - name: check cloud_provider value
   fail:
-    msg: "If set the 'cloud_provider' var must be set either to 'gce', 'aws' or 'openstack'"
-  when: cloud_provider is defined and cloud_provider not in ['gce', 'aws', 'openstack']
+    msg: "If set the 'cloud_provider' var must be set either to 'generic', gce', 'aws' or 'openstack'"
+  when: cloud_provider is defined and cloud_provider not in ['generic', 'gce', 'aws', 'openstack']
 
 - include: openstack-credential-check.yml
   when: cloud_provider is defined and cloud_provider == 'openstack'
@@ -78,10 +78,17 @@
         ansible_distribution_major_version > 21
   changed_when: False
 
+- name: Check if epel-release-7-5.noarch is installed
+  command: rpm -q epel-release-7-5.noarch
+  register: epel_check
+  when: ansible_distribution in ["CentOS","RedHat"] and
+        ansible_distribution_major_version >= 7
+
 - name: Install epel-release on RedHat/CentOS
   command: rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
   when: ansible_distribution in ["CentOS","RedHat"] and
-        ansible_distribution_major_version >= 7
+        ansible_distribution_major_version >= 7 and
+        epel_check.stdout.find('is not installed') != -1
   changed_when: False
 
 - name: Install packages requirements