diff --git a/roles/reset/tasks/main.yml b/roles/reset/tasks/main.yml
index 69ce724748babdcbcbf758da50016916dfa75fef..f9c277f973c17b748ea35318a18ec2c716cc49fd 100644
--- a/roles/reset/tasks/main.yml
+++ b/roles/reset/tasks/main.yml
@@ -12,15 +12,20 @@
 
 - name: reset | remove services
   file:
-    path: "/etc/systemd/system/{{ item }}.service"
+    path: "/etc/systemd/system/{{ item }}"
     state: absent
   with_items:
-    - kubelet
-    - vault
-    - calico-node
+    - kubelet.service
+    - vault.service
+    - calico-node.service
+    - containerd.service.d/http-proxy.conf
+    - crio.service.d/http-proxy.conf
+    - vault.service.d/http-proxy.conf
   register: services_removed
   tags:
     - services
+    - containerd
+    - crio
 
 - name: reset | remove docker dropins
   file:
@@ -30,6 +35,7 @@
     - docker-dns.conf
     - docker-options.conf
     - http-proxy.conf
+    - docker-orphan-cleanup.conf
   register: docker_dropins_removed
   tags:
     - docker
@@ -59,8 +65,13 @@
   tags:
     - docker
 
+- name: reset | check if crictl is present
+  stat:
+    path: "{{ bin_dir }}/crictl"
+  register: crictl
+
 - name: reset | stop all cri containers
-  shell: "set -o pipefail && {{ bin_dir }}/crictl ps -aq | xargs -r {{ bin_dir }}/crictl -t 60s stop"
+  shell: "set -o pipefail && {{ bin_dir }}/crictl ps -q | xargs -r {{ bin_dir }}/crictl -t 60s stop"
   args:
     executable: /bin/bash
   register: remove_all_cri_containers
@@ -70,12 +81,13 @@
   tags:
     - crio
     - containerd
-  when: container_manager in ["crio", "containerd"]
+  when:
+    - crictl.stat.exists
+    - container_manager in ["crio", "containerd"]
+  ignore_errors: true
 
-- name: reset | remove all cri containers
-  shell: "set -o pipefail && {{ bin_dir }}/crictl ps -aq | xargs -r {{ bin_dir }}/crictl -t 60s rm"
-  args:
-    executable: /bin/bash
+- name: reset | force remove all cri containers
+  command: "{{ bin_dir }}/crictl rm -a -f"
   register: remove_all_cri_containers
   retries: 5
   until: remove_all_cri_containers.rc == 0
@@ -83,7 +95,10 @@
   tags:
     - crio
     - containerd
-  when: container_manager in ["crio", "containerd"] and deploy_container_engine|default(true)
+  when:
+    - crictl.stat.exists
+    - container_manager in ["crio", "containerd"]
+    - deploy_container_engine|default(true)
 
 - name: reset | stop and disable crio service
   service:
@@ -109,18 +124,21 @@
   until: remove_all_cri_containers.rc == 0
   delay: 5
   tags: [ containerd ]
-  when: container_manager == "containerd"
+  when:
+    - crictl.stat.exists
+    - container_manager == "containerd"
+  ignore_errors: true
 
-- name: reset | remove all cri pods
-  shell: "set -o pipefail && {{ bin_dir }}/crictl pods -q | xargs -r {{ bin_dir }}/crictl -t 60s rmp"
-  args:
-    executable: /bin/bash
+- name: reset | force remove all cri pods
+  command: "{{ bin_dir }}/crictl rmp -a -f"
   register: remove_all_cri_containers
   retries: 5
   until: remove_all_cri_containers.rc == 0
   delay: 5
   tags: [ containerd ]
-  when: container_manager == "containerd"
+  when:
+    - crictl.stat.exists
+    - container_manager == "containerd"
 
 - name: reset | stop etcd services
   service: