mirror of
https://github.com/techno-tim/k3s-ansible.git
synced 2026-08-08 23:13:19 +02:00
52c086d638
- roles/k3s_server_post/templates/metallb.crs.j2: render spec.interfaces in the L2Advertisement when metal_lb_interfaces is a non-empty list, so MetalLB only announces on the configured interfaces. Empty list (default) keeps announcing on all interfaces, preserving existing behavior. - roles/k3s_server_post/defaults/main.yml: add metal_lb_interfaces: [] default - roles/k3s_server_post/meta/main.yml: add metal_lb_interfaces argument_spec - inventory/sample/group_vars/all.yml: document the new sample variable - .github/scripts/test-metallb-interfaces.py: regression test rendering the template for empty/single/multiple interfaces and confirming the BGP path is unaffected - .pre-commit-config.yaml: wire the new test into pre-commit Co-authored-by: Leo <leo@kuboschek.me>
49 lines
1.1 KiB
Django/Jinja
49 lines
1.1 KiB
Django/Jinja
apiVersion: metallb.io/v1beta1
|
|
kind: IPAddressPool
|
|
metadata:
|
|
name: first-pool
|
|
namespace: metallb-system
|
|
spec:
|
|
addresses:
|
|
{% if metal_lb_ip_range is string %}
|
|
{# metal_lb_ip_range was used in the legacy way: single string instead of a list #}
|
|
{# => transform to list with single element #}
|
|
{% set metal_lb_ip_range = [metal_lb_ip_range] %}
|
|
{% endif %}
|
|
{% for range in metal_lb_ip_range %}
|
|
- {{ range }}
|
|
{% endfor %}
|
|
|
|
{% if metal_lb_mode == "layer2" %}
|
|
---
|
|
apiVersion: metallb.io/v1beta1
|
|
kind: L2Advertisement
|
|
metadata:
|
|
name: default
|
|
namespace: metallb-system
|
|
{% if metal_lb_interfaces | default([]) | length > 0 %}
|
|
spec:
|
|
interfaces:{% for iface in metal_lb_interfaces %}
|
|
- {{ iface }}{% endfor %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% if metal_lb_mode == "bgp" %}
|
|
---
|
|
apiVersion: metallb.io/v1beta2
|
|
kind: BGPPeer
|
|
metadata:
|
|
name: default
|
|
namespace: metallb-system
|
|
spec:
|
|
myASN: {{ metal_lb_bgp_my_asn }}
|
|
peerASN: {{ metal_lb_bgp_peer_asn }}
|
|
peerAddress: {{ metal_lb_bgp_peer_address }}
|
|
|
|
---
|
|
apiVersion: metallb.io/v1beta1
|
|
kind: BGPAdvertisement
|
|
metadata:
|
|
name: default
|
|
namespace: metallb-system
|
|
{% endif %}
|