diff --git a/handlers/main.yml b/handlers/main.yml index 55e2efc..48c6ec9 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -16,16 +16,15 @@ - name: Restart Kubernetes ansible.builtin.service: - name: "{% if kubernetes_type == 'k3s' %}k3s{% else %}kubelet{% endif %}" + name: |- + {%- if kubernetes_type == 'k3s' -%} + {%- if Kubernetes_Master | default(false) | bool -%} + k3s + {%- else -%} + k3s-agent + {%- endif -%} + {%- else -%} + kubelet + {%- endif %} state: restarted listen: kubernetes_restart - when: > - Kubernetes_Master | default(false) | bool - -- name: Restart Kubernetes - ansible.builtin.service: - name: "{% if kubernetes_type == 'k3s' %}k3s-agent{% else %}kubelet{% endif %}" - state: restarted - listen: kubernetes_restart - when: > - not Kubernetes_Master | default(false) | bool diff --git a/tasks/k3s/install.yaml b/tasks/k3s/install.yaml index 336815e..7ea2982 100644 --- a/tasks/k3s/install.yaml +++ b/tasks/k3s/install.yaml @@ -135,7 +135,7 @@ -arm64 {%- endif %} method: GET - return_content: true + return_content: false status_code: - 200 - 304 @@ -206,6 +206,23 @@ # kubernetes_config.cluster.prime.name == inventory_hostname +- name: Fetch Join Token + ansible.builtin.slurp: + src: /var/lib/rancher/k3s/server/token + delegate_to: "{{ kubernetes_config.cluster.prime.name }}" + run_once: true + register: k3s_join_token + no_log: true # Value is sensitive + + +- name: Create Token fact + ansible.builtin.set_fact: + k3s_join_token: "{{ k3s_join_token.content | b64decode | replace('\n', '') }}" + delegate_to: "{{ kubernetes_config.cluster.prime.name }}" + run_once: true + no_log: true # Value is sensitive + + - name: Copy Intial required templates ansible.builtin.template: src: "{{ item.src }}" @@ -307,23 +324,6 @@ kubernetes_config.cluster.networking.encrypt | default(false) | bool -- name: Fetch Join Token - ansible.builtin.slurp: - src: /var/lib/rancher/k3s/server/token - delegate_to: "{{ kubernetes_config.cluster.prime.name }}" - run_once: true - register: k3s_join_token - no_log: true # Value is sensitive - - -- name: Create Token fact - ansible.builtin.set_fact: - k3s_join_token: "{{ k3s_join_token.content | b64decode | replace('\n', '') }}" - delegate_to: "{{ kubernetes_config.cluster.prime.name }}" - run_once: true - no_log: true # Value is sensitive - - - name: Install K3s (master nodes) ansible.builtin.shell: cmd: | diff --git a/templates/k3s-config.yaml.j2 b/templates/k3s-config.yaml.j2 index 9122726..152b8dc 100644 --- a/templates/k3s-config.yaml.j2 +++ b/templates/k3s-config.yaml.j2 @@ -42,8 +42,28 @@ kubelet-arg: - system-reserved=cpu={{ kubelet_arg_system_reserved_cpu }},memory={{ kubelet_arg_system_reserved_memory }},ephemeral-storage={{ kubelet_arg_system_reserved_storage }} {% if host_external_ip | default('') %}node-external-ip: "{{ host_external_ip }}"{% endif %} -{% if not Kubernetes_Prime | default(false) | bool -%} -server: https://{{ hostvars[kubernetes_config.cluster.prime.name].ansible_host }}:6443 +{% if + groups[kubernetes_config.cluster.group_name] | default([]) | list | length > 0 +-%} +server: {% for cluster_node in groups[kubernetes_config.cluster.group_name] +%} + {% if + cluster_node in groups['kubernetes_master'] + -%} + - https:// + {%- if hostvars[cluster_node].host_external_ip is defined -%} + + {{ hostvars[cluster_node].host_external_ip }} + + {%- else -%} + + {{ hostvars[cluster_node].ansible_host }} + + {%- endif -%} + :6443 + {%- endif -%} + + {%- endfor %} + {%- endif %} {% if Kubernetes_Master | default(false) | bool -%}