--- - name: generate kubeadm.config template: src: kubeadm.config.j2 dest: /etc/kubernetes/kubeadm.config mode: 0600 changed_when: False - name: join kubernetes worker node and store log block: - name: join kubernetes worker node command: "kubeadm join --config /etc/kubernetes/kubeadm.config" args: creates: /etc/kubernetes/kubelet.conf register: kubeadm_join always: - name: dump output of kubeadm join to log file when: kubeadm_join is changed # This is not a handler by design to make sure this action runs at this point of the play. copy: # noqa 503 content: "{{ kubeadm_join.stdout }}\n" dest: /etc/kubernetes/kubeadm-join.log - name: dump error output of kubeadm join to log file when: kubeadm_join.changed and kubeadm_join.stderr copy: content: "{{ kubeadm_join.stderr }}\n" dest: /etc/kubernetes/kubeadm-join.errors - name: wait for new worker node to register delegate_to: "{{ groups['_kubernetes_primary_controlplane_node_'] | first }}" check_mode: no command: "kubectl --kubeconfig /etc/kubernetes/admin.conf get nodes -o name {{ kubernetes_node_name }}" changed_when: False register: kubectl_node_get until: kubectl_node_get.rc == 0 retries: 30 delay: 2