Improved netplan support
Amother other things, implements support for bonds. - Fixes: #1873 Signed-off-by: Jonathon Anderson <janderson@ciq.com>
This commit is contained in:
committed by
Christian Goll
parent
947bd1625e
commit
cd14ee146f
@@ -9,6 +9,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||
### Changed
|
||||
|
||||
- `warewulfd` overlay autobuild rebuilds overlays after node discovery. #1468
|
||||
### Fixed
|
||||
|
||||
- Improved netplan support. #1873
|
||||
|
||||
## v4.6.2, 2025-07-09
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ func Test_netplanOverlay(t *testing.T) {
|
||||
env := testenv.New(t)
|
||||
defer env.RemoveAll()
|
||||
env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf")
|
||||
env.ImportFile("var/lib/warewulf/overlays/netplan/rootfs/etc/netplan/01-netcfg.yaml.ww", "../rootfs/etc/netplan/01-netcfg.yaml.ww")
|
||||
env.ImportFile("var/lib/warewulf/overlays/netplan/rootfs/etc/netplan/warewulf.yaml.ww", "../rootfs/etc/netplan/warewulf.yaml.ww")
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -23,7 +23,7 @@ func Test_netplanOverlay(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
name: "netplan",
|
||||
args: []string{"--render", "node1", "netplan", "etc/netplan/01-netcfg.yaml.ww"},
|
||||
args: []string{"--render", "node1", "netplan", "etc/netplan/warewulf.yaml.ww"},
|
||||
log: netplan,
|
||||
},
|
||||
}
|
||||
@@ -49,26 +49,22 @@ func Test_netplanOverlay(t *testing.T) {
|
||||
|
||||
const netplan string = `backupFile: true
|
||||
writeFile: true
|
||||
Filename: 01-netcfg.yaml
|
||||
Filename: etc/netplan/warewulf.yaml
|
||||
# This file is autogenerated by warewulf
|
||||
network:
|
||||
version: 2
|
||||
renderer: networkd
|
||||
ethernets:
|
||||
wwnet0:
|
||||
addresses:
|
||||
- 192.168.3.21/24
|
||||
mtu: 1500
|
||||
backupFile: true
|
||||
writeFile: true
|
||||
Filename: 01-netcfg.yaml
|
||||
# This file is autogenerated by warewulf
|
||||
network:
|
||||
version: 2
|
||||
renderer: networkd
|
||||
ethernets:
|
||||
wwnet1:
|
||||
addresses:
|
||||
- 192.168.3.22/24
|
||||
mtu: 9000
|
||||
wwnet0:
|
||||
dhcp4: no
|
||||
optional: true
|
||||
addresses:
|
||||
- 192.168.3.21/24
|
||||
mtu: 1500
|
||||
wwnet1:
|
||||
dhcp4: no
|
||||
optional: true
|
||||
addresses:
|
||||
- 192.168.3.22/24
|
||||
mtu: 9000
|
||||
`
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
{{range $devname, $netdev := .NetDevs -}}
|
||||
{{ file "01-netcfg.yaml" }}
|
||||
# This file is autogenerated by warewulf
|
||||
network:
|
||||
version: 2
|
||||
renderer: networkd
|
||||
ethernets:
|
||||
{{$netdev.Device}}:
|
||||
addresses:
|
||||
- {{$netdev.IpCIDR}}
|
||||
mtu: {{$netdev.MTU}}
|
||||
{{end -}}
|
||||
63
overlays/netplan/rootfs/etc/netplan/warewulf.yaml.ww
Normal file
63
overlays/netplan/rootfs/etc/netplan/warewulf.yaml.ww
Normal file
@@ -0,0 +1,63 @@
|
||||
# This file is autogenerated by warewulf
|
||||
network:
|
||||
version: 2
|
||||
renderer: networkd
|
||||
{{- $ethernets := list }}
|
||||
{{- $bonds := list }}
|
||||
{{- $NetDevs := .NetDevs }}
|
||||
{{- 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 $devname := $ethernets }}
|
||||
{{- $netdev := (index $NetDevs $devname) }}
|
||||
{{$netdev.Device}}:
|
||||
dhcp4: no
|
||||
optional: true
|
||||
{{- if $netdev.IpCIDR }}
|
||||
addresses:
|
||||
- {{$netdev.IpCIDR}}
|
||||
{{- end }}
|
||||
{{- if $netdev.MTU}}
|
||||
mtu: {{$netdev.MTU}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if $bonds }}
|
||||
bonds:
|
||||
{{- range $devname := $bonds }}
|
||||
{{- $netdev := (index $NetDevs $devname) }}
|
||||
{{$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 $ifacename, $iface := $NetDevs }}
|
||||
{{- if eq $iface.Tags.master $devname }}
|
||||
{{- $interfaces = append $interfaces $ifacename }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if $interfaces }}
|
||||
interfaces:
|
||||
{{- range $ifacename := $interfaces }}
|
||||
- {{ $ifacename }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
Reference in New Issue
Block a user