--- - block: - name: Ensure k3s-init service is stopped systemd: name: k3s-init state: stopped failed_when: False - name: Clean previous runs of k3s-init command: systemctl reset-failed k3s-init failed_when: False changed_when: False args: warn: False - name: Init cluster inside the transient k3s-init service command: cmd: >- systemd-run -p RestartSec=2 -p Restart=on-failure --unit=k3s-init k3s server {{ __k3s_server_init_args }} creates: "{{ __k3s_service_file }}" args: warn: False register: __k3s_init become: True become_user: root - block: - name: Verify that all nodes actually joined command: >- k3s kubectl get nodes -l "node-role.kubernetes.io/master=true" -o=jsonpath="{.items[*].metadata.name}" register: __k3s_init_nodes until: __k3s_init_nodes.rc == 0 and (__k3s_init_nodes.stdout.split() | length) == (k3s_server_nodes | length) retries: 6 delay: 10 changed_when: False always: - name: Fetch k3s-init logs command: journalctl --all --unit=k3s-init.service changed_when: False register: __k3s_init_log - name: Save k3s-init logs copy: content: "{{ __k3s_init_log.stdout }}" dest: "{{ k3s_log_dir }}/k3s-init.log" mode: 0640 when: k3s_init_log_enabled | bool - name: Kill the temporary service used for initialization systemd: name: k3s-init state: stopped failed_when: False become: True become_user: root when: __k3s_init.changed | bool