--- - 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 when: - kubelet_systemd_unit_exists - 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 when: - kubelet_systemd_unit_exists - 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 when: - kubelet_systemd_unit_exists - 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