6519a7673d
The kube-vip DaemonSet is applied before the secondary control planes join, so waiting for a full DaemonSet rollout blocks bootstrap on nodes that do not exist in the cluster yet. Wait only for the primary node's kube-vip pod and then verify the VIP is reachable on 6443.
30 lines
819 B
YAML
30 lines
819 B
YAML
---
|
|
- name: Render kube-vip control plane manifest
|
|
template:
|
|
src: kube-vip-control-plane.yaml.j2
|
|
dest: /tmp/kube-vip-control-plane.yaml
|
|
mode: "0644"
|
|
|
|
- name: Apply kube-vip control plane manifest
|
|
command: kubectl apply -f /tmp/kube-vip-control-plane.yaml
|
|
changed_when: true
|
|
|
|
- name: Wait for local kube-vip pod to be ready
|
|
command: >-
|
|
kubectl -n kube-system get pods
|
|
-l app.kubernetes.io/name=kube-vip
|
|
--field-selector spec.nodeName={{ inventory_hostname }}
|
|
-o jsonpath={.items[0].status.conditions[?(@.type=="Ready")].status}
|
|
register: kube_vip_pod_ready
|
|
changed_when: false
|
|
until: kube_vip_pod_ready.stdout == "True"
|
|
retries: 18
|
|
delay: 10
|
|
|
|
- name: Wait for API VIP on 6443
|
|
wait_for:
|
|
host: "{{ kube_vip_address }}"
|
|
port: 6443
|
|
state: started
|
|
timeout: 180
|