mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2025-12-14 05:45:06 +03:00
Improve logging of kubeadm init failure of first control plane node (#12216)
Split retry task of 'kubeadm init' to show the failure log of the first execution.
This commit is contained in:
@@ -171,22 +171,32 @@
|
|||||||
- not kube_external_ca_mode
|
- not kube_external_ca_mode
|
||||||
|
|
||||||
- name: Kubeadm | Initialize first control plane node
|
- name: Kubeadm | Initialize first control plane node
|
||||||
command: >-
|
|
||||||
timeout -k {{ kubeadm_init_timeout }} {{ kubeadm_init_timeout }}
|
|
||||||
{{ bin_dir }}/kubeadm init
|
|
||||||
--config={{ kube_config_dir }}/kubeadm-config.yaml
|
|
||||||
--ignore-preflight-errors={{ kubeadm_ignore_preflight_errors | join(',') }}
|
|
||||||
--skip-phases={{ kubeadm_init_phases_skip | join(',') }}
|
|
||||||
{{ kube_external_ca_mode | ternary('', '--upload-certs') }}
|
|
||||||
register: kubeadm_init
|
|
||||||
# Retry is because upload config sometimes fails
|
|
||||||
retries: 3
|
|
||||||
until: kubeadm_init is succeeded or "field is immutable" in kubeadm_init.stderr
|
|
||||||
when: inventory_hostname == first_kube_control_plane and not kubeadm_already_run.stat.exists
|
when: inventory_hostname == first_kube_control_plane and not kubeadm_already_run.stat.exists
|
||||||
failed_when: kubeadm_init.rc != 0 and "field is immutable" not in kubeadm_init.stderr
|
vars:
|
||||||
|
kubeadm_init_first_control_plane_cmd: >-
|
||||||
|
timeout -k {{ kubeadm_init_timeout }} {{ kubeadm_init_timeout }}
|
||||||
|
{{ bin_dir }}/kubeadm init
|
||||||
|
--config={{ kube_config_dir }}/kubeadm-config.yaml
|
||||||
|
--ignore-preflight-errors={{ kubeadm_ignore_preflight_errors | join(',') }}
|
||||||
|
--skip-phases={{ kubeadm_init_phases_skip | join(',') }}
|
||||||
|
{{ kube_external_ca_mode | ternary('', '--upload-certs') }}
|
||||||
environment:
|
environment:
|
||||||
PATH: "{{ bin_dir }}:{{ ansible_env.PATH }}"
|
PATH: "{{ bin_dir }}:{{ ansible_env.PATH }}"
|
||||||
notify: Control plane | restart kubelet
|
notify: Control plane | restart kubelet
|
||||||
|
block:
|
||||||
|
- name: Kubeadm | Initialize first control plane node (1st try)
|
||||||
|
command: "{{ kubeadm_init_first_control_plane_cmd }}"
|
||||||
|
register: kubeadm_init
|
||||||
|
failed_when: kubeadm_init.rc != 0 and "field is immutable" not in kubeadm_init.stderr
|
||||||
|
rescue:
|
||||||
|
# Retry is because upload config sometimes fails
|
||||||
|
# This retry task is separated from 1st task to show log of failure of 1st task.
|
||||||
|
- name: Kubeadm | Initialize first control plane node (retry)
|
||||||
|
command: "{{ kubeadm_init_first_control_plane_cmd }}"
|
||||||
|
register: kubeadm_init
|
||||||
|
retries: 2
|
||||||
|
until: kubeadm_init is succeeded or "field is immutable" in kubeadm_init.stderr
|
||||||
|
failed_when: kubeadm_init.rc != 0 and "field is immutable" not in kubeadm_init.stderr
|
||||||
|
|
||||||
- name: Set kubeadm certificate key
|
- name: Set kubeadm certificate key
|
||||||
set_fact:
|
set_fact:
|
||||||
|
|||||||
Reference in New Issue
Block a user