diff --git a/cluster.yml b/cluster.yml
index bbb6813dab0d7e0d469e2b1346710fd3cd04a2f5..98bafe9780580c51fad2b2f30590cef499e1986d 100644
--- a/cluster.yml
+++ b/cluster.yml
@@ -26,7 +26,6 @@
   any_errors_fatal: "{{ any_errors_fatal | default(true) }}"
   roles:
     - { role: kubespray-defaults}
-    - { role: kernel-upgrade, tags: kernel-upgrade, when: kernel_upgrade is defined and kernel_upgrade }
     - { role: kubernetes/preinstall, tags: preinstall }
     - { role: docker, tags: docker }
     - role: rkt
diff --git a/inventory/group_vars/all.yml b/inventory/group_vars/all.yml
index 74b738e16e958e381b7d8c66ca16a852aa47d360..dd67969bda43e693c6ce5310b06b76c7db5e66ad 100644
--- a/inventory/group_vars/all.yml
+++ b/inventory/group_vars/all.yml
@@ -114,9 +114,6 @@ bin_dir: /usr/local/bin
 ## as a backend). Options are "script" or "vault"
 #cert_management: script
 
-## Please specify true if you want to perform a kernel upgrade
-kernel_upgrade: false
-
 # Set to true to allow pre-checks to fail and continue deployment
 #ignore_assert_errors: false
 
diff --git a/roles/kernel-upgrade/defaults/main.yml b/roles/kernel-upgrade/defaults/main.yml
deleted file mode 100644
index 688e6e01855281d7b41029baee6311f037fc9b74..0000000000000000000000000000000000000000
--- a/roles/kernel-upgrade/defaults/main.yml
+++ /dev/null
@@ -1,8 +0,0 @@
----
-elrepo_key_url: 'https://www.elrepo.org/RPM-GPG-KEY-elrepo.org'
-elrepo_rpm: elrepo-release-7.0-3.el7.elrepo.noarch.rpm
-elrepo_mirror: http://www.elrepo.org
-
-elrepo_url: '{{elrepo_mirror}}/{{elrepo_rpm}}'
-
-elrepo_kernel_package: "kernel-lt"
diff --git a/roles/kernel-upgrade/tasks/centos-7.yml b/roles/kernel-upgrade/tasks/centos-7.yml
deleted file mode 100644
index a9de6b56f4a7cffd9169ade6578cda5e3d017eaf..0000000000000000000000000000000000000000
--- a/roles/kernel-upgrade/tasks/centos-7.yml
+++ /dev/null
@@ -1,33 +0,0 @@
----
-
-- name: install ELRepo key
-  rpm_key:
-    state: present
-    key: '{{ elrepo_key_url }}'
-
-- name: install elrepo repository
-  yum:
-    name: '{{elrepo_url}}'
-    state: present
-
-- name: upgrade kernel
-  yum:
-    name: "{{elrepo_kernel_package}}"
-    state: present
-    enablerepo: elrepo-kernel
-  register: upgrade
-
-- name: change default grub entry
-  lineinfile:
-    dest: '/etc/default/grub'
-    regexp: '^GRUB_DEFAULT=.*'
-    line: 'GRUB_DEFAULT=0'
-  when: upgrade.changed
-  register: grub_entry
-
-- name: re-generate grub-config
-  command: grub2-mkconfig -o /boot/grub2/grub.cfg
-  when: upgrade.changed and grub_entry.changed
-
-- include: reboot.yml
-  when: upgrade.changed
\ No newline at end of file
diff --git a/roles/kernel-upgrade/tasks/main.yml b/roles/kernel-upgrade/tasks/main.yml
deleted file mode 100644
index a16f0f37bbd42261300f52148f91b7bbf8909e5e..0000000000000000000000000000000000000000
--- a/roles/kernel-upgrade/tasks/main.yml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-
-- include: centos-7.yml
-  when: ansible_distribution in ["CentOS","RedHat"] and
-        ansible_distribution_major_version >= 7 and not is_atomic
\ No newline at end of file
diff --git a/roles/kernel-upgrade/tasks/reboot.yml b/roles/kernel-upgrade/tasks/reboot.yml
deleted file mode 100644
index 87748f3f6c9e1e49e6047092931f0a1ea24da5b0..0000000000000000000000000000000000000000
--- a/roles/kernel-upgrade/tasks/reboot.yml
+++ /dev/null
@@ -1,40 +0,0 @@
----
-
-# Reboot the machine gets more complicated as we want to support bastion hosts. A simple wait_for task would not work
-# as we can not directly reach the hosts (except the bastion). In case a basion is used, we first check for it to come
-# back. After it is back, we check for all the hosts by delegating to the bastion.
-
-- name: Rebooting server
-  shell: nohup bash -c "sleep 5 && shutdown -r now 'Reboot required for updated kernel'" &
-
-- name: Wait for some seconds
-  pause:
-    seconds: 10
-
-- set_fact:
-    is_bastion: "{{ inventory_hostname == 'bastion' }}"
-    wait_for_delegate: "localhost"
-
-- set_fact:
-    wait_for_delegate: "{{hostvars['bastion']['ansible_ssh_host']}}"
-  when: "'bastion' in groups['all']"
-
-- name: wait for bastion to come back
-  wait_for:
-    host: "{{ ansible_ssh_host }}"
-    port: 22
-    delay: 10
-    timeout: 300
-  become: false
-  delegate_to: localhost
-  when: is_bastion
-
-- name: waiting for server to come back (using bastion if necessary)
-  wait_for:
-    host: "{{ ansible_ssh_host }}"
-    port: 22
-    delay: 10
-    timeout: 300
-  become: false
-  delegate_to: "{{ wait_for_delegate }}"
-  when: not is_bastion
diff --git a/scale.yml b/scale.yml
index 49445cabcdf7c3848968857e8f223d64a60a59c3..6a6096bb1fd7e11abd08d06e4e7e0ad3fe863ef1 100644
--- a/scale.yml
+++ b/scale.yml
@@ -22,7 +22,6 @@
   any_errors_fatal: "{{ any_errors_fatal | default(true) }}"
   roles:
     - { role: kubespray-defaults}
-    - { role: kernel-upgrade, tags: kernel-upgrade, when: kernel_upgrade is defined and kernel_upgrade }
     - { role: kubernetes/preinstall, tags: preinstall }
     - { role: docker, tags: docker }
     - role: rkt
diff --git a/upgrade-cluster.yml b/upgrade-cluster.yml
index 28261027fb32535d17d5de9d309ede3dcb496db0..50a856ac01dd5ea696278e7d9bc07cf3f85563c6 100644
--- a/upgrade-cluster.yml
+++ b/upgrade-cluster.yml
@@ -26,7 +26,6 @@
   any_errors_fatal: "{{ any_errors_fatal | default(true) }}"
   roles:
     - { role: kubespray-defaults}
-    - { role: kernel-upgrade, tags: kernel-upgrade, when: kernel_upgrade is defined and kernel_upgrade }
     - { role: kubernetes/preinstall, tags: preinstall }
     - { role: docker, tags: docker }
     - role: rkt