diff --git a/README.md b/README.md
index 0df4a57bf93d8118a0c7c8501f631e7045521913..af22fd24fdcba5542f56979dece227b08ce6e721 100644
--- a/README.md
+++ b/README.md
@@ -162,7 +162,7 @@ Note: Upstart/SysV init based OS types are not supported.
 
 ## Requirements
 
-- **Minimum required version of Kubernetes is v1.21**
+- **Minimum required version of Kubernetes is v1.22**
 - **Ansible v2.11+, Jinja 2.11+ and python-netaddr is installed on the machine that will run Ansible commands**
 - The target servers must have **access to the Internet** in order to pull docker images. Otherwise, additional configuration is required (See [Offline Environment](docs/offline-environment.md))
 - The target servers are configured to allow **IPv4 forwarding**.
diff --git a/roles/container-engine/cri-o/defaults/main.yml b/roles/container-engine/cri-o/defaults/main.yml
index 6625ca3ad3ca8f9cf6258e5928438c2738fb8cf6..d507b4edc222de8a7f0b44300f356dcd5202818a 100644
--- a/roles/container-engine/cri-o/defaults/main.yml
+++ b/roles/container-engine/cri-o/defaults/main.yml
@@ -41,7 +41,6 @@ crio_kubernetes_version_matrix:
   "1.24": "1.24"
   "1.23": "1.23"
   "1.22": "1.22"
-  "1.21": "1.21"
 
 crio_version: "{{ crio_kubernetes_version_matrix[crio_required_version] | default('1.24') }}"
 
diff --git a/roles/container-engine/cri-o/vars/amazon.yml b/roles/container-engine/cri-o/vars/amazon.yml
index 16bba67aed6e64ad47b8a28b80ca24ab52801540..e4668b333bcc05333b504cbf1b73a2fac58f457f 100644
--- a/roles/container-engine/cri-o/vars/amazon.yml
+++ b/roles/container-engine/cri-o/vars/amazon.yml
@@ -9,8 +9,6 @@ crio_versioned_pkg:
     - "cri-o-1.23.*"
   "1.22":
     - "cri-o-1.22.*"
-  "1.21":
-    - "cri-o-1.21.*"
 
 default_crio_packages: "{{ crio_versioned_pkg[crio_version] }}"
 
diff --git a/roles/container-engine/cri-o/vars/centos-7.yml b/roles/container-engine/cri-o/vars/centos-7.yml
index 5e18185821566ba6edec0cec9022fce8a69894f4..c6556fbfe5b96c4a3396740a3dc81df51615b47d 100644
--- a/roles/container-engine/cri-o/vars/centos-7.yml
+++ b/roles/container-engine/cri-o/vars/centos-7.yml
@@ -6,8 +6,6 @@ crio_versioned_pkg:
     - "cri-o-1.23.*"
   "1.22":
     - "cri-o-1.22.*"
-  "1.21":
-    - "cri-o-1.21.*"
 
 default_crio_packages: "{{ crio_versioned_pkg[crio_version] }}"
 
diff --git a/roles/container-engine/cri-o/vars/centos-8.yml b/roles/container-engine/cri-o/vars/centos-8.yml
index 5e18185821566ba6edec0cec9022fce8a69894f4..c6556fbfe5b96c4a3396740a3dc81df51615b47d 100644
--- a/roles/container-engine/cri-o/vars/centos-8.yml
+++ b/roles/container-engine/cri-o/vars/centos-8.yml
@@ -6,8 +6,6 @@ crio_versioned_pkg:
     - "cri-o-1.23.*"
   "1.22":
     - "cri-o-1.22.*"
-  "1.21":
-    - "cri-o-1.21.*"
 
 default_crio_packages: "{{ crio_versioned_pkg[crio_version] }}"
 
diff --git a/roles/container-engine/cri-o/vars/debian.yml b/roles/container-engine/cri-o/vars/debian.yml
index 39296f52ad06656279a15466c5e3aa133de36686..d7b5209f67f54f4e0904748f2f37e36036140af1 100644
--- a/roles/container-engine/cri-o/vars/debian.yml
+++ b/roles/container-engine/cri-o/vars/debian.yml
@@ -9,9 +9,6 @@ crio_versioned_pkg:
   "1.22":
     - "cri-o=1.22*"
     - cri-o-runc
-  "1.21":
-    - "cri-o=1.21*"
-    - cri-o-runc
 
 crio_debian_buster_backports_packages:
   - "libseccomp2"
diff --git a/roles/container-engine/cri-o/vars/fedora.yml b/roles/container-engine/cri-o/vars/fedora.yml
index 84f82b0b446f2d30bb9e6bfd88c903e9f06aa6ea..9ba130b983fc12ca15167828510501531f69a68d 100644
--- a/roles/container-engine/cri-o/vars/fedora.yml
+++ b/roles/container-engine/cri-o/vars/fedora.yml
@@ -6,5 +6,4 @@ crio_kubernetes_version_matrix:
   "1.24": "1.23"
   "1.23": "1.23"
   "1.22": "1.22"
-  "1.21": "1.21"
 crio_version: "{{ crio_kubernetes_version_matrix[crio_required_version] | default('1.23') }}"
diff --git a/roles/container-engine/cri-o/vars/ubuntu.yml b/roles/container-engine/cri-o/vars/ubuntu.yml
index 6ab1b0abd6f16a9804629e5a1e262e1327b44ee6..632c379b56bc08af8d65a20035c76379f8e4be46 100644
--- a/roles/container-engine/cri-o/vars/ubuntu.yml
+++ b/roles/container-engine/cri-o/vars/ubuntu.yml
@@ -9,9 +9,6 @@ crio_versioned_pkg:
   "1.22":
     - "cri-o=1.22*"
     - cri-o-runc
-  "1.21":
-    - "cri-o=1.21*"
-    - cri-o-runc
 
 default_crio_packages: "{{ crio_versioned_pkg[crio_version] }}"
 
diff --git a/roles/kubespray-defaults/defaults/main.yaml b/roles/kubespray-defaults/defaults/main.yaml
index e0d948d741bf4ab6be7b93784e3af2b12ea9dc12..756c6f7c38c881b868fd01f1fdb759148e39901b 100644
--- a/roles/kubespray-defaults/defaults/main.yaml
+++ b/roles/kubespray-defaults/defaults/main.yaml
@@ -252,7 +252,6 @@ kube_api_aggregator_routing: false
 kube_profiling: false
 
 # Graceful Node Shutdown
-# This requires kubernetes >= 1.21.0
 kubelet_shutdown_grace_period: 60s
 # kubelet_shutdown_grace_period_critical_pods should be less than kubelet_shutdown_grace_period
 # to give normal pods time to be gracefully evacuated