diff --git a/roles/container-engine/containerd/defaults/main.yml b/roles/container-engine/containerd/defaults/main.yml
index 8316b1840a43c3305fc9441197483ec5f07e3a6f..44ff8409b47ac3ca4ac6f98c6f30c83e9ede1b36 100644
--- a/roles/container-engine/containerd/defaults/main.yml
+++ b/roles/container-engine/containerd/defaults/main.yml
@@ -77,5 +77,26 @@ containerd_limit_mem_lock: "infinity"
 # If enabled it will use config_path and disable use mirrors config
 containerd_use_config_path: false
 
+# OS distributions that already support containerd
+containerd_supported_distributions:
+  - "CentOS"
+  - "OracleLinux"
+  - "RedHat"
+  - "Ubuntu"
+  - "Debian"
+  - "Fedora"
+  - "AlmaLinux"
+  - "Rocky"
+  - "Amazon"
+  - "Flatcar"
+  - "Flatcar Container Linux by Kinvolk"
+  - "Suse"
+  - "openSUSE Leap"
+  - "openSUSE Tumbleweed"
+  - "Kylin Linux Advanced Server"
+  - "UnionTech"
+  - "UniontechOS"
+  - "openEuler"
+
 # If enabled it will allow kubespray to attempt setup even if the distribution is not supported. For unsupported distributions this can lead to unexpected failures in some cases.
 allow_unsupported_distribution_setup: false
diff --git a/roles/container-engine/containerd/tasks/main.yml b/roles/container-engine/containerd/tasks/main.yml
index b219ef758a1d766543c956a9ee5721613b9cc292..5ec9c28acdcb29d39021c4e963cd706487022d9a 100644
--- a/roles/container-engine/containerd/tasks/main.yml
+++ b/roles/container-engine/containerd/tasks/main.yml
@@ -3,7 +3,7 @@
   fail:
     msg: "{{ ansible_distribution }} is not supported by containerd."
   when:
-    - not (allow_unsupported_distribution_setup | default(false)) and (ansible_distribution not in ["CentOS", "OracleLinux", "RedHat", "Ubuntu", "Debian", "Fedora", "AlmaLinux", "Rocky", "Amazon", "Flatcar", "Flatcar Container Linux by Kinvolk", "Suse", "openSUSE Leap", "openSUSE Tumbleweed", "Kylin Linux Advanced Server", "UnionTech", "openEuler"])
+    - not (allow_unsupported_distribution_setup | default(false)) and (ansible_distribution not in containerd_supported_distributions)
 
 - name: containerd | Remove any package manager controlled containerd package
   package:
diff --git a/roles/kubernetes/preinstall/defaults/main.yml b/roles/kubernetes/preinstall/defaults/main.yml
index aad2f3394ddb6bf7ce34159774936883fb3c98d1..e1798d9c10330c59199a020bf9ee33841b9f974e 100644
--- a/roles/kubernetes/preinstall/defaults/main.yml
+++ b/roles/kubernetes/preinstall/defaults/main.yml
@@ -107,3 +107,32 @@ ntp_force_sync_immediately: false
 
 # Set the timezone for your server.  eg: "Etc/UTC","Etc/GMT-8". If not set, the timezone will not change.
 ntp_timezone: ""
+
+# Currently known os distributions
+supported_os_distributions:
+  - 'RedHat'
+  - 'CentOS'
+  - 'Fedora'
+  - 'Ubuntu'
+  - 'Debian'
+  - 'Flatcar'
+  - 'Flatcar Container Linux by Kinvolk'
+  - 'Suse'
+  - 'openSUSE Leap'
+  - 'openSUSE Tumbleweed'
+  - 'ClearLinux'
+  - 'OracleLinux'
+  - 'AlmaLinux'
+  - 'Rocky'
+  - 'Amazon'
+  - 'Kylin Linux Advanced Server'
+  - 'UnionTech'
+  - 'UniontechOS'
+  - 'openEuler'
+
+# Extending some distributions into the redhat os family
+redhat_os_family_extensions:
+  - "Kylin Linux Advanced Server"
+  - "openEuler"
+  - "UnionTech"
+  - "UniontechOS"
diff --git a/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml b/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml
index 99f4316aba4bf713e8f3a5670b87145bca1ea83b..ec425a5a06392497220fb0f52aba43236c1c2615 100644
--- a/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml
+++ b/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml
@@ -22,9 +22,9 @@
     that: ansible_service_mgr == "systemd"
   when: not ignore_assert_errors
 
-- name: Stop if unknown OS
+- name: Stop if the os does not support
   assert:
-    that: ansible_distribution in ['RedHat', 'CentOS', 'Fedora', 'Ubuntu', 'Debian', 'Flatcar', 'Flatcar Container Linux by Kinvolk', 'Suse', 'openSUSE Leap', 'openSUSE Tumbleweed', 'ClearLinux', 'OracleLinux', 'AlmaLinux', 'Rocky', 'Amazon', 'Kylin Linux Advanced Server', 'UnionTech', 'openEuler']
+    that: ansible_distribution in supported_os_distributions
     msg: "{{ ansible_distribution }} is not a known OS"
   when: not ignore_assert_errors
 
diff --git a/roles/kubernetes/preinstall/tasks/0040-set_facts.yml b/roles/kubernetes/preinstall/tasks/0040-set_facts.yml
index e1b8605cda39ec6c9a24adcfbc33c70bc807357d..716d4c936d386f087518b7c3ff6a39113e484640 100644
--- a/roles/kubernetes/preinstall/tasks/0040-set_facts.yml
+++ b/roles/kubernetes/preinstall/tasks/0040-set_facts.yml
@@ -10,7 +10,7 @@
   set_fact:
     ansible_os_family: "RedHat"
     ansible_distribution_major_version: "8"
-  when: ansible_distribution in ["Kylin Linux Advanced Server", "openEuler"]
+  when: ansible_distribution in redhat_os_family_extensions
   tags:
     - facts