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.

223 lines
5.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 | remove all cri-o containers
  63. shell: "crictl ps -aq | xargs -r crictl rm"
  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 | gather mounted kubelet dirs
  72. shell: mount | grep /var/lib/kubelet/ | awk '{print $3}' | tac
  73. args:
  74. warn: false
  75. check_mode: no
  76. register: mounted_dirs
  77. tags:
  78. - mounts
  79. - name: reset | unmount kubelet dirs
  80. command: umount -f {{item}}
  81. with_items: '{{ mounted_dirs.stdout_lines }}'
  82. register: umount_dir
  83. retries: 4
  84. until: umount_dir.rc == 0
  85. delay: 5
  86. tags:
  87. - mounts
  88. - name: flush iptables
  89. iptables:
  90. table: "{{ item }}"
  91. flush: yes
  92. with_items:
  93. - filter
  94. - nat
  95. when: flush_iptables|bool
  96. tags:
  97. - iptables
  98. - name: Clear IPVS virtual server table
  99. shell: "ipvsadm -C"
  100. when:
  101. - kube_proxy_mode == 'ipvs'
  102. - name: reset | delete some files and directories
  103. file:
  104. path: "{{ item }}"
  105. state: absent
  106. with_items:
  107. - "{{kube_config_dir}}"
  108. - /var/lib/kubelet
  109. - /root/.kube
  110. - /root/.helm
  111. - "{{ etcd_data_dir }}"
  112. - /var/lib/etcd-events
  113. - /etc/ssl/etcd
  114. - /var/log/calico
  115. - /etc/cni
  116. - "{{ nginx_config_dir }}"
  117. - /etc/dnsmasq.d
  118. - /etc/dnsmasq.conf
  119. - /etc/dnsmasq.d-available
  120. - /etc/etcd.env
  121. - /etc/calico
  122. - /etc/weave.env
  123. - /opt/cni
  124. - /etc/dhcp/dhclient.d/zdnsupdate.sh
  125. - /etc/dhcp/dhclient-exit-hooks.d/zdnsupdate
  126. - /run/flannel
  127. - /etc/flannel
  128. - /run/kubernetes
  129. - /usr/local/share/ca-certificates/etcd-ca.crt
  130. - /usr/local/share/ca-certificates/kube-ca.crt
  131. - /usr/local/share/ca-certificates/vault-ca.crt
  132. - /etc/ssl/certs/etcd-ca.pem
  133. - /etc/ssl/certs/kube-ca.pem
  134. - /etc/ssl/certs/vault-ca.crt
  135. - /etc/pki/ca-trust/source/anchors/etcd-ca.crt
  136. - /etc/pki/ca-trust/source/anchors/kube-ca.crt
  137. - /etc/pki/ca-trust/source/anchors/vault-ca.crt
  138. - /etc/vault
  139. - /var/log/pods/
  140. - "{{ bin_dir }}/kubelet"
  141. - "{{ bin_dir }}/etcd-scripts"
  142. - "{{ bin_dir }}/etcd"
  143. - "{{ bin_dir }}/etcd-events"
  144. - "{{ bin_dir }}/etcdctl"
  145. - "{{ bin_dir }}/kubernetes-scripts"
  146. - "{{ bin_dir }}/kubectl"
  147. - "{{ bin_dir }}/kubeadm"
  148. - "{{ bin_dir }}/helm"
  149. - "{{ bin_dir }}/calicoctl"
  150. - "{{ bin_dir }}/calico-upgrade"
  151. - "{{ bin_dir }}/weave"
  152. - /var/lib/rkt
  153. - /var/lib/cni
  154. - /etc/vault
  155. - /etc/contiv
  156. - /var/contiv
  157. - /run/contiv
  158. - /etc/openvswitch
  159. - /run/openvswitch
  160. - /var/lib/kube-router
  161. ignore_errors: yes
  162. tags:
  163. - files
  164. - name: reset | remove dns settings from dhclient.conf
  165. blockinfile:
  166. path: "{{ item }}"
  167. state: absent
  168. marker: "# Ansible entries {mark}"
  169. failed_when: false
  170. with_items:
  171. - /etc/dhclient.conf
  172. - /etc/dhcp/dhclient.conf
  173. tags:
  174. - files
  175. - dns
  176. - name: reset | remove host entries from /etc/hosts
  177. blockinfile:
  178. path: "/etc/hosts"
  179. state: absent
  180. marker: "# Ansible inventory hosts {mark}"
  181. tags:
  182. - files
  183. - dns
  184. - name: reset | include file with reset tasks specific to the network_plugin if exists
  185. include_tasks: "{{ (role_path + '/../network_plugin/' + kube_network_plugin + '/tasks/reset.yml') | realpath }}"
  186. when:
  187. - kube_network_plugin in ['flannel', 'cilium', 'contiv', 'kube-router']
  188. tags:
  189. - network
  190. - name: reset | Restart network
  191. service:
  192. name: >-
  193. {% if ansible_os_family == "RedHat" -%}
  194. network
  195. {%- elif ansible_distribution == "Ubuntu" and ansible_distribution_release == "bionic" -%}
  196. systemd-networkd
  197. {%- elif ansible_os_family == "Debian" -%}
  198. networking
  199. {%- endif %}
  200. state: restarted
  201. when:
  202. - ansible_os_family not in ["CoreOS", "Container Linux by CoreOS"]
  203. - reset_restart_network
  204. tags:
  205. - services
  206. - network