diff --git a/contrib/offline/generate_list.sh b/contrib/offline/generate_list.sh
index 7d77d81355c62b379de9325e04bfc561336d4a6a..b481e1860472cc0930220b2b461474f2993da38f 100644
--- a/contrib/offline/generate_list.sh
+++ b/contrib/offline/generate_list.sh
@@ -21,6 +21,7 @@ arch=${ARCH}
 image_arch=${IMAGE_ARCH}
 ansible_system=${ANSIBLE_SYSTEM}
 ansible_architecture=${ANSIBLE_ARCHITECTURE}
+host_os=${ANSIBLE_SYSTEM}
 EOF
 
 # generate all component version by $DOWNLOAD_YML
diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml
index df359feae11615c828247b97ed476f083413755c..64e5da159b7beba935aaea7b7e7db00efaf1490e 100644
--- a/roles/download/defaults/main.yml
+++ b/roles/download/defaults/main.yml
@@ -58,6 +58,10 @@ crun_version: 1.4
 runc_version: v1.0.3
 kata_containers_version: 2.2.3
 gvisor_version: 20210921
+containerd_version: 1.5.8
+
+# this is relevant when container_manager == 'docker'
+docker_containerd_version: 1.4.12
 
 # gcr and kubernetes image repo define
 gcr_image_repo: "gcr.io"
diff --git a/roles/kubespray-defaults/defaults/main.yaml b/roles/kubespray-defaults/defaults/main.yaml
index 556766a1648f04f4832dfd742f9638358f72090a..4cb219799c5fd3e749531150e55517119f90a9f3 100644
--- a/roles/kubespray-defaults/defaults/main.yaml
+++ b/roles/kubespray-defaults/defaults/main.yaml
@@ -344,12 +344,8 @@ docker_plugins: []
 etcd_kubeadm_enabled: false
 
 # Containerd options - thse are relevant when container_manager == 'containerd'
-containerd_version: 1.5.8
 containerd_use_systemd_cgroup: true
 
-# Docker options - this is relevant when container_manager == 'docker'
-docker_containerd_version: 1.4.12
-
 ## An obvious use case is allowing insecure-registry access to self hosted registries.
 ## Can be ipaddress and domain_name.
 ## example define mirror.registry.io or 172.19.16.11:5000