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
|
### Changed
|
||||||
|
|
||||||
- `warewulfd` overlay autobuild rebuilds overlays after node discovery. #1468
|
- `warewulfd` overlay autobuild rebuilds overlays after node discovery. #1468
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Improved netplan support. #1873
|
||||||
|
|
||||||
## v4.6.2, 2025-07-09
|
## v4.6.2, 2025-07-09
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ func Test_netplanOverlay(t *testing.T) {
|
|||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll()
|
defer env.RemoveAll()
|
||||||
env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf")
|
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 {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
@@ -23,7 +23,7 @@ func Test_netplanOverlay(t *testing.T) {
|
|||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "netplan",
|
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,
|
log: netplan,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -49,26 +49,22 @@ func Test_netplanOverlay(t *testing.T) {
|
|||||||
|
|
||||||
const netplan string = `backupFile: true
|
const netplan string = `backupFile: true
|
||||||
writeFile: true
|
writeFile: true
|
||||||
Filename: 01-netcfg.yaml
|
Filename: etc/netplan/warewulf.yaml
|
||||||
# This file is autogenerated by warewulf
|
# This file is autogenerated by warewulf
|
||||||
network:
|
network:
|
||||||
version: 2
|
version: 2
|
||||||
renderer: networkd
|
renderer: networkd
|
||||||
ethernets:
|
ethernets:
|
||||||
wwnet0:
|
wwnet0:
|
||||||
addresses:
|
dhcp4: no
|
||||||
- 192.168.3.21/24
|
optional: true
|
||||||
mtu: 1500
|
addresses:
|
||||||
backupFile: true
|
- 192.168.3.21/24
|
||||||
writeFile: true
|
mtu: 1500
|
||||||
Filename: 01-netcfg.yaml
|
wwnet1:
|
||||||
# This file is autogenerated by warewulf
|
dhcp4: no
|
||||||
network:
|
optional: true
|
||||||
version: 2
|
addresses:
|
||||||
renderer: networkd
|
- 192.168.3.22/24
|
||||||
ethernets:
|
mtu: 9000
|
||||||
wwnet1:
|
|
||||||
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