--- - name: Ensure k3s is linked into the installation destination on the contol plane file: src: "{{ k3s_install_dir }}/k3s-{{ k3s_release_version }}" dest: "{{ k3s_install_dir }}/{{ item }}" state: "{{ 'hard' if k3s_install_hard_links else 'link' }}" force: "{{ k3s_install_hard_links }}" mode: 0755 loop: - k3s - kubectl - crictl - ctr when: ((k3s_control_node and k3s_controller_count | length == 1) or (k3s_primary_control_node and k3s_controller_count | length > 1)) and not ansible_check_mode notify: - restart k3s become: "{{ k3s_become_for_install_dir | ternary(true, false, k3s_become_for_all) }}" - name: Ensure systemd unit file directory exists file: path: "{{ k3s_systemd_unit_directory }}" state: directory mode: 0755 - name: Ensure k3s service unit file is present on control plane template: src: k3s.service.j2 dest: "{{ k3s_systemd_unit_directory }}/k3s.service" mode: 0644 when: (k3s_control_node and k3s_controller_count | length == 1) or (k3s_primary_control_node and k3s_controller_count | length > 1) notify: - reload systemd - restart k3s become: "{{ k3s_become_for_systemd | ternary(true, false, k3s_become_for_all) }}" - meta: flush_handlers - name: Ensure k3s killall script is present on all nodes template: src: k3s-killall.sh.j2 dest: "/usr/local/bin/k3s-killall.sh" mode: 0700 become: "{{ k3s_become_for_usr_local_bin | ternary(true, false, k3s_become_for_all) }}" - name: Ensure k3s uninstall script is present on all nodes template: src: k3s-uninstall.sh.j2 dest: "/usr/local/bin/k3s-uninstall.sh" mode: 0700 become: "{{ k3s_become_for_usr_local_bin | ternary(true, false, k3s_become_for_all) }}" - name: Ensure k3s is linked into the installation destinations across all nodes file: src: "{{ k3s_install_dir }}/k3s-{{ k3s_release_version }}" dest: "{{ k3s_install_dir }}/{{ item }}" state: "{{ 'hard' if k3s_install_hard_links else 'link' }}" force: "{{ k3s_install_hard_links }}" mode: 0755 notify: - restart k3s loop: - k3s - kubectl - crictl - ctr when: not ansible_check_mode become: "{{ k3s_become_for_install_dir | ternary(true, false, k3s_become_for_all) }}" - name: Ensure k3s control plane is started systemd: name: k3s state: started enabled: true scope: "{{ k3s_systemd_context }}" when: (k3s_control_node and k3s_controller_count | length == 1) or (k3s_primary_control_node and k3s_controller_count | length > 1) become: "{{ k3s_become_for_systemd | ternary(true, false, k3s_become_for_all) }}"