ac60786c6f
* Add support for restart handlers for control plane on crio/containerd Change-Id: I8343cc4e9df7f55b732628ed01cc6e7ea5dcee85 * Update main.yml
137 lines
4.2 KiB
YAML
137 lines
4.2 KiB
YAML
---
|
|
- name: Master | restart kubelet
|
|
command: /bin/true
|
|
notify:
|
|
- Master | reload systemd
|
|
- Master | reload kubelet
|
|
- Master | wait for master static pods
|
|
|
|
- name: Master | wait for master static pods
|
|
command: /bin/true
|
|
notify:
|
|
- Master | wait for the apiserver to be running
|
|
- Master | wait for kube-scheduler
|
|
- Master | wait for kube-controller-manager
|
|
|
|
- name: Master | Restart apiserver
|
|
command: /bin/true
|
|
notify:
|
|
- Master | Remove apiserver container docker
|
|
- Master | Remove apiserver container containerd/crio
|
|
- Master | wait for the apiserver to be running
|
|
|
|
- name: Master | Restart kube-scheduler
|
|
command: /bin/true
|
|
notify:
|
|
- Master | Remove scheduler container docker
|
|
- Master | Remove scheduler container containerd/crio
|
|
- Master | wait for kube-scheduler
|
|
|
|
- name: Master | Restart kube-controller-manager
|
|
command: /bin/true
|
|
notify:
|
|
- Master | Remove controller manager container docker
|
|
- Master | Remove controller manager container containerd/crio
|
|
- Master | wait for kube-controller-manager
|
|
|
|
- name: Master | reload systemd
|
|
systemd:
|
|
daemon_reload: true
|
|
|
|
- name: Master | reload kubelet
|
|
service:
|
|
name: kubelet
|
|
state: restarted
|
|
|
|
- name: Master | Remove apiserver container docker
|
|
shell: docker ps -af name=k8s_kube-apiserver* -q | xargs --no-run-if-empty docker rm -f
|
|
register: remove_apiserver_container
|
|
retries: 10
|
|
until: remove_apiserver_container.rc == 0
|
|
delay: 1
|
|
when: container_manager == "docker"
|
|
|
|
- name: Master | Remove apiserver container containerd/crio
|
|
shell: crictl pods --name kube-apiserver* -q | xargs -I% --no-run-if-empty bash -c 'crictl stopp % && crictl rmp %'
|
|
register: remove_apiserver_container
|
|
retries: 10
|
|
until: remove_apiserver_container.rc == 0
|
|
delay: 1
|
|
when: container_manager in ['containerd', 'crio']
|
|
|
|
- name: Master | Remove scheduler container docker
|
|
shell: "docker ps -af name=k8s_kube-scheduler* -q | xargs --no-run-if-empty docker rm -f"
|
|
register: remove_scheduler_container
|
|
retries: 10
|
|
until: remove_scheduler_container.rc == 0
|
|
delay: 1
|
|
when: container_manager == "docker"
|
|
|
|
- name: Master | Remove scheduler container containerd/crio
|
|
shell: crictl pods --name kube-scheduler* -q | xargs -I% --no-run-if-empty bash -c 'crictl stopp % && crictl rmp %'
|
|
register: remove_scheduler_container
|
|
retries: 10
|
|
until: remove_scheduler_container.rc == 0
|
|
delay: 1
|
|
when: container_manager in ['containerd', 'crio']
|
|
|
|
- name: Master | Remove controller manager container docker
|
|
shell: "docker ps -af name=k8s_kube-controller-manager* -q | xargs --no-run-if-empty docker rm -f"
|
|
register: remove_cm_container
|
|
retries: 10
|
|
until: remove_cm_container.rc == 0
|
|
delay: 1
|
|
when: container_manager == "docker"
|
|
|
|
- name: Master | Remove controller manager container containerd/crio
|
|
shell: crictl pods --name kube-controller-manager* -q | xargs -I% --no-run-if-empty bash -c 'crictl stopp % && crictl rmp %'
|
|
register: remove_cm_container
|
|
retries: 10
|
|
until: remove_cm_container.rc == 0
|
|
delay: 1
|
|
when: container_manager in ['containerd', 'crio']
|
|
|
|
- name: Master | wait for kube-scheduler
|
|
uri:
|
|
url: http://localhost:10251/healthz
|
|
register: scheduler_result
|
|
until: scheduler_result.status == 200
|
|
retries: 60
|
|
delay: 1
|
|
|
|
- name: Master | wait for kube-controller-manager
|
|
uri:
|
|
url: http://localhost:10252/healthz
|
|
register: controller_manager_result
|
|
until: controller_manager_result.status == 200
|
|
retries: 60
|
|
delay: 1
|
|
|
|
- name: Master | wait for the apiserver to be running
|
|
uri:
|
|
url: "{{ kube_apiserver_endpoint }}/healthz"
|
|
validate_certs: no
|
|
client_cert: "{{ kube_apiserver_client_cert }}"
|
|
client_key: "{{ kube_apiserver_client_key }}"
|
|
register: result
|
|
until: result.status == 200
|
|
retries: 60
|
|
delay: 1
|
|
|
|
- name: Master | set secret_changed
|
|
command: /bin/true
|
|
notify:
|
|
- Master | set secret_changed to true
|
|
- Master | Copy new kubeconfig for root user
|
|
|
|
- name: Master | set secret_changed to true
|
|
set_fact:
|
|
secret_changed: true
|
|
|
|
- name: Master | Copy new kubeconfig for root user
|
|
copy:
|
|
src: "{{ kube_config_dir }}/admin.conf"
|
|
dest: "{{ ansible_env.HOME | default('/root') }}/.kube/config"
|
|
remote_src: yes
|
|
mode: "0600"
|
|
backup: yes
|