Files
home-ops/template/config/talos/all/20-network-links.yaml.tpl.j2
T
grachevkoandGitHub e502e0ff76
Label Sync / Label Sync (push) Failing after 1m7s
E2E / reject-invalid (bad-bgp-asn) (push) Skipped
E2E / reject-invalid (bad-mac-address) (push) Skipped
E2E / reject-invalid (bad-repo-url) (push) Skipped
E2E / reject-invalid (bad-vlan-tag) (push) Skipped
E2E / reject-invalid (duplicate-gateway-addrs) (push) Skipped
E2E / reject-invalid (duplicate-node-names) (push) Skipped
E2E / reject-invalid (gateway-node-collision) (push) Skipped
E2E / reject-invalid (missing-dns-token) (push) Skipped
E2E / reject-invalid (nested-cidr-overlap) (push) Skipped
E2E / reject-invalid (node-addr-outside-cidr) (push) Skipped
E2E / reject-invalid (tunnel-without-dns) (push) Skipped
E2E / accept-valid (selfhosted) (push) Skipped
E2E / reject-invalid (missing-known-hosts) (push) Skipped
E2E / reject-invalid (missing-schematic) (push) Skipped
E2E / reject-invalid (partial-bgp) (push) Skipped
E2E / accept-valid (internal) (push) Skipped
E2E / reject-invalid (missing-external-gateway) (push) Skipped
E2E / reject-invalid (node-uses-gateway-addr) (push) Skipped
E2E / reject-invalid (non-canonical-cidr) (push) Skipped
E2E / accept-valid (private) (push) Skipped
E2E / accept-valid (single-node) (push) Skipped
E2E / reject-invalid (overlapping-cidrs) (push) Skipped
E2E / reject-invalid (reserved-node-name) (push) Skipped
E2E / reject-invalid (tiny-svc-cidr) (push) Skipped
E2E / validator-tests (push) Skipped
E2E / accept-valid (direct) (push) Skipped
E2E / accept-valid (multi-controller) (push) Skipped
E2E / accept-valid (no-webhook) (push) Skipped
E2E / accept-valid (public) (push) Skipped
Initial commit
2026-09-15 22:21:43 +03:00

42 lines
1.2 KiB
Django/Jinja

#| Node networking as Talos 1.13+ typed network documents. The MAC-matched
link is enslaved to a single-link active-backup bond so every consumer
(Cilium devices, VLANs, the VIP, metrics) sees a stable interface name,
bond0, regardless of kernel NIC naming; a second NIC can join the bond
later without renaming anything. The bond name is also referenced by
`devices` in the cilium HelmRelease. #|
#% set link = 'bond0.' ~ network.vlan_tag if network.vlan_tag else 'bond0' %#
---
apiVersion: v1alpha1
kind: LinkAliasConfig
name: ethSel0
selector:
match: glob("{{ .Node.Data.macAddr }}", mac(link.hardware_addr))
---
apiVersion: v1alpha1
kind: BondConfig
name: bond0
links:
- ethSel0
bondMode: active-backup
mtu: {{ .Node.Data.mtu }}
#% if network.vlan_tag %#
---
apiVersion: v1alpha1
kind: VLANConfig
name: #{ link }#
parent: bond0
vlanID: #{ network.vlan_tag }#
mtu: {{ .Node.Data.mtu }}
#% endif %#
addresses:
- address: "{{ .Node.IP }}/#{ network.node_cidr.split('/') | last }#"
routes:
- gateway: "#{ network.default_gateway }#"
{{- if eq .Node.Role "control-plane" }}
---
apiVersion: v1alpha1
kind: Layer2VIPConfig
link: #{ link }#
name: "#{ kubernetes.api.addr }#"
{{- end }}