You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

152 lines
3.7 KiB

  1. ---
  2. - name: validate-container-engine | check if fedora coreos
  3. stat:
  4. path: /run/ostree-booted
  5. get_attributes: no
  6. get_checksum: no
  7. get_mime: no
  8. register: ostree
  9. tags:
  10. - facts
  11. - name: validate-container-engine | set is_ostree
  12. set_fact:
  13. is_ostree: "{{ ostree.stat.exists }}"
  14. tags:
  15. - facts
  16. - name: Ensure kubelet systemd unit exists
  17. stat:
  18. path: "/etc/systemd/system/kubelet.service"
  19. register: kubelet_systemd_unit_exists
  20. tags:
  21. - facts
  22. - name: Populate service facts
  23. service_facts:
  24. tags:
  25. - facts
  26. - name: Check if containerd is installed
  27. find:
  28. file_type: file
  29. recurse: yes
  30. use_regex: yes
  31. patterns:
  32. - containerd.service$
  33. paths:
  34. - /lib/systemd
  35. - /etc/systemd
  36. - /run/systemd
  37. register: containerd_installed
  38. tags:
  39. - facts
  40. - name: Check if docker is installed
  41. find:
  42. file_type: file
  43. recurse: yes
  44. use_regex: yes
  45. patterns:
  46. - docker.service$
  47. paths:
  48. - /lib/systemd
  49. - /etc/systemd
  50. - /run/systemd
  51. register: docker_installed
  52. tags:
  53. - facts
  54. - name: Check if crio is installed
  55. find:
  56. file_type: file
  57. recurse: yes
  58. use_regex: yes
  59. patterns:
  60. - crio.service$
  61. paths:
  62. - /lib/systemd
  63. - /etc/systemd
  64. - /run/systemd
  65. register: crio_installed
  66. tags:
  67. - facts
  68. - name: Uninstall containerd
  69. block:
  70. - name: Drain node
  71. include_role:
  72. name: remove-node/pre-remove
  73. apply:
  74. tags:
  75. - pre-remove
  76. when: kubelet_systemd_unit_exists.stat.exists
  77. - name: Stop kubelet
  78. service:
  79. name: kubelet
  80. state: stopped
  81. when: kubelet_systemd_unit_exists.stat.exists
  82. - name: Remove Containerd
  83. import_role:
  84. name: container-engine/containerd
  85. tasks_from: reset
  86. vars:
  87. service_name: containerd.service
  88. when:
  89. - not (is_ostree or (ansible_distribution == "Flatcar Container Linux by Kinvolk") or (ansible_distribution == "Flatcar"))
  90. - container_manager != "containerd"
  91. - docker_installed.matched == 0
  92. - containerd_installed.matched > 0
  93. - ansible_facts.services[service_name]['state'] == 'running'
  94. - name: Uninstall docker
  95. block:
  96. - name: Drain node
  97. include_role:
  98. name: remove-node/pre-remove
  99. apply:
  100. tags:
  101. - pre-remove
  102. when: kubelet_systemd_unit_exists.stat.exists
  103. - name: Stop kubelet
  104. service:
  105. name: kubelet
  106. state: stopped
  107. when: kubelet_systemd_unit_exists.stat.exists
  108. - name: Remove Docker
  109. import_role:
  110. name: container-engine/docker
  111. tasks_from: reset
  112. vars:
  113. service_name: docker.service
  114. when:
  115. - not (is_ostree or (ansible_distribution == "Flatcar Container Linux by Kinvolk") or (ansible_distribution == "Flatcar"))
  116. - container_manager != "docker"
  117. - docker_installed.matched > 0
  118. - ansible_facts.services[service_name]['state'] == 'running'
  119. - name: Uninstall crio
  120. block:
  121. - name: Drain node
  122. include_role:
  123. name: remove-node/pre-remove
  124. apply:
  125. tags:
  126. - pre-remove
  127. when: kubelet_systemd_unit_exists.stat.exists
  128. - name: Stop kubelet
  129. service:
  130. name: kubelet
  131. state: stopped
  132. when: kubelet_systemd_unit_exists.stat.exists
  133. - name: Remove CRI-O
  134. import_role:
  135. name: container-engine/cri-o
  136. tasks_from: reset
  137. vars:
  138. service_name: crio.service
  139. when:
  140. - not (is_ostree or (ansible_distribution == "Flatcar Container Linux by Kinvolk") or (ansible_distribution == "Flatcar"))
  141. - container_manager != "crio"
  142. - crio_installed.matched > 0
  143. - ansible_facts.services[service_name]['state'] == 'running'