From f49b08f50cfe2814e9baf16f255f17d67dd96b34 Mon Sep 17 00:00:00 2001 From: MichaelFisher1997 Date: Thu, 30 Apr 2026 06:03:53 +0000 Subject: [PATCH] fix: reinstall k3s on version drift --- ansible/roles/k3s-agent/tasks/main.yml | 14 +++++++++++++- ansible/roles/k3s-server/tasks/main.yml | 14 +++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/ansible/roles/k3s-agent/tasks/main.yml b/ansible/roles/k3s-agent/tasks/main.yml index 62878fa..243b512 100644 --- a/ansible/roles/k3s-agent/tasks/main.yml +++ b/ansible/roles/k3s-agent/tasks/main.yml @@ -11,9 +11,21 @@ failed_when: false when: k3s_agent_service.stat.exists +- name: Check installed k3s version + command: k3s --version + register: installed_k3s_version + changed_when: false + failed_when: false + when: k3s_agent_service.stat.exists + - name: Determine whether k3s agent install is needed set_fact: - k3s_agent_install_needed: "{{ (not k3s_agent_service.stat.exists) or ((k3s_agent_service_state.stdout | default('')) != 'active') }}" + k3s_agent_install_needed: >- + {{ + (not k3s_agent_service.stat.exists) + or ((k3s_agent_service_state.stdout | default('')) != 'active') + or (k3s_version != 'latest' and k3s_version not in (installed_k3s_version.stdout | default(''))) + }} - name: Download k3s install script get_url: diff --git a/ansible/roles/k3s-server/tasks/main.yml b/ansible/roles/k3s-server/tasks/main.yml index dba8da5..693dfbe 100644 --- a/ansible/roles/k3s-server/tasks/main.yml +++ b/ansible/roles/k3s-server/tasks/main.yml @@ -11,9 +11,21 @@ failed_when: false when: k3s_service.stat.exists +- name: Check installed k3s version + command: k3s --version + register: installed_k3s_version + changed_when: false + failed_when: false + when: k3s_service.stat.exists + - name: Determine whether k3s install is needed set_fact: - k3s_install_needed: "{{ (not k3s_service.stat.exists) or ((k3s_service_state.stdout | default('')) != 'active') }}" + k3s_install_needed: >- + {{ + (not k3s_service.stat.exists) + or ((k3s_service_state.stdout | default('')) != 'active') + or (k3s_version != 'latest' and k3s_version not in (installed_k3s_version.stdout | default(''))) + }} - name: Wait for API endpoint on 6443 (secondary only) wait_for: