Add support for VLANs and static routes #1257

- NetworkManager
- wicked
- ifcfg
- debian.network_interfaces

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
This commit is contained in:
Jonathon Anderson
2024-10-31 13:55:31 -06:00
parent 2e6b648e09
commit 0cb4db946c
15 changed files with 410 additions and 169 deletions

View File

@@ -1,6 +1,7 @@
{{- $filename := print "warewulf-unmanaged.conf" }}
{{- file $filename }}
# This file is autogenerated by warewulf
[main]
plugins=keyfile

View File

@@ -2,78 +2,84 @@
{{- $filename := print "warewulf-" $connection_id ".conf" }}
{{- file $filename }}
# This file is autogenerated by warewulf
[connection]
id={{ $connection_id }}
interface-name={{ $netdev.Device }}
{{ if eq $netdev.Type "bond-slave" -}}
{{- if eq $netdev.Type "bond-slave" }}
slave-type=bond
{{- $conn := split "_" $connection_id }}
{{- $master := $conn._0 }}
master={{ $master }}
type=ethernet
{{ else -}}
{{- else }}
type={{if $netdev.Type}}{{ $netdev.Type }}{{ else }}ethernet{{end}}
{{ if or $netdev.OnBoot (eq $netdev.OnBoot nil) -}}
{{- if or $netdev.OnBoot (eq $netdev.OnBoot nil) }}
autoconnect=true
{{ end -}}
{{ end -}}
{{ if $netdev.Hwaddr -}}
{{ if or (eq $netdev.Type "ethernet") (not $netdev.Type ) -}}
{{- end }}
{{- end }}
{{- if $netdev.Hwaddr }}
{{- if or (eq $netdev.Type "ethernet") (not $netdev.Type ) }}
[ethernet]
mac-address={{ $netdev.Hwaddr }}
{{ if $netdev.MTU -}}
{{- if $netdev.MTU }}
mtu={{ $netdev.MTU }}
{{ end -}}
{{ end -}}
{{ end -}}
{{- end }}
{{- end }}
{{- end }}
{{- if eq $netdev.Type "bond" }}
# bond
{{ if eq $netdev.Type "bond" -}}
[ethernet]
{{ if $netdev.MTU -}}
mtu={{ $netdev.MTU }}
{{ end -}}
[bond]
downdelay=0
miimon=100
mode=802.3ad
xmit_hash_policy=layer2+3
updelay=0
{{ end -}}
{{- end }}
{{- if eq $netdev.Type "infiniband" }}
{{ if eq $netdev.Type "infiniband" -}}
[infiniband]
transport-mode=datagram
{{ if $netdev.MTU -}}
{{- if $netdev.MTU }}
mtu={{ $netdev.MTU }}
{{ end -}}
{{ end -}}
{{- end }}
{{- end }}
{{- if ne $netdev.Type "bond-slave" }}
{{ if and ($netdev.IpCIDR) (ne $netdev.Type "bond-slave") -}}
[ipv4]
{{- if not (eq $netdev.IpCIDR nil) }}
address={{ $netdev.IpCIDR }}
{{ if $netdev.Gateway -}}
{{- end }}
{{- if $netdev.Gateway }}
gateway={{ $netdev.Gateway }}
{{ end -}}
{{- end }}
method=manual
{{- $dns := "" }}
{{range $tk, $tv := $netdev.Tags -}}
{{ $prefix := substr 0 3 $tk -}}
{{ if eq $prefix "DNS" -}}
{{ $dns = print $dns $tv ";" -}}
{{ end -}}
{{ end -}}
{{ if ne $dns "" -}}
{{- range $tk, $tv := $netdev.Tags }}
{{- if eq (substr 0 3 $tk) "DNS" }}
{{- $dns = print $dns $tv ";" }}
{{- else if eq (substr 0 5 $tk) "route" }}
{{$tk}}={{$tv}}
{{- end }}
{{- end }}
{{- if ne $dns "" }}
dns={{$dns}}
{{ end -}}
{{ end -}}
{{- end }}
{{- end }}
{{- if eq $netdev.Type "vlan" }}
[vlan]
interface-name={{ $netdev.Device }}
parent={{ $netdev.Tags.parent_device }}
id={{ $netdev.Tags.vlan_id }}
{{- end }}
{{/* always autoconfigure ipv6 */}}
[ipv6]
addr-gen-mode=stable-privacy
method=ignore
never-default=true
{{ if $netdev.Ipaddr6 -}}
ipaddr="{{ $netdev.Ipaddr6 }}"
{{ end -}}
{{ end -}}
{{- end }}
{{- end -}}