mirror of
https://github.com/techno-tim/k3s-ansible.git
synced 2026-08-08 23:13:19 +02:00
fix(metallb): guard cilium_bgp when undefined; clarify apiserver_endpoint docs (#683)
* fix(metallb): guard cilium_bgp variable before evaluating - The 'Deploy metallb manifest' and 'Deploy metallb pool' conditionals evaluate 'not cilium_bgp' directly, which raises an undefined-variable error when the k3s_server role runs without cilium_bgp in scope and no Cilium variables are set - Guard with 'cilium_bgp is not defined' so the condition resolves cleanly when Cilium BGP is not configured - Fixes #644 * docs(apiserver): clarify apiserver_endpoint must be a free routable IP - Note that apiserver_endpoint must be an unassigned, routable IP on the network and that it is exposed by kube-vip / MetalLB - Fixes #678 * fix(molecule): wait for MetalLB resources before asserting images - The MetalLB image-tag assertion crashed with 'list object has no element 0' when the controller Deployment was not yet observable at verify time - Retry the MetalLB controller/speaker lookup until the resources appear - Fail with a clear message if MetalLB is genuinely absent
This commit is contained in:
@@ -47,7 +47,9 @@ kube_vip_bgp_as: "64513" # Defines the AS for the BGP server
|
||||
kube_vip_bgp_peeraddress: "192.168.30.1" # Defines the address for the BGP peer
|
||||
kube_vip_bgp_peeras: "64512" # Defines the AS for the BGP peer
|
||||
|
||||
# apiserver_endpoint is virtual ip-address which will be configured on each master
|
||||
# apiserver_endpoint is virtual ip-address which will be configured on each master.
|
||||
# This must be a free, routable IP on your network (not already assigned to a host
|
||||
# or service), and is used by kube-vip / MetalLB to expose the Kubernetes API.
|
||||
apiserver_endpoint: 192.168.30.222
|
||||
|
||||
# k3s_token is required masters can talk together securely
|
||||
|
||||
@@ -219,12 +219,26 @@
|
||||
namespace: metallb-system
|
||||
kubeconfig: "{{ kubecfg_path }}"
|
||||
register: metallb_info
|
||||
until: metallb_info.resources | length > 0
|
||||
retries: 15
|
||||
delay: 10
|
||||
loop:
|
||||
- { kind: Deployment, name: controller }
|
||||
- { kind: DaemonSet, name: speaker }
|
||||
loop_control:
|
||||
label: "{{ item.kind }}/{{ item.name }}"
|
||||
|
||||
- name: Fail with a clear message if MetalLB resources are missing
|
||||
ansible.builtin.fail:
|
||||
msg: >-
|
||||
Did not find {{ item.kind | lower }} {{ item.name }} in
|
||||
metallb-system. Expected MetalLB to be deployed in this
|
||||
scenario (verify_lb: {{ verify_lb }}).
|
||||
when: item.resources | length == 0
|
||||
loop: "{{ metallb_info.results }}"
|
||||
loop_control:
|
||||
label: "{{ item.item.kind }}/{{ item.item.name }}"
|
||||
|
||||
- name: Assert MetalLB controller and speaker use the expected image tags
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
- name: Deploy metallb manifest
|
||||
ansible.builtin.include_tasks: metallb.yml
|
||||
tags: metallb
|
||||
when: kube_vip_lb_ip_range is not defined and (not cilium_bgp or cilium_iface is not defined)
|
||||
when: kube_vip_lb_ip_range is not defined and (cilium_bgp is not defined or cilium_iface is not defined)
|
||||
|
||||
- name: Deploy kube-vip manifest
|
||||
ansible.builtin.include_tasks: kube-vip.yml
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
- name: Deploy metallb pool
|
||||
ansible.builtin.include_tasks: metallb.yml
|
||||
tags: metallb
|
||||
when: kube_vip_lb_ip_range is not defined and (not cilium_bgp or cilium_iface is not defined)
|
||||
when: kube_vip_lb_ip_range is not defined and (cilium_bgp is not defined or cilium_iface is not defined)
|
||||
|
||||
- name: Remove tmp directory used for manifests
|
||||
ansible.builtin.file:
|
||||
|
||||
Reference in New Issue
Block a user