c12s-kubespray/roles/container-engine/validate-container-engine/tasks/main.yml

132 lines
3.1 KiB
YAML

---
- name: validate-container-engine | check if fedora coreos
stat:
path: /run/ostree-booted
get_attributes: no
get_checksum: no
get_mime: no
register: ostree
- name: validate-container-engine | set is_ostree
set_fact:
is_ostree: "{{ ostree.stat.exists }}"
- 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:
- not (is_ostree or (ansible_distribution == "Flatcar Container Linux by Kinvolk") or (ansible_distribution == "Flatcar"))
- 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:
- not (is_ostree or (ansible_distribution == "Flatcar Container Linux by Kinvolk") or (ansible_distribution == "Flatcar"))
- 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:
- not (is_ostree or (ansible_distribution == "Flatcar Container Linux by Kinvolk") or (ansible_distribution == "Flatcar"))
- container_manager != "crio"
- crio_installed.matched > 0