diff --git a/.gitlab-ci/gce.yml b/.gitlab-ci/gce.yml
index 5c0e369f1d5cb48f94c3ad53a4d246f663a6d3c9..0c7c4e70afcc88e5e67770dd4eba63196617d33f 100644
--- a/.gitlab-ci/gce.yml
+++ b/.gitlab-ci/gce.yml
@@ -256,13 +256,6 @@ gce_coreos-kube-router:
   except: ['triggers']
   only: ['master', /^pr-.*$/]
 
-gce_ubuntu-rkt-sep:
-  stage: deploy-gce
-  <<: *gce
-  when: manual
-  except: ['triggers']
-  only: ['master', /^pr-.*$/]
-
 gce_ubuntu-kube-router-sep:
   stage: deploy-special
   <<: *gce
diff --git a/.gitlab-ci/packet.yml b/.gitlab-ci/packet.yml
index 9e6bc9733c389eb468ffe26a3fa61677717bc9f8..b7ed64a46ea14509279b6f9ce29deb157fd6620d 100644
--- a/.gitlab-ci/packet.yml
+++ b/.gitlab-ci/packet.yml
@@ -115,13 +115,6 @@ packet_opensuse-canal:
   except: ['triggers']
   only: ['master', /^pr-.*$/]
 
-packet_ubuntu-rkt-sep:
-  stage: deploy-part2
-  <<: *packet
-  when: manual
-  except: ['triggers']
-  only: ['master', /^pr-.*$/]
-
 packet_ubuntu-kube-router-sep:
   stage: deploy-special
   <<: *packet
diff --git a/README.md b/README.md
index 279069726e92af4570a3d98b9b6e292e31bd1d7c..913d054b549be4e67d8178a10d5428100fe0e894 100644
--- a/README.md
+++ b/README.md
@@ -111,7 +111,6 @@ Supported Components
     -   [kubernetes](https://github.com/kubernetes/kubernetes) v1.14.1
     -   [etcd](https://github.com/coreos/etcd) v3.2.26
     -   [docker](https://www.docker.com/) v18.06 (see note)
-    -   [rkt](https://github.com/rkt/rkt) v1.21.0 (see Note 2)
     -   [cri-o](http://cri-o.io/) v1.11.5 (experimental: see [CRI-O Note](docs/cri-o.md). Only on centos based OS)
 -   Network Plugin
     -   [calico](https://github.com/projectcalico/calico) v3.4.0
@@ -131,11 +130,6 @@ Supported Components
 
 Note: The list of validated [docker versions](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.13.md) was updated to 1.11.1, 1.12.1, 1.13.1, 17.03, 17.06, 17.09, 18.06. kubeadm now properly recognizes Docker 18.09.0 and newer, but still treats 18.06 as the default supported version. The kubelet might break on docker's non-standard version numbering (it no longer uses semantic versioning). To ensure auto-updates don't break your cluster look into e.g. yum versionlock plugin or apt pin).
 
-Note 2: rkt support as docker alternative is limited to control plane (etcd and
-kubelet). Docker is still used for Kubernetes cluster workloads and network
-plugins' related OS services. Also note, only one of the supported network
-plugins can be deployed for a given single cluster.
-
 Requirements
 ------------
 
diff --git a/contrib/vault/roles/vault/tasks/shared/check_vault.yml b/contrib/vault/roles/vault/tasks/shared/check_vault.yml
index 5543fc03843f819bd18ddca2e1b2b8b4a9cdfd59..9cbc71d0b20de06c770a3c09e802915c8eeba431 100644
--- a/contrib/vault/roles/vault/tasks/shared/check_vault.yml
+++ b/contrib/vault/roles/vault/tasks/shared/check_vault.yml
@@ -1,7 +1,7 @@
 ---
 # Stop temporary Vault if it's running (can linger if playbook fails out)
 - name: stop vault-temp container
-  shell: docker stop {{ vault_temp_container_name }} || rkt stop {{ vault_temp_container_name }}
+  shell: docker stop {{ vault_temp_container_name }}
   failed_when: false
   register: vault_temp_stop
   changed_when: vault_temp_stop is succeeded
diff --git a/contrib/vault/roles/vault/templates/rkt.service.j2 b/contrib/vault/roles/vault/templates/rkt.service.j2
deleted file mode 100644
index e92221161c2a356f007e7a765a82dce047b300a3..0000000000000000000000000000000000000000
--- a/contrib/vault/roles/vault/templates/rkt.service.j2
+++ /dev/null
@@ -1,45 +0,0 @@
-[Unit]
-Description=hashicorp vault on rkt
-Documentation=https://github.com/hashicorp/vault
-Wants=network.target
-
-[Service]
-User=root
-Restart=on-failure
-RestartSec=10s
-TimeoutStartSec=5
-LimitNOFILE=40000
-# Container has the following internal mount points:
-#   /vault/file/    # File backend storage location
-#   /vault/logs/    # Log files
-ExecStartPre=-/usr/bin/rkt rm --uuid-file=/var/run/vault.uuid
-
-ExecStart=/usr/bin/rkt run \
-        --insecure-options=image \
-        --volume hosts,kind=host,source=/etc/hosts,readOnly=true \
-        --mount volume=hosts,target=/etc/hosts \
-        --volume=volume-vault-file,kind=host,source=/var/lib/vault \
-        --volume=volume-vault-logs,kind=host,source={{ vault_log_dir }} \
-        --volume=vault-cert-dir,kind=host,source={{ vault_cert_dir }} \
-        --mount=volume=vault-cert-dir,target={{ vault_cert_dir }} \
-        --volume=vault-conf-dir,kind=host,source={{ vault_config_dir }} \
-        --mount=volume=vault-conf-dir,target={{ vault_config_dir }} \
-        --volume=vault-secrets-dir,kind=host,source={{ vault_secrets_dir }} \
-        --mount=volume=vault-secrets-dir,target={{ vault_secrets_dir }} \
-        --volume=vault-roles-dir,kind=host,source={{ vault_roles_dir }} \
-        --mount=volume=vault-roles-dir,target={{ vault_roles_dir }} \
-        --volume=etcd-cert-dir,kind=host,source={{ etcd_cert_dir }} \
-        --mount=volume=etcd-cert-dir,target={{ etcd_cert_dir }} \
-        docker://{{ vault_image_repo }}:{{ vault_image_tag }} \
-        --uuid-file-save=/var/run/vault.uuid \
-        --name={{ vault_container_name }} \
-        --net=host \
-        --caps-retain=CAP_IPC_LOCK \
-        --exec vault -- \
-                server \
-                --config={{ vault_config_dir }}/config.json
-
-ExecStop=-/usr/bin/rkt stop --uuid-file=/var/run/vault.uuid
-
-[Install]
-WantedBy=multi-user.target
diff --git a/contrib/vault/vault.md b/contrib/vault/vault.md
index 014cf02519e7541e0e2350249d523930b75d1bad..e3ba084d13368e6a7f299d0f76a0d3cacc0bacf8 100644
--- a/contrib/vault/vault.md
+++ b/contrib/vault/vault.md
@@ -93,6 +93,6 @@ Potential Work
 - Change the Vault role to not run certain tasks when ``root_token`` and
   ``unseal_keys`` are not present. Alternatively, allow user input for these
   values when missing.
-- Add the ability to start temp Vault with Host, Rkt, or Docker
+- Add the ability to start temp Vault with Host or Docker
 - Add a dynamic way to change out the backend role creation during Bootstrap,
   so other services can be used (such as Consul)
diff --git a/docs/ansible.md b/docs/ansible.md
index f0480543db4a8f8d87905c4afc61c40d69c6c029..25790fa25af904d276e3716d8ee457da3d03e5eb 100644
--- a/docs/ansible.md
+++ b/docs/ansible.md
@@ -70,7 +70,7 @@ The group variables to control main deployment options are located in the direct
 Optional variables are located in the `inventory/sample/group_vars/all.yml`.
 Mandatory variables that are common for at least one role (or a node group) can be found in the
 `inventory/sample/group_vars/k8s-cluster.yml`.
-There are also role vars for docker, rkt, kubernetes preinstall and master roles.
+There are also role vars for docker, kubernetes preinstall and master roles.
 According to the [ansible docs](http://docs.ansible.com/ansible/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable),
 those cannot be overridden from the group vars. In order to override, one should use
 the `-e ` runtime flags (most simple way) or other layers described in the docs.
diff --git a/docs/roadmap.md b/docs/roadmap.md
index f8021b7791dd8be8812788902af300747f655e3d..4be821e28f5a2cdcfcb85c7b2ab6f8a41e8a5f66 100644
--- a/docs/roadmap.md
+++ b/docs/roadmap.md
@@ -2,7 +2,7 @@ Kubespray's roadmap
 =================
 
 ### Self deployment (pull-mode) [#320](https://github.com/kubespray/kubespray/issues/320)
-- the playbook would install and configure docker/rkt and the etcd cluster
+- the playbook would install and configure docker and the etcd cluster
 - the following data would be inserted into etcd: certs,tokens,users,inventory,group_vars.
 - a "kubespray" container would be deployed (kubespray-cli, ansible-playbook)
 - to be discussed, a way to provide the inventory
diff --git a/docs/vars.md b/docs/vars.md
index f24b9d4b8e29b84ca181502199e34f828bfa19b0..55cdae5901f6487e678f286c7fd4e42f53930b3f 100644
--- a/docs/vars.md
+++ b/docs/vars.md
@@ -102,7 +102,7 @@ Stack](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/dns-stack.m
   proxy. Note that no_proxy defaults to all internal cluster IPs and hostnames
   that correspond to each node.
 * *kubelet_deployment_type* - Controls which platform to deploy kubelet on.
-  Available options are ``host``, ``rkt``, and ``docker``. ``docker`` mode
+  Available options are ``host`` and ``docker``. ``docker`` mode
   is unlikely to work on newer releases. Starting with Kubernetes v1.7
   series, this now defaults to ``host``. Before v1.7, the default was Docker.
   This is because of cgroup [issues](https://github.com/kubernetes/kubernetes/issues/43704).
@@ -113,7 +113,7 @@ Stack](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/dns-stack.m
 * *kubelet_cgroup_driver* - Allows manual override of the
   cgroup-driver option for Kubelet. By default autodetection is used
   to match Docker configuration.
-* *kubelet_rotate_certificates* - Auto rotate the kubelet client certificates by requesting new certificates 
+* *kubelet_rotate_certificates* - Auto rotate the kubelet client certificates by requesting new certificates
   from the kube-apiserver when the certificate expiration approaches.
 * *node_labels* - Labels applied to nodes via kubelet --node-labels parameter.
   For example, labels can be set in the inventory as variables or more widely in group_vars.
diff --git a/roles/container-engine/meta/main.yml b/roles/container-engine/meta/main.yml
index 106e4471957a3326bdc0850ebbe7a64045eeae8f..661d6c103b3b65764ce8f60d8161879fc411ecad 100644
--- a/roles/container-engine/meta/main.yml
+++ b/roles/container-engine/meta/main.yml
@@ -7,17 +7,9 @@ dependencies:
       - container-engine
       - crio
 
-  - role: container-engine/rkt
-    when:
-      - container_manager == 'rkt'
-    tags:
-      - container-engine
-      - rkt
-
   - role: container-engine/docker
     when:
-      - container_manager == 'docker' or container_manager == "rkt"
+      - container_manager == 'docker'
     tags:
       - container-engine
       - docker
-      - rkt
diff --git a/roles/container-engine/rkt/defaults/main.yml b/roles/container-engine/rkt/defaults/main.yml
deleted file mode 100644
index c73a6fd77874e1cfaac671ab1ef70003c82659df..0000000000000000000000000000000000000000
--- a/roles/container-engine/rkt/defaults/main.yml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-
-rkt_version: 1.21.0
-rkt_pkg_version: "{{ rkt_version }}-1"
-rkt_download_src: https://github.com/coreos/rkt
-rkt_download_url: "{{ rkt_download_src }}/releases/download/v{{ rkt_version }}"
diff --git a/roles/container-engine/rkt/files/rkt-gc.sh b/roles/container-engine/rkt/files/rkt-gc.sh
deleted file mode 100644
index e260668cf536cc93931e805771715fbc6c4c2b98..0000000000000000000000000000000000000000
--- a/roles/container-engine/rkt/files/rkt-gc.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-rkt gc
diff --git a/roles/container-engine/rkt/tasks/install.yml b/roles/container-engine/rkt/tasks/install.yml
deleted file mode 100644
index 5865293718d3a50201d2d7426eac553559abbc5c..0000000000000000000000000000000000000000
--- a/roles/container-engine/rkt/tasks/install.yml
+++ /dev/null
@@ -1,54 +0,0 @@
----
-- name: gather os specific variables for rkt
-  include_vars: "{{ item }}"
-  with_first_found:
-    - files:
-        - "{{ ansible_distribution|lower }}-{{ ansible_distribution_version|lower|replace('/', '_') }}.yml"
-        - "{{ ansible_distribution|lower }}-{{ ansible_distribution_release }}.yml"
-        - "{{ ansible_distribution|lower }}-{{ ansible_distribution_major_version|lower|replace('/', '_') }}.yml"
-        - "{{ ansible_distribution|lower }}.yml"
-        - "{{ ansible_os_family|lower }}.yml"
-        - defaults.yml
-      paths:
-        - ../vars
-      skip: true
-  tags:
-    - facts
-
-- name: install rkt pkg on ubuntu
-  apt:
-    deb: "{{ rkt_download_url }}/{{ rkt_pkg_name }}"
-    state: present
-  register: rkt_task_result
-  until: rkt_task_result is succeeded
-  retries: 4
-  delay: "{{ retry_stagger | random + 3 }}"
-  when: ansible_os_family == "Debian"
-
-- name: install rkt pkg on fedora
-  dnf:
-    name: rkt
-    state: present
-  when: ansible_distribution == "Fedora"
-
-- name: install rkt pkg on centos
-  yum:
-    pkg: "{{ rkt_download_url }}/{{ rkt_pkg_name }}"
-    state: present
-  register: rkt_task_result
-  until: rkt_task_result is succeeded
-  retries: 4
-  delay: "{{ retry_stagger | random + 3 }}"
-  when:
-    - ansible_os_family == "RedHat"
-    - ansible_distribution != "Fedora"
-
-- name: install rkt pkg on openSUSE
-  zypper:
-    name: "{{ rkt_download_url }}/{{ rkt_pkg_name }}"
-    state: present
-  register: rkt_task_result
-  until: rkt_task_result is succeeded
-  retries: 4
-  delay: "{{ retry_stagger | random + 3 }}"
-  when: ansible_os_family == "Suse"
diff --git a/roles/container-engine/rkt/tasks/main.yml b/roles/container-engine/rkt/tasks/main.yml
deleted file mode 100644
index 00f9e79c4c9573cec41a6fe30abdbecf32c2c181..0000000000000000000000000000000000000000
--- a/roles/container-engine/rkt/tasks/main.yml
+++ /dev/null
@@ -1,13 +0,0 @@
----
-- name: Install rkt
-  import_tasks: install.yml
-  when: not ansible_os_family in ["CoreOS", "Container Linux by CoreOS"]
-
-- name: Set up cron job to do garbage cleanup
-  copy:
-    src: rkt-gc.sh
-    dest: /etc/cron.hourly/rkt-gc.sh
-    owner: root
-    group: root
-    mode: 0750
-  when: not ansible_os_family in ["CoreOS", "Container Linux by CoreOS"]
diff --git a/roles/container-engine/rkt/vars/debian.yml b/roles/container-engine/rkt/vars/debian.yml
deleted file mode 100644
index 9cfffe5c948c2e0d05fdee3c0d6fea905674241e..0000000000000000000000000000000000000000
--- a/roles/container-engine/rkt/vars/debian.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-rkt_pkg_name: "rkt_{{ rkt_pkg_version }}_amd64.deb"
diff --git a/roles/container-engine/rkt/vars/fedora.yml b/roles/container-engine/rkt/vars/fedora.yml
deleted file mode 100644
index 13149e8fbfeac5d9e4f793588d0fcb0f56b7d72a..0000000000000000000000000000000000000000
--- a/roles/container-engine/rkt/vars/fedora.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-rkt_pkg_name: "rkt-{{ rkt_pkg_version }}.x86_64.rpm"
diff --git a/roles/container-engine/rkt/vars/redhat.yml b/roles/container-engine/rkt/vars/redhat.yml
deleted file mode 100644
index 13149e8fbfeac5d9e4f793588d0fcb0f56b7d72a..0000000000000000000000000000000000000000
--- a/roles/container-engine/rkt/vars/redhat.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-rkt_pkg_name: "rkt-{{ rkt_pkg_version }}.x86_64.rpm"
diff --git a/roles/container-engine/rkt/vars/suse.yml b/roles/container-engine/rkt/vars/suse.yml
deleted file mode 100644
index 13149e8fbfeac5d9e4f793588d0fcb0f56b7d72a..0000000000000000000000000000000000000000
--- a/roles/container-engine/rkt/vars/suse.yml
+++ /dev/null
@@ -1,2 +0,0 @@
----
-rkt_pkg_name: "rkt-{{ rkt_pkg_version }}.x86_64.rpm"
diff --git a/roles/download/templates/kubeadm-images.yaml.j2 b/roles/download/templates/kubeadm-images.yaml.j2
index e86864ef2e9b15deca92929482f32c1dd952a10e..8a91577bddf112d1c453188b143a531fe77f5537 100644
--- a/roles/download/templates/kubeadm-images.yaml.j2
+++ b/roles/download/templates/kubeadm-images.yaml.j2
@@ -8,8 +8,6 @@ kind: InitConfiguration
 nodeRegistration:
 {% if container_manager == 'crio' %}
   criSocket: /var/run/crio/crio.sock
-{% elif container_manager == 'rkt' %}
-  criSocket: /var/run/rkt.sock
 {% else %}
   criSocket: /var/run/dockershim.sock
 {% endif %}
@@ -41,8 +39,6 @@ etcd:
 nodeRegistration:
 {% if container_manager == 'crio' %}
   criSocket: /var/run/crio/crio.sock
-{% elif container_manager == 'rkt' %}
-  criSocket: /var/run/rkt.sock
 {% else %}
   criSocket: /var/run/dockershim.sock
 {% endif %}
diff --git a/roles/etcd/tasks/install_rkt.yml b/roles/etcd/tasks/install_rkt.yml
deleted file mode 100644
index 2f693b37115d91a1fc32abfad2d6a2df7c6aebc0..0000000000000000000000000000000000000000
--- a/roles/etcd/tasks/install_rkt.yml
+++ /dev/null
@@ -1,30 +0,0 @@
----
-- name: Trust etcd container
-  command: >-
-    /usr/bin/rkt trust
-    --skip-fingerprint-review
-    --root
-    https://quay.io/aci-signing-key
-  register: etcd_rkt_trust_result
-  until: etcd_rkt_trust_result.rc == 0
-  retries: 4
-  delay: "{{ retry_stagger | random + 3 }}"
-  changed_when: false
-  environment: "{{proxy_env}}"
-  when: etcd_cluster_setup
-
-- name: Install | Copy etcdctl binary from rkt container
-  command: >-
-    /usr/bin/rkt run
-    --volume=bin-dir,kind=host,source={{ bin_dir}},readOnly=false
-    --mount=volume=bin-dir,target=/host/bin
-    {{ etcd_image_repo }}:{{ etcd_image_tag }}
-    --name=etcdctl-binarycopy
-    --exec=/bin/cp -- /usr/local/bin/etcdctl /host/bin/etcdctl
-  register: etcd_task_result
-  until: etcd_task_result.rc == 0
-  retries: 4
-  delay: "{{ retry_stagger | random + 3 }}"
-  changed_when: false
-  environment: "{{proxy_env}}"
-  when: etcd_cluster_setup
diff --git a/roles/etcd/templates/etcd-events-rkt.service.j2 b/roles/etcd/templates/etcd-events-rkt.service.j2
deleted file mode 100644
index 7886a038b8477f0a45eb32431e165cdf76870d1c..0000000000000000000000000000000000000000
--- a/roles/etcd/templates/etcd-events-rkt.service.j2
+++ /dev/null
@@ -1,31 +0,0 @@
-[Unit]
-Description=etcd events rkt wrapper
-Documentation=https://github.com/coreos/etcd
-Wants=network.target
-
-[Service]
-Restart=on-failure
-RestartSec=10s
-TimeoutStartSec=0
-LimitNOFILE=40000
-
-ExecStart=/usr/bin/rkt run \
---uuid-file-save=/var/run/etcd-events.uuid \
---volume hosts,kind=host,source=/etc/hosts,readOnly=true \
---mount volume=hosts,target=/etc/hosts \
---volume=etc-ssl-certs,kind=host,source=/etc/ssl/certs,readOnly=true \
---mount=volume=etc-ssl-certs,target=/etc/ssl/certs \
---volume=etcd-cert-dir,kind=host,source={{ etcd_cert_dir }},readOnly=true \
---mount=volume=etcd-cert-dir,target={{ etcd_cert_dir }} \
---volume=etcd-data-dir,kind=host,source={{ etcd_events_data_dir }},readOnly=false \
---mount=volume=etcd-data-dir,target={{ etcd_events_data_dir }} \
---set-env-file=/etc/etcd-events.env \
---stage1-from-dir=stage1-fly.aci \
-{{ etcd_image_repo }}:{{ etcd_image_tag }} \
---name={{ etcd_member_name | default("etcd-events") }}
-
-ExecStartPre=-/usr/bin/rkt rm --uuid-file=/var/run/etcd-events.uuid
-ExecStop=-/usr/bin/rkt stop --uuid-file=/var/run/etcd-events.uuid
-
-[Install]
-WantedBy=multi-user.target
diff --git a/roles/etcd/templates/etcd-rkt.service.j2 b/roles/etcd/templates/etcd-rkt.service.j2
deleted file mode 100644
index 2e9e8be2839323432674032586d33a1d1082f8cf..0000000000000000000000000000000000000000
--- a/roles/etcd/templates/etcd-rkt.service.j2
+++ /dev/null
@@ -1,31 +0,0 @@
-[Unit]
-Description=etcd rkt wrapper
-Documentation=https://github.com/coreos/etcd
-Wants=network.target
-
-[Service]
-Restart=on-failure
-RestartSec=10s
-TimeoutStartSec=0
-LimitNOFILE=40000
-
-ExecStart=/usr/bin/rkt run \
---uuid-file-save=/var/run/etcd.uuid \
---volume hosts,kind=host,source=/etc/hosts,readOnly=true \
---mount volume=hosts,target=/etc/hosts \
---volume=etc-ssl-certs,kind=host,source=/etc/ssl/certs,readOnly=true \
---mount=volume=etc-ssl-certs,target=/etc/ssl/certs \
---volume=etcd-cert-dir,kind=host,source={{ etcd_cert_dir }},readOnly=true \
---mount=volume=etcd-cert-dir,target={{ etcd_cert_dir }} \
---volume=etcd-data-dir,kind=host,source={{ etcd_data_dir }},readOnly=false \
---mount=volume=etcd-data-dir,target={{ etcd_data_dir }} \
---set-env-file=/etc/etcd.env \
---stage1-from-dir=stage1-fly.aci \
-{{ etcd_image_repo }}:{{ etcd_image_tag }} \
---name={{ etcd_member_name | default("etcd") }}
-
-ExecStartPre=-/usr/bin/rkt rm --uuid-file=/var/run/etcd.uuid
-ExecStop=-/usr/bin/rkt stop --uuid-file=/var/run/etcd.uuid
-
-[Install]
-WantedBy=multi-user.target
diff --git a/roles/kubernetes/kubeadm/templates/kubeadm-client.conf.v1alpha2.j2 b/roles/kubernetes/kubeadm/templates/kubeadm-client.conf.v1alpha2.j2
index 18420a5ac51cd936e0713d36f774fe92e9a91b7f..3c613ec7de63b89343cc3b8b29260bde45887869 100644
--- a/roles/kubernetes/kubeadm/templates/kubeadm-client.conf.v1alpha2.j2
+++ b/roles/kubernetes/kubeadm/templates/kubeadm-client.conf.v1alpha2.j2
@@ -18,8 +18,6 @@ nodeRegistration:
   name: {{ kube_override_hostname }}
 {% if container_manager == 'crio' %}
   criSocket: /var/run/crio/crio.sock
-{% elif container_manager == 'rkt' %}
-  criSocket: /var/run/rkt.sock
 {% else %}
   criSocket: /var/run/dockershim.sock
 {% endif %}
diff --git a/roles/kubernetes/kubeadm/templates/kubeadm-client.conf.v1alpha3.j2 b/roles/kubernetes/kubeadm/templates/kubeadm-client.conf.v1alpha3.j2
index dfcdfa6b0fbad684a64cd5fd0bea964958c2545b..18c3f146aa80645e48ea5f554a276aa914b9f7da 100644
--- a/roles/kubernetes/kubeadm/templates/kubeadm-client.conf.v1alpha3.j2
+++ b/roles/kubernetes/kubeadm/templates/kubeadm-client.conf.v1alpha3.j2
@@ -18,8 +18,6 @@ nodeRegistration:
   name: {{ kube_override_hostname }}
 {% if container_manager == 'crio' %}
   criSocket: /var/run/crio/crio.sock
-{% elif container_manager == 'rkt' %}
-  criSocket: /var/run/rkt.sock
 {% else %}
   criSocket: /var/run/dockershim.sock
 {% endif %}
diff --git a/roles/kubernetes/kubeadm/templates/kubeadm-client.conf.v1beta1.j2 b/roles/kubernetes/kubeadm/templates/kubeadm-client.conf.v1beta1.j2
index 36cc01f31fa4db9182dbd7a84a51e629741f6b99..78e861aeb9b0ded6a11afb75d80ee60e591dcc83 100644
--- a/roles/kubernetes/kubeadm/templates/kubeadm-client.conf.v1beta1.j2
+++ b/roles/kubernetes/kubeadm/templates/kubeadm-client.conf.v1beta1.j2
@@ -16,8 +16,6 @@ nodeRegistration:
   name: {{ kube_override_hostname }}
 {% if container_manager == 'crio' %}
   criSocket: /var/run/crio/crio.sock
-{% elif container_manager == 'rkt' %}
-  criSocket: /var/run/rkt.sock
 {% else %}
   criSocket: /var/run/dockershim.sock
 {% endif %}
diff --git a/roles/kubernetes/master/templates/kubeadm-config.v1alpha2.yaml.j2 b/roles/kubernetes/master/templates/kubeadm-config.v1alpha2.yaml.j2
index 088c26f4800f0434ff6e0841b681b7669f9a43a1..68bf2fd5dbf7c6bfcbef6e27681dbe86b18208b7 100644
--- a/roles/kubernetes/master/templates/kubeadm-config.v1alpha2.yaml.j2
+++ b/roles/kubernetes/master/templates/kubeadm-config.v1alpha2.yaml.j2
@@ -230,8 +230,6 @@ nodeRegistration:
 {% endif %}
 {% if container_manager == 'crio' %}
   criSocket: /var/run/crio/crio.sock
-{% elif container_manager == 'rkt' %}
-  criSocket: /var/run/rkt.sock
 {% else %}
   criSocket: /var/run/dockershim.sock
 {% endif %}
diff --git a/roles/kubernetes/master/templates/kubeadm-config.v1alpha3.yaml.j2 b/roles/kubernetes/master/templates/kubeadm-config.v1alpha3.yaml.j2
index 92abf85879ad11af961f437f76e92a7f22e7d259..9a9947a70d53896a87b74843bf7ba3b2f25e8168 100644
--- a/roles/kubernetes/master/templates/kubeadm-config.v1alpha3.yaml.j2
+++ b/roles/kubernetes/master/templates/kubeadm-config.v1alpha3.yaml.j2
@@ -16,8 +16,6 @@ nodeRegistration:
 {% endif %}
 {% if container_manager == 'crio' %}
   criSocket: /var/run/crio/crio.sock
-{% elif container_manager == 'rkt' %}
-  criSocket: /var/run/rkt.sock
 {% else %}
   criSocket: /var/run/dockershim.sock
 {% endif %}
diff --git a/roles/kubernetes/master/templates/kubeadm-config.v1beta1.yaml.j2 b/roles/kubernetes/master/templates/kubeadm-config.v1beta1.yaml.j2
index 6754584db68832e3d39a733400c500e6cd933856..09b546c2c8a21c41328e8ec2fa7424bf2c73c035 100644
--- a/roles/kubernetes/master/templates/kubeadm-config.v1beta1.yaml.j2
+++ b/roles/kubernetes/master/templates/kubeadm-config.v1beta1.yaml.j2
@@ -16,8 +16,6 @@ nodeRegistration:
 {% endif %}
 {% if container_manager == 'crio' %}
   criSocket: /var/run/crio/crio.sock
-{% elif container_manager == 'rkt' %}
-  criSocket: /var/run/rkt.sock
 {% else %}
   criSocket: /var/run/dockershim.sock
 {% endif %}
diff --git a/roles/kubernetes/master/templates/kubeadm-controlplane.v1beta1.yaml.j2 b/roles/kubernetes/master/templates/kubeadm-controlplane.v1beta1.yaml.j2
index e9eb6134c16bcdf084cd80d2562b3e6b14ce556b..bee9c1716e7bfa76a0f3e1c9d2be1971cd003f77 100644
--- a/roles/kubernetes/master/templates/kubeadm-controlplane.v1beta1.yaml.j2
+++ b/roles/kubernetes/master/templates/kubeadm-controlplane.v1beta1.yaml.j2
@@ -19,8 +19,6 @@ nodeRegistration:
   name: {{ inventory_hostname  }}
 {% if container_manager == 'crio' %}
   criSocket: /var/run/crio/crio.sock
-{% elif container_manager == 'rkt' %}
-  criSocket: /var/run/rkt.sock
 {% else %}
   criSocket: /var/run/dockershim.sock
 {% endif %}
diff --git a/roles/reset/tasks/main.yml b/roles/reset/tasks/main.yml
index 072ce27dc9e9d7b3409debdc271ae0eb8ae5e8d5..8cd3ef23a738db89ffbd76f2d6d6c81bc0cdc7e1 100644
--- a/roles/reset/tasks/main.yml
+++ b/roles/reset/tasks/main.yml
@@ -215,7 +215,6 @@
     - "{{ bin_dir }}/calicoctl"
     - "{{ bin_dir }}/calico-upgrade"
     - "{{ bin_dir }}/weave"
-    - /var/lib/rkt
     - /var/lib/cni
     - /etc/vault
     - /etc/contiv
diff --git a/tests/files/gce_ubuntu-rkt-sep.yml b/tests/files/gce_ubuntu-rkt-sep.yml
deleted file mode 100644
index b2646a88d9261bd62ae686fdbdbca7587a8e2080..0000000000000000000000000000000000000000
--- a/tests/files/gce_ubuntu-rkt-sep.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-# Instance settings
-cloud_image_family: ubuntu-1604-lts
-cloud_region: us-central1-c
-mode: separate
-
-# Deployment settings
-kube_network_plugin: flannel
-etcd_deployment: rkt
-kubelet_deployment: rkt
-download_localhost: true
-download_run_once: true
-deploy_netchecker: true
-dns_min_replicas: 1
-cloud_provider: gce
diff --git a/tests/files/packet_ubuntu-rkt-sep.yml b/tests/files/packet_ubuntu-rkt-sep.yml
deleted file mode 100644
index b29d2650118cb6e2e3bc4e3a18d6c228a6809c43..0000000000000000000000000000000000000000
--- a/tests/files/packet_ubuntu-rkt-sep.yml
+++ /dev/null
@@ -1,13 +0,0 @@
----
-# Instance settings
-cloud_image: ubuntu-1604
-mode: separate
-
-# Kubespray settings
-kube_network_plugin: flannel
-etcd_deployment: rkt
-kubelet_deployment: rkt
-download_localhost: true
-download_run_once: true
-deploy_netchecker: true
-dns_min_replicas: 1