xoxys.k3s/tasks/init.yml

60 lines
1.6 KiB
YAML

---
- 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"
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