mirror of
https://github.com/PyratLabs/ansible-role-k3s
synced 2024-11-06 13:53:29 +01:00
101 lines
3.3 KiB
YAML
101 lines
3.3 KiB
YAML
---
|
|
|
|
- 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 config directory exists
|
|
file:
|
|
path: "{{ k3s_config_file | dirname }}"
|
|
state: directory
|
|
mode: 0755
|
|
recurse: true
|
|
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
|
|
become: "{{ k3s_become_for_systemd | ternary(true, false, k3s_become_for_all) }}"
|
|
|
|
- name: Ensure k3s config file exists on control plane
|
|
template:
|
|
src: config.yaml.j2
|
|
dest: "{{ k3s_config_file }}"
|
|
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_install_dir | ternary(true, false, k3s_become_for_all) }}"
|
|
|
|
- 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) }}"
|