diff --git a/roles/kubernetes/node/tasks/loadbalancer/kube-vip.yml b/roles/kubernetes/node/tasks/loadbalancer/kube-vip.yml index 7e3471593..b210cfe16 100644 --- a/roles/kubernetes/node/tasks/loadbalancer/kube-vip.yml +++ b/roles/kubernetes/node/tasks/loadbalancer/kube-vip.yml @@ -6,6 +6,32 @@ - kube_proxy_mode == 'ipvs' and not kube_proxy_strict_arp - kube_vip_arp_enabled +- name: Kube-vip | Check if super-admin.conf exists + stat: + path: "{{ kube_config_dir }}/super-admin.conf" + failed_when: false + changed_when: false + register: stat_kube_vip_super_admin + +- name: Kube-vip | Check if kubeadm has already run + stat: + path: "/var/lib/kubelet/config.yaml" + get_attributes: no + get_checksum: no + get_mime: no + register: kubeadm_already_run + +- name: Kube-vip | Set admin.conf + set_fact: + kube_vip_admin_conf: admin.conf + +- name: Kube-vip | Set admin.conf for first Control Plane + set_fact: + kube_vip_admin_conf: super-admin.conf + when: + - inventory_hostname == groups['kube_control_plane'] | first + - (stat_kube_vip_super_admin.stat.exists and stat_kube_vip_super_admin.stat.isreg) or (not kubeadm_already_run.stat.exists ) + - name: Kube-vip | Write static pod template: src: manifests/kube-vip.manifest.j2 diff --git a/roles/kubernetes/node/templates/manifests/kube-vip.manifest.j2 b/roles/kubernetes/node/templates/manifests/kube-vip.manifest.j2 index 11a971e93..35b6f0eee 100644 --- a/roles/kubernetes/node/templates/manifests/kube-vip.manifest.j2 +++ b/roles/kubernetes/node/templates/manifests/kube-vip.manifest.j2 @@ -119,6 +119,6 @@ spec: hostNetwork: true volumes: - hostPath: - path: /etc/kubernetes/admin.conf + path: /etc/kubernetes/{{kube_vip_admin_conf}} name: kubeconfig status: {}