- name: Create k3s-folder ansible.builtin.file: path: /etc/rancher/k3s/ state: directory mode: "0755" - name: Read the live k3s config slurp: src: /etc/rancher/k3s/config.yaml register: live_config failed_when: false # A rewrite restarts k3s, so the file is written only when k3s would read other # settings: the live files differ from the rendering in comments, order and # whitespace. - name: Deploy k3s config ansible.builtin.template: src: k3s/{{ type }}/config.yaml.jinja2 dest: /etc/rancher/k3s/config.yaml register: config when: >- live_config.content is not defined or (live_config.content | b64decode | from_yaml) != (lookup('template', 'k3s/' ~ type ~ '/config.yaml.jinja2') | from_yaml) - name: Read the installed k3s version command: k3s --version register: k3s_installed changed_when: false failed_when: false check_mode: false - name: Download install-script get_url: url: https://get.k3s.io dest: /root/k3s_install.sh mode: "744" # todo: update when file changed? - name: Read the live registries.yaml slurp: src: /etc/rancher/k3s/registries.yaml register: live_registries failed_when: false when: "type == 'server'" # Written only on a change k3s would see, like config.yaml - name: Deploy registries.yaml ansible.builtin.template: src: k3s/server/registries.yaml.j2 dest: /etc/rancher/k3s/registries.yaml register: registries_config when: - "type == 'server'" - >- live_registries.content is not defined or (live_registries.content | b64decode | from_yaml) != (lookup('template', 'k3s/server/registries.yaml.j2') | from_yaml) - import_tasks: ./install/server/setup_network.yml when: "type == 'server'" #- import_tasks: ./install/server/install_helm.yml # when: "type == 'server'" - import_tasks: ./install/server/install_k3s.yml when: "type == 'server'" - import_tasks: ./install/agent/install_k3s.yml when: "type == 'agent'"