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>
66 lines
1.6 KiB
Plaintext
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 }}
|