2016-12-08 00:36:24 +08:00
|
|
|
---
|
2018-09-17 22:46:19 +08:00
|
|
|
- name: reset | include file with pre-reset tasks specific to the network_plugin if exists
|
|
|
|
include_tasks: "{{ (role_path + '/../network_plugin/' + kube_network_plugin + '/tasks/pre-reset.yml') | realpath }}"
|
|
|
|
when:
|
|
|
|
- kube_network_plugin in ['contiv']
|
|
|
|
tags:
|
|
|
|
- network
|
|
|
|
|
2016-12-08 00:36:24 +08:00
|
|
|
- name: reset | stop services
|
2017-02-18 05:22:34 +08:00
|
|
|
service:
|
|
|
|
name: "{{ item }}"
|
|
|
|
state: stopped
|
2016-12-08 00:36:24 +08:00
|
|
|
with_items:
|
|
|
|
- kubelet
|
2017-10-03 15:30:28 +08:00
|
|
|
- vault
|
2016-12-08 00:36:24 +08:00
|
|
|
failed_when: false
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- services
|
2016-12-08 00:36:24 +08:00
|
|
|
|
|
|
|
- name: reset | remove services
|
2016-12-09 23:33:10 +08:00
|
|
|
file:
|
|
|
|
path: "/etc/systemd/system/{{ item }}.service"
|
|
|
|
state: absent
|
2016-12-08 00:36:24 +08:00
|
|
|
with_items:
|
|
|
|
- kubelet
|
2017-08-30 21:03:22 +08:00
|
|
|
- vault
|
2017-08-31 17:00:05 +08:00
|
|
|
- calico-node
|
2016-12-08 00:36:24 +08:00
|
|
|
register: services_removed
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- services
|
2016-12-08 00:36:24 +08:00
|
|
|
|
2016-12-22 00:18:11 +08:00
|
|
|
- name: reset | remove docker dropins
|
|
|
|
file:
|
|
|
|
path: "/etc/systemd/system/docker.service.d/{{ item }}"
|
|
|
|
state: absent
|
|
|
|
with_items:
|
|
|
|
- docker-dns.conf
|
|
|
|
- docker-options.conf
|
2018-03-08 23:16:02 +08:00
|
|
|
- http-proxy.conf
|
2016-12-22 00:18:11 +08:00
|
|
|
register: docker_dropins_removed
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- docker
|
2016-12-22 00:18:11 +08:00
|
|
|
|
2020-07-27 21:24:17 +08:00
|
|
|
- name: reset | systemctl daemon-reload # noqa 503
|
2019-04-24 13:18:00 +08:00
|
|
|
systemd:
|
|
|
|
daemon_reload: true
|
2016-12-22 00:18:11 +08:00
|
|
|
when: services_removed.changed or docker_dropins_removed.changed
|
2016-12-08 00:36:24 +08:00
|
|
|
|
2020-08-28 16:20:53 +08:00
|
|
|
- name: reset | remove all containers
|
|
|
|
shell: "set -o pipefail && {{ docker_bin_dir }}/docker ps -aq | xargs -r docker rm -fv"
|
|
|
|
args:
|
|
|
|
executable: /bin/bash
|
2017-09-06 19:23:16 +08:00
|
|
|
register: remove_all_containers
|
|
|
|
retries: 4
|
|
|
|
until: remove_all_containers.rc == 0
|
|
|
|
delay: 5
|
2019-06-30 05:09:20 +08:00
|
|
|
when: container_manager == "docker"
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- docker
|
2016-12-08 00:36:24 +08:00
|
|
|
|
2020-07-27 21:24:17 +08:00
|
|
|
- name: reset | restart docker if needed # noqa 503
|
2017-02-18 05:22:34 +08:00
|
|
|
service:
|
|
|
|
name: docker
|
|
|
|
state: restarted
|
2019-06-30 05:09:20 +08:00
|
|
|
when: docker_dropins_removed.changed and container_manager == "docker"
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- docker
|
2016-12-22 00:18:11 +08:00
|
|
|
|
2020-08-28 16:20:53 +08:00
|
|
|
- name: reset | stop all cri containers
|
2020-11-29 00:30:47 +08:00
|
|
|
shell: "set -o pipefail && {{ bin_dir }}/crictl ps -aq | xargs -r {{ bin_dir }}/crictl -t 60s stop"
|
2020-08-28 16:20:53 +08:00
|
|
|
args:
|
|
|
|
executable: /bin/bash
|
2019-06-30 05:09:20 +08:00
|
|
|
register: remove_all_cri_containers
|
|
|
|
retries: 5
|
|
|
|
until: remove_all_cri_containers.rc == 0
|
2018-12-12 17:59:55 +08:00
|
|
|
delay: 5
|
|
|
|
tags:
|
|
|
|
- crio
|
2019-06-30 05:09:20 +08:00
|
|
|
- containerd
|
|
|
|
when: container_manager in ["crio", "containerd"]
|
2018-12-12 17:59:55 +08:00
|
|
|
|
2020-08-28 16:20:53 +08:00
|
|
|
- name: reset | remove all cri containers
|
2020-11-29 00:30:47 +08:00
|
|
|
shell: "set -o pipefail && {{ bin_dir }}/crictl ps -aq | xargs -r {{ bin_dir }}/crictl -t 60s rm"
|
2020-08-28 16:20:53 +08:00
|
|
|
args:
|
|
|
|
executable: /bin/bash
|
2019-06-30 05:09:20 +08:00
|
|
|
register: remove_all_cri_containers
|
|
|
|
retries: 5
|
|
|
|
until: remove_all_cri_containers.rc == 0
|
2018-08-08 12:50:15 +08:00
|
|
|
delay: 5
|
|
|
|
tags:
|
|
|
|
- crio
|
2019-06-30 05:09:20 +08:00
|
|
|
- containerd
|
|
|
|
when: container_manager in ["crio", "containerd"] and deploy_container_engine|default(true)
|
2018-08-08 12:50:15 +08:00
|
|
|
|
2020-10-13 06:47:22 +08:00
|
|
|
- name: reset | stop and disable crio service
|
|
|
|
service:
|
|
|
|
name: crio
|
|
|
|
state: stopped
|
|
|
|
enabled: false
|
|
|
|
failed_when: false
|
|
|
|
tags: [ crio ]
|
|
|
|
when: container_manager == "crio"
|
|
|
|
|
|
|
|
- name: reset | forcefully wipe CRI-O's container and image storage
|
|
|
|
command: "crio wipe -f"
|
|
|
|
failed_when: false
|
|
|
|
tags: [ crio ]
|
|
|
|
when: container_manager == "crio"
|
|
|
|
|
2020-08-28 16:20:53 +08:00
|
|
|
- name: reset | stop all cri pods
|
2020-11-29 00:30:47 +08:00
|
|
|
shell: "set -o pipefail && {{ bin_dir }}/crictl pods -q | xargs -r {{ bin_dir }}/crictl -t 60s stopp"
|
2020-08-28 16:20:53 +08:00
|
|
|
args:
|
|
|
|
executable: /bin/bash
|
2019-06-30 05:09:20 +08:00
|
|
|
register: remove_all_cri_containers
|
|
|
|
retries: 5
|
|
|
|
until: remove_all_cri_containers.rc == 0
|
2018-12-12 17:59:55 +08:00
|
|
|
delay: 5
|
2020-10-13 06:47:22 +08:00
|
|
|
tags: [ containerd ]
|
|
|
|
when: container_manager == "containerd"
|
2018-12-12 17:59:55 +08:00
|
|
|
|
2020-08-28 16:20:53 +08:00
|
|
|
- name: reset | remove all cri pods
|
2020-11-29 00:30:47 +08:00
|
|
|
shell: "set -o pipefail && {{ bin_dir }}/crictl pods -q | xargs -r {{ bin_dir }}/crictl -t 60s rmp"
|
2020-08-28 16:20:53 +08:00
|
|
|
args:
|
|
|
|
executable: /bin/bash
|
2019-06-30 05:09:20 +08:00
|
|
|
register: remove_all_cri_containers
|
|
|
|
retries: 5
|
|
|
|
until: remove_all_cri_containers.rc == 0
|
2018-12-12 17:59:55 +08:00
|
|
|
delay: 5
|
2020-10-13 06:47:22 +08:00
|
|
|
tags: [ containerd ]
|
|
|
|
when: container_manager == "containerd"
|
2019-06-30 05:09:20 +08:00
|
|
|
|
|
|
|
- name: reset | stop etcd services
|
|
|
|
service:
|
|
|
|
name: "{{ item }}"
|
|
|
|
state: stopped
|
|
|
|
with_items:
|
|
|
|
- etcd
|
|
|
|
- etcd-events
|
|
|
|
failed_when: false
|
|
|
|
tags:
|
|
|
|
- services
|
|
|
|
|
|
|
|
- name: reset | remove etcd services
|
|
|
|
file:
|
|
|
|
path: "/etc/systemd/system/{{ item }}.service"
|
|
|
|
state: absent
|
|
|
|
with_items:
|
|
|
|
- etcd
|
|
|
|
- etcd-events
|
|
|
|
register: services_removed
|
|
|
|
tags:
|
|
|
|
- services
|
|
|
|
|
2020-08-28 16:20:53 +08:00
|
|
|
- name: reset | gather mounted kubelet dirs # noqa 301
|
|
|
|
shell: set -o pipefail && mount | grep /var/lib/kubelet/ | awk '{print $3}' | tac
|
2018-10-16 14:47:04 +08:00
|
|
|
args:
|
2020-08-28 16:20:53 +08:00
|
|
|
executable: /bin/bash
|
2018-10-16 14:47:04 +08:00
|
|
|
warn: false
|
2017-02-07 02:13:21 +08:00
|
|
|
check_mode: no
|
2016-12-08 00:36:24 +08:00
|
|
|
register: mounted_dirs
|
2020-10-06 03:55:21 +08:00
|
|
|
failed_when: false
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- mounts
|
2016-12-08 00:36:24 +08:00
|
|
|
|
2020-07-27 21:24:17 +08:00
|
|
|
- name: reset | unmount kubelet dirs # noqa 301
|
2019-05-03 05:24:21 +08:00
|
|
|
command: umount -f {{ item }}
|
2020-07-04 17:02:48 +08:00
|
|
|
with_items: "{{ mounted_dirs.stdout_lines }}"
|
2018-02-21 19:41:57 +08:00
|
|
|
register: umount_dir
|
2020-10-06 03:55:21 +08:00
|
|
|
when: mounted_dirs
|
2018-02-21 19:41:57 +08:00
|
|
|
retries: 4
|
|
|
|
until: umount_dir.rc == 0
|
|
|
|
delay: 5
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- mounts
|
2016-12-08 00:36:24 +08:00
|
|
|
|
2017-03-21 17:13:54 +08:00
|
|
|
- name: flush iptables
|
|
|
|
iptables:
|
2018-01-25 10:22:49 +08:00
|
|
|
table: "{{ item }}"
|
2017-03-21 17:13:54 +08:00
|
|
|
flush: yes
|
2018-01-25 10:22:49 +08:00
|
|
|
with_items:
|
|
|
|
- filter
|
|
|
|
- nat
|
2020-02-26 16:04:26 +08:00
|
|
|
- mangle
|
2017-04-18 22:15:22 +08:00
|
|
|
when: flush_iptables|bool
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- iptables
|
2017-03-21 17:13:54 +08:00
|
|
|
|
2020-07-28 16:39:08 +08:00
|
|
|
- name: Clear IPVS virtual server table
|
|
|
|
command: "ipvsadm -C"
|
2018-10-17 07:29:43 +08:00
|
|
|
when:
|
2018-12-12 17:43:16 +08:00
|
|
|
- kube_proxy_mode == 'ipvs' and inventory_hostname in groups['k8s-cluster']
|
2018-10-17 07:29:43 +08:00
|
|
|
|
2018-12-05 11:18:50 +08:00
|
|
|
- name: reset | check kube-ipvs0 network device
|
|
|
|
stat:
|
|
|
|
path: /sys/class/net/kube-ipvs0
|
|
|
|
register: kube_ipvs0
|
|
|
|
|
2018-12-04 02:38:51 +08:00
|
|
|
- name: reset | Remove kube-ipvs0
|
|
|
|
command: "ip link del kube-ipvs0"
|
|
|
|
when:
|
|
|
|
- kube_proxy_mode == 'ipvs'
|
2018-12-05 11:18:50 +08:00
|
|
|
- kube_ipvs0.stat.exists
|
2018-12-04 02:38:51 +08:00
|
|
|
|
2019-04-08 17:26:25 +08:00
|
|
|
- name: reset | check nodelocaldns network device
|
|
|
|
stat:
|
|
|
|
path: /sys/class/net/nodelocaldns
|
|
|
|
register: nodelocaldns_device
|
|
|
|
|
|
|
|
- name: reset | Remove nodelocaldns
|
|
|
|
command: "ip link del nodelocaldns"
|
|
|
|
when:
|
|
|
|
- enable_nodelocaldns|default(false)|bool
|
|
|
|
- nodelocaldns_device.stat.exists
|
|
|
|
|
2016-12-08 00:36:24 +08:00
|
|
|
- name: reset | delete some files and directories
|
2017-02-18 05:22:34 +08:00
|
|
|
file:
|
|
|
|
path: "{{ item }}"
|
|
|
|
state: absent
|
2016-12-08 00:36:24 +08:00
|
|
|
with_items:
|
2019-05-03 05:24:21 +08:00
|
|
|
- "{{ kube_config_dir }}"
|
2016-12-08 00:36:24 +08:00
|
|
|
- /var/lib/kubelet
|
2019-06-06 17:06:11 +08:00
|
|
|
- "{{ ansible_env.HOME | default('/root') }}/.kube"
|
|
|
|
- "{{ ansible_env.HOME | default('/root') }}/.helm"
|
2017-02-24 22:58:54 +08:00
|
|
|
- "{{ etcd_data_dir }}"
|
2020-07-22 14:58:05 +08:00
|
|
|
- "{{ etcd_events_data_dir }}"
|
|
|
|
- "{{ etcd_config_dir }}"
|
2016-12-09 23:33:10 +08:00
|
|
|
- /var/log/calico
|
|
|
|
- /etc/cni
|
2018-10-11 21:33:18 +08:00
|
|
|
- "{{ nginx_config_dir }}"
|
2016-12-09 23:33:10 +08:00
|
|
|
- /etc/dnsmasq.d
|
2016-12-22 00:18:11 +08:00
|
|
|
- /etc/dnsmasq.conf
|
|
|
|
- /etc/dnsmasq.d-available
|
2016-12-09 23:33:10 +08:00
|
|
|
- /etc/etcd.env
|
|
|
|
- /etc/calico
|
2017-06-29 11:44:52 +08:00
|
|
|
- /etc/weave.env
|
2016-12-09 23:33:10 +08:00
|
|
|
- /opt/cni
|
2016-12-22 00:18:11 +08:00
|
|
|
- /etc/dhcp/dhclient.d/zdnsupdate.sh
|
|
|
|
- /etc/dhcp/dhclient-exit-hooks.d/zdnsupdate
|
2017-06-29 14:45:15 +08:00
|
|
|
- /run/flannel
|
|
|
|
- /etc/flannel
|
|
|
|
- /run/kubernetes
|
|
|
|
- /usr/local/share/ca-certificates/etcd-ca.crt
|
2017-08-30 21:03:22 +08:00
|
|
|
- /usr/local/share/ca-certificates/kube-ca.crt
|
|
|
|
- /usr/local/share/ca-certificates/vault-ca.crt
|
2017-06-29 14:45:15 +08:00
|
|
|
- /etc/ssl/certs/etcd-ca.pem
|
2017-08-30 21:03:22 +08:00
|
|
|
- /etc/ssl/certs/kube-ca.pem
|
|
|
|
- /etc/ssl/certs/vault-ca.crt
|
|
|
|
- /etc/pki/ca-trust/source/anchors/etcd-ca.crt
|
|
|
|
- /etc/pki/ca-trust/source/anchors/kube-ca.crt
|
|
|
|
- /etc/pki/ca-trust/source/anchors/vault-ca.crt
|
2017-08-20 18:53:58 +08:00
|
|
|
- /etc/vault
|
2017-06-29 14:45:15 +08:00
|
|
|
- /var/log/pods/
|
2017-06-29 11:44:52 +08:00
|
|
|
- "{{ bin_dir }}/kubelet"
|
|
|
|
- "{{ bin_dir }}/etcd-scripts"
|
|
|
|
- "{{ bin_dir }}/etcd"
|
2018-03-01 16:39:14 +08:00
|
|
|
- "{{ bin_dir }}/etcd-events"
|
2017-06-29 11:44:52 +08:00
|
|
|
- "{{ bin_dir }}/etcdctl"
|
|
|
|
- "{{ bin_dir }}/kubernetes-scripts"
|
|
|
|
- "{{ bin_dir }}/kubectl"
|
2017-09-16 05:28:15 +08:00
|
|
|
- "{{ bin_dir }}/kubeadm"
|
2019-07-31 03:02:08 +08:00
|
|
|
- "{{ bin_dir }}/hyperkube"
|
2017-06-29 11:44:52 +08:00
|
|
|
- "{{ bin_dir }}/helm"
|
|
|
|
- "{{ bin_dir }}/calicoctl"
|
2019-07-31 03:02:08 +08:00
|
|
|
- "{{ bin_dir }}/calicoctl.sh"
|
2018-08-23 22:17:18 +08:00
|
|
|
- "{{ bin_dir }}/calico-upgrade"
|
2017-06-29 11:44:52 +08:00
|
|
|
- "{{ bin_dir }}/weave"
|
2019-07-31 03:02:08 +08:00
|
|
|
- "{{ bin_dir }}/crictl"
|
|
|
|
- "{{ bin_dir }}/netctl"
|
2018-09-21 03:36:25 +08:00
|
|
|
- /var/lib/cni
|
2017-12-11 20:49:21 +08:00
|
|
|
- /etc/vault
|
2018-09-17 22:45:05 +08:00
|
|
|
- /etc/contiv
|
|
|
|
- /var/contiv
|
|
|
|
- /run/contiv
|
|
|
|
- /etc/openvswitch
|
|
|
|
- /run/openvswitch
|
2018-10-16 22:15:05 +08:00
|
|
|
- /var/lib/kube-router
|
2019-07-31 03:02:08 +08:00
|
|
|
- /var/lib/calico
|
|
|
|
- /etc/cilium
|
|
|
|
- /run/calico
|
2017-12-11 20:49:21 +08:00
|
|
|
ignore_errors: yes
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- files
|
2017-04-18 22:15:22 +08:00
|
|
|
|
2016-12-22 00:18:11 +08:00
|
|
|
- name: reset | remove dns settings from dhclient.conf
|
|
|
|
blockinfile:
|
2018-10-30 20:56:58 +08:00
|
|
|
path: "{{ item }}"
|
2016-12-22 00:18:11 +08:00
|
|
|
state: absent
|
|
|
|
marker: "# Ansible entries {mark}"
|
|
|
|
failed_when: false
|
|
|
|
with_items:
|
|
|
|
- /etc/dhclient.conf
|
|
|
|
- /etc/dhcp/dhclient.conf
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- files
|
|
|
|
- dns
|
2016-12-22 00:18:11 +08:00
|
|
|
|
|
|
|
- name: reset | remove host entries from /etc/hosts
|
|
|
|
blockinfile:
|
2018-10-30 20:56:58 +08:00
|
|
|
path: "/etc/hosts"
|
2016-12-22 00:18:11 +08:00
|
|
|
state: absent
|
|
|
|
marker: "# Ansible inventory hosts {mark}"
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- files
|
|
|
|
- dns
|
2016-12-22 00:18:11 +08:00
|
|
|
|
2018-08-16 23:34:33 +08:00
|
|
|
- name: reset | include file with reset tasks specific to the network_plugin if exists
|
|
|
|
include_tasks: "{{ (role_path + '/../network_plugin/' + kube_network_plugin + '/tasks/reset.yml') | realpath }}"
|
2018-08-17 22:37:33 +08:00
|
|
|
when:
|
2018-12-05 03:37:45 +08:00
|
|
|
- kube_network_plugin in ['flannel', 'cilium', 'contiv', 'kube-router', 'calico']
|
2017-12-06 22:15:40 +08:00
|
|
|
tags:
|
2018-08-16 23:34:33 +08:00
|
|
|
- network
|
2017-12-06 22:15:40 +08:00
|
|
|
|
2016-12-22 00:18:11 +08:00
|
|
|
- name: reset | Restart network
|
|
|
|
service:
|
|
|
|
name: >-
|
|
|
|
{% if ansible_os_family == "RedHat" -%}
|
2019-12-09 17:37:10 +08:00
|
|
|
{%- if ansible_distribution_major_version|int == 8 -%}
|
|
|
|
NetworkManager
|
|
|
|
{%- else -%}
|
2016-12-22 00:18:11 +08:00
|
|
|
network
|
2019-12-09 17:37:10 +08:00
|
|
|
{%- endif -%}
|
2020-07-04 17:02:48 +08:00
|
|
|
{%- elif ansible_distribution == "Ubuntu" and ansible_distribution_release in ["bionic", "focal"] -%}
|
2018-10-02 18:10:52 +08:00
|
|
|
systemd-networkd
|
2016-12-22 00:18:11 +08:00
|
|
|
{%- elif ansible_os_family == "Debian" -%}
|
|
|
|
networking
|
|
|
|
{%- endif %}
|
|
|
|
state: restarted
|
2018-10-11 15:45:00 +08:00
|
|
|
when:
|
2020-08-28 17:28:53 +08:00
|
|
|
- ansible_os_family not in ["Flatcar Container Linux by Kinvolk"]
|
2018-10-11 15:45:00 +08:00
|
|
|
- reset_restart_network
|
2017-10-05 15:43:04 +08:00
|
|
|
tags:
|
|
|
|
- services
|
|
|
|
- network
|