Install the k3s servers one at a time with retries from the latest channel, enable the service and link the kubeconfig to ~/.kube/config

This commit is contained in:
2026-10-09 14:37:28 +00:00
parent 4a76aa3a2e
commit 60b67f748e
+36 -54
View File
@@ -1,63 +1,45 @@
- name: Install K3s-server for 1st-node - block:
command: /root/k3s_install.sh {{ type }} - name: Install K3s-server
environment: command: /root/k3s_install.sh {{ type }}
INSTALL_K3S_VERSION: "{{ kubernetes.version }}" environment:
when: INSTALL_K3S_CHANNEL: latest
- "inventory_hostname == groups['kubernetes'][0]" INSTALL_K3S_VERSION: "{{ kubernetes.version }}"
- k3s_installed.rc != 0 or (kubernetes.version != '' and ('k3s version ' ~ kubernetes.version ~ ' ') not in k3s_installed.stdout) when: k3s_installed.rc != 0 or (kubernetes.version != '' and ('k3s version ' ~ kubernetes.version ~ ' ') not in k3s_installed.stdout)
register: command register: command
changed_when: "'No change detected' not in command.stdout" changed_when: "'No change detected' not in command.stdout"
until: "command is not failed"
retries: 2
delay: 10
- name: Make sure service is started / restarted on config change - name: Make sure service is started / restarted on config change
service: service:
name: k3s name: k3s
state: "{{ 'restarted' if not command.changed and config.changed else 'started' }}" enabled: true
when: "inventory_hostname == groups['kubernetes'][0]" state: "{{ 'restarted' if not command.changed and config.changed else 'started' }}"
- name: Waiting for K3s-server to accept connections
ansible.builtin.wait_for:
host: "{{ inventory_hostname }}"
port: 6443
state: started
throttle: 1
- name: Waiting for K3s-server to accept connections - name: Ensure the .kube directory exists
ansible.builtin.wait_for: file:
host: "{{ inventory_hostname }}" path: "~/.kube"
port: 6443 state: directory
state: started mode: "0755"
when: "inventory_hostname == groups['kubernetes'][0]"
- name: Install K3s-server for other nodes - name: Create symbolic link for k3s.yaml
command: /root/k3s_install.sh {{ type }} file:
environment: src: "/etc/rancher/k3s/k3s.yaml"
INSTALL_K3S_VERSION: "{{ kubernetes.version }}" dest: "~/.kube/config"
when: state: link
- "inventory_hostname != groups['kubernetes'][0]"
- k3s_installed.rc != 0 or (kubernetes.version != '' and ('k3s version ' ~ kubernetes.version ~ ' ') not in k3s_installed.stdout)
register: command
changed_when: "'No change detected' not in command.stdout"
until: "command is not failed"
retries: 2
delay: 10
- name: Make sure service is started / restarted on config change
service:
name: k3s
state: "{{ 'restarted' if not command.changed and config.changed else 'started' }}"
when: "inventory_hostname != groups['kubernetes'][0]"
- name: Waiting for K3s-server to accept connections on other nodes
ansible.builtin.wait_for:
host: "{{ inventory_hostname }}"
port: 6443
state: started
when: "inventory_hostname != groups['kubernetes'][0]"
#- name: Add Kubernetes environment-vars to /etc/profile.d/
# blockinfile:
# path: /etc/profile.d/k3s-bin.sh
# marker: "# {mark} ANSIBLE MANAGED BLOCK | k3s"
# block: |
# export KUBECONFIG="/etc/rancher/k3s/k3s.yaml"
# create: true
- name: Deploy calico - name: Deploy calico
import_tasks: ./roles/kubernetes/tasks/install/server/network-plugin/deploy_calico.yml import_tasks: ./roles/kubernetes/tasks/install/server/network-plugin/deploy_calico.yml
when: "kubernetes.network.plugin == 'calico'" when:
- "kubernetes.network.plugin == 'calico'"
- name: Deploy network-helpers - name: Deploy network-helpers
import_tasks: ./roles/kubernetes/tasks/install/server/network-plugin/deploy_network_helper.yml import_tasks: ./roles/kubernetes/tasks/install/server/network-plugin/deploy_network_helper.yml