diff --git a/roles/k3s_agent/tasks/main.yml b/roles/k3s_agent/tasks/main.yml index c7f9b960..53ee1148 100644 --- a/roles/k3s_agent/tasks/main.yml +++ b/roles/k3s_agent/tasks/main.yml @@ -6,7 +6,7 @@ ignore_errors: true - name: Set k3s installed version - when: k3s_version_output.rc == 0 + when: not ansible_check_mode and k3s_version_output.rc == 0 ansible.builtin.set_fact: installed_k3s_version: "{{ k3s_version_output.stdout_lines[0].split(' ')[2] }}" @@ -15,7 +15,7 @@ # - we couldn't get k3s installed version in the first task of this role # - the installed version of K3s on the nodes is older than the requested version in ansible vars - name: Download artifact only if needed - when: airgap_dir is undefined and ( k3s_version_output.rc != 0 or installed_k3s_version is version(k3s_version, '<') ) + when: not ansible_check_mode and airgap_dir is undefined and ( k3s_version_output.rc != 0 or installed_k3s_version is version(k3s_version, '<') ) block: - name: Download K3s install script ansible.builtin.get_url: @@ -35,6 +35,21 @@ INSTALL_K3S_EXEC: "agent" changed_when: true +- name: Setup optional config file + when: agent_config_yaml is defined + block: + - name: Make config directory + ansible.builtin.file: + path: "/etc/rancher/k3s" + mode: "0755" + state: directory + - name: Copy config values + ansible.builtin.copy: + content: "{{ agent_config_yaml }}" + dest: "/etc/rancher/k3s/config.yaml" + mode: "0644" + register: _agent_config_result + - name: Get the token from the first server ansible.builtin.set_fact: token: "{{ hostvars[groups[server_group][0]].token }}" @@ -66,5 +81,5 @@ ansible.builtin.systemd: name: k3s-agent daemon_reload: "{{ true if k3s_agent_service.changed else false }}" - state: "{{ 'restarted' if k3s_agent_service.changed else 'started' }}" + state: "{{ 'restarted' if (k3s_agent_service.changed or _agent_config_result.changed) else 'started' }}" enabled: true diff --git a/roles/k3s_server/tasks/main.yml b/roles/k3s_server/tasks/main.yml index 4c434b6e..a9b41251 100644 --- a/roles/k3s_server/tasks/main.yml +++ b/roles/k3s_server/tasks/main.yml @@ -6,7 +6,7 @@ ignore_errors: true - name: Set k3s installed version - when: k3s_version_output.rc == 0 + when: not ansible_check_mode and k3s_version_output.rc == 0 ansible.builtin.set_fact: installed_k3s_version: "{{ k3s_version_output.stdout_lines[0].split(' ')[2] }}" @@ -15,7 +15,7 @@ # - we couldn't get k3s installed version in the first task of this role # - the installed version of K3s on the nodes is older than the requested version in ansible vars - name: Download artifact only if needed - when: airgap_dir is undefined and ( k3s_version_output.rc != 0 or installed_k3s_version is version(k3s_version, '<') ) + when: not ansible_check_mode and airgap_dir is undefined and ( k3s_version_output.rc != 0 or installed_k3s_version is version(k3s_version, '<') ) block: - name: Download K3s install script ansible.builtin.get_url: @@ -53,6 +53,7 @@ content: "{{ server_config_yaml }}" dest: "/etc/rancher/k3s/config.yaml" mode: "0644" + register: _server_config_result - name: Init first server node when: inventory_hostname == groups[server_group][0] @@ -105,7 +106,7 @@ when: - ansible_facts.services['k3s.service'] is defined - ansible_facts.services['k3s.service'].state == 'running' - - service_file_single.changed or service_file_ha.changed + - service_file_single.changed or service_file_ha.changed or _server_config_result.changed ansible.builtin.systemd: name: k3s daemon_reload: true @@ -247,7 +248,7 @@ when: - ansible_facts.services['k3s.service'] is defined - ansible_facts.services['k3s.service'].state == 'running' - - service_file_ha.changed or service_file_external_db.changed + - service_file_ha.changed or service_file_external_db.changed or _server_config_result.changed ansible.builtin.systemd: name: k3s daemon_reload: true @@ -262,7 +263,7 @@ enabled: true - name: Verify that all server nodes joined - when: (groups[server_group] | length) > 1 + when: not ansible_check_mode and (groups[server_group] | length) > 1 ansible.builtin.command: cmd: > k3s kubectl get nodes -l "node-role.kubernetes.io/control-plane=true" -o=jsonpath="{.items[*].metadata.name}"