mirror of
https://github.com/techno-tim/k3s-ansible.git
synced 2026-10-23 20:22:03 +02:00
- Bump K3s to v1.36.2+k3s1, Calico to v3.32.1, Cilium to v1.20.0, kube-vip to v1.2.2, kube-vip cloud provider to v0.0.12, and MetalLB to v0.16.0 across sample inventory, role defaults, and argument specs - Pin the Cilium CLI with a new cilium_cli_tag (v0.19.7) instead of the floating stable.txt lookup - Replace the CiliumBGPPeeringPolicy v2alpha1 BGP template with the v2 CiliumBGPClusterConfig, CiliumBGPPeerConfig, CiliumBGPAdvertisement, and CiliumLoadBalancerIPPool resource set - Move Cilium load balancer Helm keys from bpf.loadBalancer to the valid top-level loadBalancer path - Add preflight schema validation and remove the deprecated policy after the v2 objects are accepted - Wait for cilium status after installation - Pin kube-vip RBAC in a repository template instead of fetching a mutable URL, and include EndpointSlice permissions - Fix the kube-vip bgppeers format to address:ASN comma-separated peers - Fail clearly when the MetalLB speaker tag replacement does not apply - Drop the obsolete MetalLB webhook service name version branch
50 lines
2.2 KiB
YAML
50 lines
2.2 KiB
YAML
---
|
|
- name: Create manifests directory on first master
|
|
ansible.builtin.file:
|
|
path: /var/lib/rancher/k3s/server/manifests
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
when: ansible_hostname == hostvars[groups[group_name_master | default('master')][0]]['ansible_hostname']
|
|
|
|
- name: "Download to first master: manifest for metallb-{{ metal_lb_type }}"
|
|
ansible.builtin.get_url:
|
|
url: https://raw.githubusercontent.com/metallb/metallb/{{ metal_lb_controller_tag_version }}/config/manifests/metallb-{{ metal_lb_type }}.yaml # noqa yaml[line-length]
|
|
dest: /var/lib/rancher/k3s/server/manifests/metallb-crds.yaml
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
when: ansible_hostname == hostvars[groups[group_name_master | default('master')][0]]['ansible_hostname']
|
|
|
|
- name: Set image versions in manifest for metallb-{{ metal_lb_type }}
|
|
ansible.builtin.replace:
|
|
path: /var/lib/rancher/k3s/server/manifests/metallb-crds.yaml
|
|
regexp: "{{ item.change | ansible.builtin.regex_escape }}"
|
|
replace: "{{ item.to }}"
|
|
with_items:
|
|
- change: metallb/speaker:{{ metal_lb_controller_tag_version }}
|
|
to: metallb/speaker:{{ metal_lb_speaker_tag_version }}
|
|
loop_control:
|
|
label: "{{ item.change }} => {{ item.to }}"
|
|
when: ansible_hostname == hostvars[groups[group_name_master | default('master')][0]]['ansible_hostname']
|
|
|
|
- name: Read back MetalLB manifest to verify the speaker image tag
|
|
ansible.builtin.set_fact:
|
|
metallb_manifest_has_speaker_tag: >-
|
|
{{
|
|
metal_lb_speaker_tag_version in
|
|
lookup('ansible.builtin.file', '/var/lib/rancher/k3s/server/manifests/metallb-crds.yaml')
|
|
}}
|
|
when: ansible_hostname == hostvars[groups[group_name_master | default('master')][0]]['ansible_hostname']
|
|
|
|
- name: Fail if MetalLB speaker tag was not applied to the manifest
|
|
ansible.builtin.fail:
|
|
msg: >-
|
|
MetalLB speaker image tag {{ metal_lb_speaker_tag_version }}
|
|
was not found in the downloaded manifest. The upstream image
|
|
reference may have changed.
|
|
when:
|
|
- ansible_hostname == hostvars[groups[group_name_master | default('master')][0]]['ansible_hostname']
|
|
- not metallb_manifest_has_speaker_tag
|