Deploys kube-vip as a DaemonSet on all k3s server nodes, advertising a VIP (192.168.20.2) via ARP. Eliminates the single-point-of-failure k3s-loadbalancer VM. - New kube_vip role: RBAC + DaemonSet templates, TLS SAN cert rotation - playbooks/kube-vip.yaml: migration playbook (serial=1, idempotent) - Updated k3s install tasks (server primary/secondary, agent) to use k3s_vip instead of the loadbalancer VM IP - Added k3s_vip: 192.168.20.2 to group_vars (below DHCP range .11-.250) Migration steps in playbook header comment.
30 lines
728 B
YAML
30 lines
728 B
YAML
---
|
|
- name: Install dependencies for apt to use repositories over HTTPS
|
|
ansible.builtin.apt:
|
|
name: "{{ item }}"
|
|
state: present
|
|
loop:
|
|
- qemu-guest-agent
|
|
become: true
|
|
|
|
- name: See if k3s file exists
|
|
ansible.builtin.stat:
|
|
path: /usr/local/bin/k3s
|
|
register: k3s_status
|
|
|
|
- name: Download K3s install script to /tmp/
|
|
when: not k3s_status.stat.exists
|
|
ansible.builtin.get_url:
|
|
url: https://get.k3s.io
|
|
dest: /tmp/k3s_install.sh
|
|
mode: "0755"
|
|
|
|
- name: Install K3s on agent
|
|
when: not k3s_status.stat.exists
|
|
ansible.builtin.command: |
|
|
/tmp/k3s_install.sh
|
|
environment:
|
|
K3S_URL: "https://{{ k3s_vip }}:{{ k3s.loadbalancer.default_port }}"
|
|
K3S_TOKEN: "{{ k3s_token }}"
|
|
become: true
|