Files
warewulf/overlays/netplan/rootfs/etc/netplan/warewulf.yaml.ww
Jonathon Anderson 4e67db0be6 Reflection-based template walking
Rather than deriving the identity of template variables by string parsing the
name, identify its relationship to the underlying struct using reflection.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-12-09 23:16:00 -07:00

66 lines
1.6 KiB
Plaintext

# This file is autogenerated by warewulf
network:
version: 2
renderer: networkd
{{- $NetDevs := .NetDevs }}
{{- $ethernets := list }}
{{- $bonds := list }}
{{- range $devname, $netdev := $NetDevs }}
{{- if $netdev.Device }}
{{- if eq (default "ethernet" (lower $netdev.Type)) "ethernet" }}
{{- $ethernets = append $ethernets $devname }}
{{- else if eq (lower $netdev.Type) "bond" }}
{{- $bonds = append $bonds $devname }}
{{- end }}
{{- end }}
{{- end }}
{{- if $ethernets }}
ethernets:
{{- range $netdev := $NetDevs }}
{{- if eq (default "ethernet" (lower $netdev.Type)) "ethernet" }}
{{$netdev.Device}}:
dhcp4: no
optional: true
{{- if $netdev.IpCIDR }}
addresses:
- {{$netdev.IpCIDR}}
{{- end }}
{{- if $netdev.MTU}}
mtu: {{$netdev.MTU}}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- if $bonds }}
bonds:
{{- range $netdev := $NetDevs }}
{{- if eq (lower $netdev.Type) "bond" }}
{{$netdev.Device}}:
dhcp4: no
optional: true
{{- if $netdev.IpCIDR }}
addresses:
- {{$netdev.IpCIDR}}
{{- end }}
{{- if $netdev.MTU}}
mtu: {{$netdev.MTU}}
{{- end }}
parameters:
mode: {{ default "balance-rr" $netdev.Tags.mode }}
mii-monitor-interval: {{ default 100 $netdev.Tags.miimon }}
{{- $interfaces := list }}
{{- range $iface := $NetDevs }}
{{- if eq $iface.Tags.master $netdev.Device }}
{{- $interfaces = append $interfaces $iface.Device }}
{{- end }}
{{- end }}
{{- if $interfaces }}
interfaces:
{{- range $ifacename := $interfaces }}
- {{ $ifacename }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}