Skip to content
main.yml 2.45 KiB
Newer Older
---
- 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