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.

264 lines
6.3 KiB

7 years ago
7 years ago
7 years ago
6 years ago
  1. ---
  2. - name: reset | include file with pre-reset tasks specific to the network_plugin if exists
  3. include_tasks: "{{ (role_path + '/../network_plugin/' + kube_network_plugin + '/tasks/pre-reset.yml') | realpath }}"
  4. when:
  5. - kube_network_plugin in ['contiv']
  6. tags:
  7. - network
  8. - name: reset | stop services
  9. service:
  10. name: "{{ item }}"
  11. state: stopped
  12. with_items:
  13. - kubelet
  14. - vault
  15. - etcd
  16. - etcd-events
  17. failed_when: false
  18. tags:
  19. - services
  20. - name: reset | remove services
  21. file:
  22. path: "/etc/systemd/system/{{ item }}.service"
  23. state: absent
  24. with_items:
  25. - kubelet
  26. - etcd
  27. - etcd-events
  28. - vault
  29. - calico-node
  30. register: services_removed
  31. tags:
  32. - services
  33. - name: reset | remove docker dropins
  34. file:
  35. path: "/etc/systemd/system/docker.service.d/{{ item }}"
  36. state: absent
  37. with_items:
  38. - docker-dns.conf
  39. - docker-options.conf
  40. - http-proxy.conf
  41. register: docker_dropins_removed
  42. tags:
  43. - docker
  44. - name: reset | systemctl daemon-reload
  45. command: systemctl daemon-reload
  46. when: services_removed.changed or docker_dropins_removed.changed
  47. - name: reset | remove all containers
  48. shell: "{{ docker_bin_dir }}/docker ps -aq | xargs -r docker rm -fv"
  49. register: remove_all_containers
  50. retries: 4
  51. until: remove_all_containers.rc == 0
  52. delay: 5
  53. tags:
  54. - docker
  55. - name: reset | restart docker if needed
  56. service:
  57. name: docker
  58. state: restarted
  59. when: docker_dropins_removed.changed
  60. tags:
  61. - docker
  62. - name: reset | stop all cri-o containers
  63. shell: "crictl ps -aq | xargs -r crictl stop"
  64. register: remove_all_crio_containers
  65. retries: 4
  66. until: remove_all_crio_containers.rc == 0
  67. delay: 5
  68. tags:
  69. - crio
  70. when: container_manager == 'crio'
  71. - name: reset | remove all cri-o containers
  72. shell: "crictl ps -aq | xargs -r crictl rm"
  73. register: remove_all_crio_containers
  74. retries: 4
  75. until: remove_all_crio_containers.rc == 0
  76. delay: 5
  77. tags:
  78. - crio
  79. when: container_manager == 'crio' and deploy_container_engine|default(true)
  80. - name: reset | stop all cri-o pods
  81. shell: "crictl pods -q | xargs -r crictl stopp"
  82. register: remove_all_crio_containers
  83. retries: 4
  84. until: remove_all_crio_containers.rc == 0
  85. delay: 5
  86. tags:
  87. - crio
  88. when: container_manager == 'crio'
  89. - name: reset | remove all cri-o pods
  90. shell: "crictl pods -q | xargs -r crictl rmp"
  91. register: remove_all_crio_containers
  92. retries: 4
  93. until: remove_all_crio_containers.rc == 0
  94. delay: 5
  95. tags:
  96. - crio
  97. when: container_manager == 'crio'
  98. - name: reset | gather mounted kubelet dirs
  99. shell: mount | grep /var/lib/kubelet/ | awk '{print $3}' | tac
  100. args:
  101. warn: false
  102. check_mode: no
  103. register: mounted_dirs
  104. tags:
  105. - mounts
  106. - name: reset | unmount kubelet dirs
  107. command: umount -f {{item}}
  108. with_items: '{{ mounted_dirs.stdout_lines }}'
  109. register: umount_dir
  110. retries: 4
  111. until: umount_dir.rc == 0
  112. delay: 5
  113. tags:
  114. - mounts
  115. - name: flush iptables
  116. iptables:
  117. table: "{{ item }}"
  118. flush: yes
  119. with_items:
  120. - filter
  121. - nat
  122. when: flush_iptables|bool
  123. tags:
  124. - iptables
  125. - name: Clear IPVS virtual server table
  126. shell: "ipvsadm -C"
  127. when:
  128. - kube_proxy_mode == 'ipvs' and inventory_hostname in groups['k8s-cluster']
  129. - name: reset | check kube-ipvs0 network device
  130. stat:
  131. path: /sys/class/net/kube-ipvs0
  132. register: kube_ipvs0
  133. - name: reset | Remove kube-ipvs0
  134. command: "ip link del kube-ipvs0"
  135. when:
  136. - kube_proxy_mode == 'ipvs'
  137. - kube_ipvs0.stat.exists
  138. - name: reset | delete some files and directories
  139. file:
  140. path: "{{ item }}"
  141. state: absent
  142. with_items:
  143. - "{{kube_config_dir}}"
  144. - /var/lib/kubelet
  145. - /root/.kube
  146. - /root/.helm
  147. - "{{ etcd_data_dir }}"
  148. - /var/lib/etcd-events
  149. - /etc/ssl/etcd
  150. - /var/log/calico
  151. - /etc/cni
  152. - "{{ nginx_config_dir }}"
  153. - /etc/dnsmasq.d
  154. - /etc/dnsmasq.conf
  155. - /etc/dnsmasq.d-available
  156. - /etc/etcd.env
  157. - /etc/calico
  158. - /etc/weave.env
  159. - /opt/cni
  160. - /etc/dhcp/dhclient.d/zdnsupdate.sh
  161. - /etc/dhcp/dhclient-exit-hooks.d/zdnsupdate
  162. - /run/flannel
  163. - /etc/flannel
  164. - /run/kubernetes
  165. - /usr/local/share/ca-certificates/etcd-ca.crt
  166. - /usr/local/share/ca-certificates/kube-ca.crt
  167. - /usr/local/share/ca-certificates/vault-ca.crt
  168. - /etc/ssl/certs/etcd-ca.pem
  169. - /etc/ssl/certs/kube-ca.pem
  170. - /etc/ssl/certs/vault-ca.crt
  171. - /etc/pki/ca-trust/source/anchors/etcd-ca.crt
  172. - /etc/pki/ca-trust/source/anchors/kube-ca.crt
  173. - /etc/pki/ca-trust/source/anchors/vault-ca.crt
  174. - /etc/vault
  175. - /var/log/pods/
  176. - "{{ bin_dir }}/kubelet"
  177. - "{{ bin_dir }}/etcd-scripts"
  178. - "{{ bin_dir }}/etcd"
  179. - "{{ bin_dir }}/etcd-events"
  180. - "{{ bin_dir }}/etcdctl"
  181. - "{{ bin_dir }}/kubernetes-scripts"
  182. - "{{ bin_dir }}/kubectl"
  183. - "{{ bin_dir }}/kubeadm"
  184. - "{{ bin_dir }}/helm"
  185. - "{{ bin_dir }}/calicoctl"
  186. - "{{ bin_dir }}/calico-upgrade"
  187. - "{{ bin_dir }}/weave"
  188. - /var/lib/rkt
  189. - /var/lib/cni
  190. - /etc/vault
  191. - /etc/contiv
  192. - /var/contiv
  193. - /run/contiv
  194. - /etc/openvswitch
  195. - /run/openvswitch
  196. - /var/lib/kube-router
  197. ignore_errors: yes
  198. tags:
  199. - files
  200. - name: reset | remove dns settings from dhclient.conf
  201. blockinfile:
  202. path: "{{ item }}"
  203. state: absent
  204. marker: "# Ansible entries {mark}"
  205. failed_when: false
  206. with_items:
  207. - /etc/dhclient.conf
  208. - /etc/dhcp/dhclient.conf
  209. tags:
  210. - files
  211. - dns
  212. - name: reset | remove host entries from /etc/hosts
  213. blockinfile:
  214. path: "/etc/hosts"
  215. state: absent
  216. marker: "# Ansible inventory hosts {mark}"
  217. tags:
  218. - files
  219. - dns
  220. - name: reset | include file with reset tasks specific to the network_plugin if exists
  221. include_tasks: "{{ (role_path + '/../network_plugin/' + kube_network_plugin + '/tasks/reset.yml') | realpath }}"
  222. when:
  223. - kube_network_plugin in ['flannel', 'cilium', 'contiv', 'kube-router', 'calico']
  224. tags:
  225. - network
  226. - name: reset | Restart network
  227. service:
  228. name: >-
  229. {% if ansible_os_family == "RedHat" -%}
  230. network
  231. {%- elif ansible_distribution == "Ubuntu" and ansible_distribution_release == "bionic" -%}
  232. systemd-networkd
  233. {%- elif ansible_os_family == "Debian" -%}
  234. networking
  235. {%- endif %}
  236. state: restarted
  237. when:
  238. - ansible_os_family not in ["CoreOS", "Container Linux by CoreOS"]
  239. - reset_restart_network
  240. tags:
  241. - services
  242. - network