From e6effb8245dc2a1d76353f1712103f634cc62f96 Mon Sep 17 00:00:00 2001 From: Hans Feldt <2808287+hafe@users.noreply.github.com> Date: Tue, 13 Oct 2020 00:47:22 +0200 Subject: [PATCH] Make reset work for crio (#6812) crio refuses to delete pods when cni is unavailable which is the case e.g. using calico with kdd datastore. See: https://github.com/cri-o/cri-o/issues/4084 Fix by deleting storage associated with containers. Stop and disable crio service so switching container runtime can be done. --- roles/reset/tasks/main.yml | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/roles/reset/tasks/main.yml b/roles/reset/tasks/main.yml index 03e2e63ea..48a7b8d8c 100644 --- a/roles/reset/tasks/main.yml +++ b/roles/reset/tasks/main.yml @@ -92,6 +92,21 @@ - containerd when: container_manager in ["crio", "containerd"] and deploy_container_engine|default(true) +- name: reset | stop and disable crio service + service: + name: crio + state: stopped + enabled: false + failed_when: false + tags: [ crio ] + when: container_manager == "crio" + +- name: reset | forcefully wipe CRI-O's container and image storage + command: "crio wipe -f" + failed_when: false + tags: [ crio ] + when: container_manager == "crio" + - name: reset | stop all cri pods shell: "set -o pipefail && crictl pods -q | xargs -r crictl -t 60s stopp" args: @@ -100,10 +115,8 @@ retries: 5 until: remove_all_cri_containers.rc == 0 delay: 5 - tags: - - crio - - containerd - when: container_manager in ["crio", "containerd"] + tags: [ containerd ] + when: container_manager == "containerd" - name: reset | remove all cri pods shell: "set -o pipefail && crictl pods -q | xargs -r crictl -t 60s rmp" @@ -113,10 +126,8 @@ retries: 5 until: remove_all_cri_containers.rc == 0 delay: 5 - tags: - - crio - - containerd - when: container_manager in ["crio", "containerd"] + tags: [ containerd ] + when: container_manager == "containerd" - name: reset | stop etcd services service: