diff --git a/roles/container-engine/containerd-common/vars/ubuntu-16.yml b/roles/container-engine/containerd-common/vars/ubuntu-16.yml
new file mode 100644
index 0000000000000000000000000000000000000000..2832884e526d7832036675ace72b2bf74afa71a6
--- /dev/null
+++ b/roles/container-engine/containerd-common/vars/ubuntu-16.yml
@@ -0,0 +1,10 @@
+---
+containerd_versioned_pkg:
+  'latest': "{{ containerd_package }}"
+  '1.3.7': "{{ containerd_package }}=1.3.7-1"
+  '1.3.9': "{{ containerd_package }}=1.3.9-1"
+  '1.4.3': "{{ containerd_package }}=1.4.3-2"
+  '1.4.4': "{{ containerd_package }}=1.4.4-1"
+  '1.4.6': "{{ containerd_package }}=1.4.6-1"
+  'stable': "{{ containerd_package }}=1.4.6-1"
+  'edge': "{{ containerd_package }}=1.4.6-1"
diff --git a/roles/container-engine/docker/vars/ubuntu-16.yml b/roles/container-engine/docker/vars/ubuntu-16.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4d364c956883cae82eb112c28e85e20ac6601b6b
--- /dev/null
+++ b/roles/container-engine/docker/vars/ubuntu-16.yml
@@ -0,0 +1,33 @@
+---
+# https://download.docker.com/linux/ubuntu/
+docker_versioned_pkg:
+  'latest': docker-ce
+  '18.09': docker-ce=5:18.09.9~3-0~ubuntu-{{ ansible_distribution_release|lower }}
+  '19.03': docker-ce=5:19.03.15~3-0~ubuntu-{{ ansible_distribution_release|lower }}
+  '20.10': docker-ce=5:20.10.7~3-0~ubuntu-{{ ansible_distribution_release|lower }}
+  'stable': docker-ce=5:20.10.7~3-0~ubuntu-{{ ansible_distribution_release|lower }}
+  'edge': docker-ce=5:20.10.7~3-0~ubuntu-{{ ansible_distribution_release|lower }}
+
+docker_cli_versioned_pkg:
+  'latest': docker-ce-cli
+  '18.09': docker-ce-cli=5:18.09.9~3-0~ubuntu-{{ ansible_distribution_release|lower }}
+  '19.03': docker-ce-cli=5:19.03.15~3-0~ubuntu-{{ ansible_distribution_release|lower }}
+  '20.10': docker-ce-cli=5:20.10.7~3-0~ubuntu-{{ ansible_distribution_release|lower }}
+
+docker_package_info:
+  pkgs:
+    - "{{ containerd_versioned_pkg[containerd_version | string] }}"
+    - "{{ docker_cli_versioned_pkg[docker_cli_version | string] }}"
+    - "{{ docker_versioned_pkg[docker_version | string] }}"
+
+docker_repo_key_info:
+  url: '{{ docker_ubuntu_repo_gpgkey }}'
+  repo_keys:
+    - '{{ docker_ubuntu_repo_repokey }}'
+
+docker_repo_info:
+  repos:
+    - >
+      deb [arch={{ host_architecture }}] {{ docker_ubuntu_repo_base_url }}
+      {{ ansible_distribution_release|lower }}
+      stable
diff --git a/tests/files/packet_centos8-kube-ovn.yml b/tests/files/packet_centos8-kube-ovn.yml
index a58dc0c69f3c925cf019e075b3a880e202573348..249be69fc9f838c06443dc8a40231ad20681a17c 100644
--- a/tests/files/packet_centos8-kube-ovn.yml
+++ b/tests/files/packet_centos8-kube-ovn.yml
@@ -2,6 +2,7 @@
 # Instance settings
 cloud_image: centos-8
 mode: default
+vm_memory: 3072Mi
 
 # Kubespray settings
 kube_network_plugin: kube-ovn
diff --git a/tests/files/packet_ubuntu16-canal-kubeadm-ha.yml b/tests/files/packet_ubuntu16-canal-kubeadm-ha.yml
index 2e359ee5bc21f54825cc8bc2a40a920073a4559c..94261c50b7af582259c4eda2b2b0b21a87cc9874 100644
--- a/tests/files/packet_ubuntu16-canal-kubeadm-ha.yml
+++ b/tests/files/packet_ubuntu16-canal-kubeadm-ha.yml
@@ -8,3 +8,6 @@ calico_datastore: etcd
 kube_network_plugin: canal
 deploy_netchecker: true
 dns_min_replicas: 1
+
+# Ubuntu 16 packages for containerd are limited to 1.4.6
+containerd_version: 1.4.6
diff --git a/tests/files/packet_ubuntu16-canal-sep.yml b/tests/files/packet_ubuntu16-canal-sep.yml
index a88dcacc618c6c094c908c717afc0f385c99bd1d..d4bfc053592bc4a509e9aa641aea32ca18cb9306 100644
--- a/tests/files/packet_ubuntu16-canal-sep.yml
+++ b/tests/files/packet_ubuntu16-canal-sep.yml
@@ -8,3 +8,6 @@ calico_datastore: etcd
 kube_network_plugin: canal
 deploy_netchecker: true
 dns_min_replicas: 1
+
+# Ubuntu 16 packages for containerd are limited to 1.4.6
+containerd_version: 1.4.6
diff --git a/tests/files/packet_ubuntu16-flannel-ha.yml b/tests/files/packet_ubuntu16-flannel-ha.yml
index 8253ca8fae09ea9b0f3612a7f5525b0652b0ac3a..7c6160922e86cc936fe78883a0a50c03becf4128 100644
--- a/tests/files/packet_ubuntu16-flannel-ha.yml
+++ b/tests/files/packet_ubuntu16-flannel-ha.yml
@@ -10,3 +10,6 @@ kubeadm_certificate_key: 3998c58db6497dd17d909394e62d515368c06ec617710d02edea31c
 skip_non_kubeadm_warning: true
 deploy_netchecker: true
 dns_min_replicas: 1
+
+# Ubuntu 16 packages for containerd are limited to 1.4.6
+containerd_version: 1.4.6
diff --git a/tests/files/packet_ubuntu16-kube-router-sep.yml b/tests/files/packet_ubuntu16-kube-router-sep.yml
index 19043df07c707c338c76b0e0d56983157bc35c4f..5ec5767562ca9cd7b5ea8503cc5977a8d41d7758 100644
--- a/tests/files/packet_ubuntu16-kube-router-sep.yml
+++ b/tests/files/packet_ubuntu16-kube-router-sep.yml
@@ -8,3 +8,6 @@ bootstrap_os: ubuntu
 kube_network_plugin: kube-router
 deploy_netchecker: true
 dns_min_replicas: 1
+
+# Ubuntu 16 packages for containerd are limited to 1.4.6
+containerd_version: 1.4.6
diff --git a/tests/files/packet_ubuntu16-kube-router-svc-proxy.yml b/tests/files/packet_ubuntu16-kube-router-svc-proxy.yml
index 8be6ef3f5371dce2c3b66a419dc047bd0b49dfa4..97ea810d17fa482256a8476fe1bdc6342558c941 100644
--- a/tests/files/packet_ubuntu16-kube-router-svc-proxy.yml
+++ b/tests/files/packet_ubuntu16-kube-router-svc-proxy.yml
@@ -10,3 +10,6 @@ deploy_netchecker: true
 dns_min_replicas: 1
 
 kube_router_run_service_proxy: true
+
+# Ubuntu 16 packages for containerd are limited to 1.4.6
+containerd_version: 1.4.6
diff --git a/tests/files/packet_ubuntu16-weave-sep.yml b/tests/files/packet_ubuntu16-weave-sep.yml
index 72073d0881060ee20550c2410789d313c2830407..b06c75e8719ce2400995c2789f8d795eefc8054c 100644
--- a/tests/files/packet_ubuntu16-weave-sep.yml
+++ b/tests/files/packet_ubuntu16-weave-sep.yml
@@ -9,3 +9,6 @@ deploy_netchecker: true
 dns_min_replicas: 1
 
 auto_renew_certificates: true
+
+# Ubuntu 16 packages for containerd are limited to 1.4.6
+containerd_version: 1.4.6