c12s-kubespray/roles/container-engine/validate-container-engine/tasks/main.yml
cyril-corbon 672e47a7eb
feat: check & uninstall container engine (#8439)
Signed-off-by: Cyril Corbon <corboncyril@gmail.com>
2022-02-28 10:59:46 -08:00

118 lines
2.4 KiB
YAML

---
- name: Ensure kubelet systemd unit exists
stat:
path: "/etc/systemd/system/kubelet.service"
register: kubelet_systemd_unit_exists
- name: Check if containerd is installed
find:
file_type: file
recurse: yes
use_regex: yes
patterns:
- containerd.service$
paths:
- /lib/systemd
- /etc/systemd
- /run/systemd
register: containerd_installed
- name: Check if docker is installed
find:
file_type: file
recurse: yes
use_regex: yes
patterns:
- docker.service$
paths:
- /lib/systemd
- /etc/systemd
- /run/systemd
register: docker_installed
- name: Check if crio is installed
find:
file_type: file
recurse: yes
use_regex: yes
patterns:
- crio.service$
paths:
- /lib/systemd
- /etc/systemd
- /run/systemd
register: crio_installed
- name: Uninstall containerd
block:
- name: Drain node
include_role:
name: remove-node/pre-remove
apply:
tags:
- pre-remove
- name: Stop kubelet
service:
name: kubelet
state: stopped
when:
- kubelet_systemd_unit_exists
- name: Remove Containerd
include_role:
name: container-engine/containerd
apply:
tags:
- reset_containerd
when:
- container_manager != "containerd"
- docker_installed.matched == 0
- containerd_installed.matched > 0
- name: Uninstall docker
block:
- name: Drain node
include_role:
name: remove-node/pre-remove
apply:
tags:
- pre-remove
- name: Stop kubelet
service:
name: kubelet
state: stopped
when:
- kubelet_systemd_unit_exists
- name: Remove Docker
include_role:
name: container-engine/docker
apply:
tags:
- reset_docker
when:
- container_manager != "docker"
- docker_installed.matched > 0
- name: Uninstall crio
block:
- name: Drain node
include_role:
name: remove-node/pre-remove
apply:
tags:
- pre-remove
- name: Stop kubelet
service:
name: kubelet
state: stopped
when:
- kubelet_systemd_unit_exists
- name: Remove CRI-O
include_role:
name: container-engine/crio
apply:
tags:
- reset_crio
when:
- container_manager != "crio"
- crio_installed.matched > 0