From 0ef2faf3f7b51fa3702d5b975286510a02de0419 Mon Sep 17 00:00:00 2001 From: Stephen Simpson Date: Fri, 22 Aug 2025 10:37:44 -0500 Subject: [PATCH 1/3] Update NetworkManager Overlay Signed-off-by: Stephen Simpson --- CHANGELOG.md | 5 +++++ overlays/NetworkManager/internal/networkmanager_test.go | 2 -- .../etc/NetworkManager/system-connections/ww4-managed.ww | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e2c126af..3191dfdf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - `wwctl overlay edit` again writes temporary files to the default location. (After #1886 better resolves the underlying issue from #1473.) #1946 - Prevent brp-mangle-shebangs from changing files in overlays. +- The NetworkManager overlay now only adds an `[ethernet]` section for ethernet interfaces. ### Fixed @@ -31,6 +32,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Fixed `wwclient --debug` to properly enable debug logging. - Updated golang BuildRequires in RPM specfile. #1990 +### Changed + +### Fixed + ## v4.6.3, 2025-08-01 ### Added diff --git a/overlays/NetworkManager/internal/networkmanager_test.go b/overlays/NetworkManager/internal/networkmanager_test.go index f9db63e0..79bacd73 100644 --- a/overlays/NetworkManager/internal/networkmanager_test.go +++ b/overlays/NetworkManager/internal/networkmanager_test.go @@ -259,7 +259,6 @@ id=tagged interface-name=eth0.902 type=vlan autoconnect=true -[ethernet] [ipv4] method=manual route1=192.168.1.0/24,192.168.2.254 @@ -331,7 +330,6 @@ miimon=100 mode=balance-rr xmit_hash_policy=layer2+3 updelay=0 -[ethernet] [ipv4] method=manual address=192.168.3.110/24 diff --git a/overlays/NetworkManager/rootfs/etc/NetworkManager/system-connections/ww4-managed.ww b/overlays/NetworkManager/rootfs/etc/NetworkManager/system-connections/ww4-managed.ww index 2586837b..4855a94d 100644 --- a/overlays/NetworkManager/rootfs/etc/NetworkManager/system-connections/ww4-managed.ww +++ b/overlays/NetworkManager/rootfs/etc/NetworkManager/system-connections/ww4-managed.ww @@ -29,7 +29,7 @@ transport-mode=datagram {{- if $netdev.MTU }} mtu={{ $netdev.MTU }} {{- end }} -{{- else }} +{{- else if eq (default "ethernet" (lower $netdev.Type)) "ethernet" }} [ethernet] {{- if $netdev.Hwaddr }} mac-address={{ $netdev.Hwaddr }} From 7a6a1ad44141c66b93637aa995e729440ecfa1e1 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Wed, 3 Sep 2025 06:17:22 -0600 Subject: [PATCH 2/3] Disable ipv4 in NetworkManager if no address or route is specified - Closes: #1986 Signed-off-by: Jonathon Anderson --- CHANGELOG.md | 1 + .../internal/networkmanager_test.go | 25 +++++++++++++------ .../system-connections/ww4-managed.ww | 22 +++++++++------- 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3191dfdf..b704c046 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). (After #1886 better resolves the underlying issue from #1473.) #1946 - Prevent brp-mangle-shebangs from changing files in overlays. - The NetworkManager overlay now only adds an `[ethernet]` section for ethernet interfaces. +- The NetworkManager overlay now sets `ipv4:method=disabled` if no address or route is specified. #1986 ### Fixed diff --git a/overlays/NetworkManager/internal/networkmanager_test.go b/overlays/NetworkManager/internal/networkmanager_test.go index 79bacd73..498cb7ea 100644 --- a/overlays/NetworkManager/internal/networkmanager_test.go +++ b/overlays/NetworkManager/internal/networkmanager_test.go @@ -91,14 +91,15 @@ type=ethernet autoconnect=true [ethernet] mac-address=e6:92:39:49:7b:03 + [ipv4] method=manual address=192.168.3.21/24 gateway=192.168.3.1 [ipv6] -addr-gen-mode=stable-privacy method=ignore +addr-gen-mode=stable-privacy never-default=true backupFile: true writeFile: true @@ -112,6 +113,7 @@ type=ethernet autoconnect=true [ethernet] mac-address=9a:77:29:73:14:f1 + [ipv4] method=manual address=192.168.3.22/24 @@ -120,8 +122,8 @@ dns=8.8.8.8;8.8.4.4; dns-search=example.com;example.net; [ipv6] -addr-gen-mode=stable-privacy method=ignore +addr-gen-mode=stable-privacy never-default=true `, }, @@ -160,14 +162,15 @@ type=ethernet autoconnect=true [ethernet] mac-address=e6:92:39:49:7b:03 + [ipv4] method=manual address=192.168.3.21/24 gateway=192.168.3.1 [ipv6] -addr-gen-mode=stable-privacy method=ignore +addr-gen-mode=stable-privacy never-default=true backupFile: true writeFile: true @@ -180,6 +183,7 @@ type=ethernet autoconnect=true [ethernet] mac-address=9a:77:29:73:14:f1 + [ipv4] method=manual address=192.168.3.22/24 @@ -188,8 +192,8 @@ dns=8.8.8.8;8.8.4.4; dns-search=example.com;example.net; [ipv6] -addr-gen-mode=stable-privacy method=ignore +addr-gen-mode=stable-privacy never-default=true `, }, @@ -259,13 +263,14 @@ id=tagged interface-name=eth0.902 type=vlan autoconnect=true + [ipv4] method=manual route1=192.168.1.0/24,192.168.2.254 [ipv6] -addr-gen-mode=stable-privacy method=ignore +addr-gen-mode=stable-privacy never-default=true [vlan] interface-name=eth0.902 @@ -282,12 +287,13 @@ interface-name=eth0 type=ethernet autoconnect=true [ethernet] + [ipv4] -method=manual +method=disabled [ipv6] -addr-gen-mode=stable-privacy method=ignore +addr-gen-mode=stable-privacy never-default=true `, }, @@ -330,13 +336,14 @@ miimon=100 mode=balance-rr xmit_hash_policy=layer2+3 updelay=0 + [ipv4] method=manual address=192.168.3.110/24 [ipv6] -addr-gen-mode=stable-privacy method=ignore +addr-gen-mode=stable-privacy never-default=true backupFile: true writeFile: true @@ -352,6 +359,7 @@ slave-type=bond autoconnect=true [ethernet] mac-address=e6:92:39:49:7b:03 + [ipv4] method=disabled @@ -371,6 +379,7 @@ slave-type=bond autoconnect=true [ethernet] mac-address=9a:77:29:73:14:f1 + [ipv4] method=disabled diff --git a/overlays/NetworkManager/rootfs/etc/NetworkManager/system-connections/ww4-managed.ww b/overlays/NetworkManager/rootfs/etc/NetworkManager/system-connections/ww4-managed.ww index 4855a94d..f3781a7f 100644 --- a/overlays/NetworkManager/rootfs/etc/NetworkManager/system-connections/ww4-managed.ww +++ b/overlays/NetworkManager/rootfs/etc/NetworkManager/system-connections/ww4-managed.ww @@ -39,18 +39,19 @@ mtu={{ $netdev.MTU }} {{- end }} {{- end }} -{{- if $netdev.Tags.master }} -[ipv4] -method=disabled - -[ipv6] -method=disabled -{{- else }} [ipv4] +{{- $hasRoutes := false }} +{{- range $tk, $tv := $netdev.Tags }} +{{- if eq (substr 0 5 $tk) "route" }}{{ $hasRoutes = true }}{{ end }} +{{- end }} +{{- if and (or $netdev.Ipaddr $hasRoutes) (not $netdev.Tags.master) }} method=manual -{{- if $netdev.IpCIDR }} +{{- if $netdev.Ipaddr }} address={{ $netdev.IpCIDR }} {{- end }} +{{- else }} +method=disabled +{{- end }} {{- if $netdev.Gateway }} gateway={{ $netdev.Gateway }} {{- end }} @@ -70,8 +71,11 @@ dns-search={{ join ";" (without (regexSplit "[ ;]+" $netdev.Tags.DNSSEARCH -1) " {{- end }} [ipv6] -addr-gen-mode=stable-privacy +{{- if $netdev.Tags.master }} +method=disabled +{{- else }} method=ignore +addr-gen-mode=stable-privacy never-default=true {{- if $netdev.Ipaddr6 }} ipaddr="{{ $netdev.Ipaddr6 }}" From 458e23d0ae0d50f44454e6133318585d5fa87158 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Wed, 3 Sep 2025 06:21:29 -0600 Subject: [PATCH 3/3] Set `SLAVE=yes` in ifcfg files when `MASTER` is set - Fixes: #1980 Signed-off-by: Jonathon Anderson --- CHANGELOG.md | 1 + overlays/ifcfg/internal/ifcfg_test.go | 2 ++ overlays/ifcfg/rootfs/etc/sysconfig/network-scripts/ifcfg.ww | 1 + 3 files changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b704c046..de2ffc00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,6 +36,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Changed ### Fixed +- Set `SLAVE=yes` in ifcfg files when `MASTER` is set. #1980 ## v4.6.3, 2025-08-01 diff --git a/overlays/ifcfg/internal/ifcfg_test.go b/overlays/ifcfg/internal/ifcfg_test.go index 164349d9..9f4d5807 100644 --- a/overlays/ifcfg/internal/ifcfg_test.go +++ b/overlays/ifcfg/internal/ifcfg_test.go @@ -282,6 +282,7 @@ writeFile: true Filename: ifcfg-en1.conf # This file is autogenerated by warewulf TYPE=Ethernet +SLAVE=yes MASTER=bond0 DEVICE=en1 NAME=en1 @@ -298,6 +299,7 @@ writeFile: true Filename: ifcfg-en2.conf # This file is autogenerated by warewulf TYPE=Ethernet +SLAVE=yes MASTER=bond0 DEVICE=en2 NAME=en2 diff --git a/overlays/ifcfg/rootfs/etc/sysconfig/network-scripts/ifcfg.ww b/overlays/ifcfg/rootfs/etc/sysconfig/network-scripts/ifcfg.ww index f29a7bd0..c246d7a1 100644 --- a/overlays/ifcfg/rootfs/etc/sysconfig/network-scripts/ifcfg.ww +++ b/overlays/ifcfg/rootfs/etc/sysconfig/network-scripts/ifcfg.ww @@ -7,6 +7,7 @@ VLAN=yes TYPE={{ default "Ethernet" $netdev.Type }} {{- end }} {{- if $netdev.Tags.master }} +SLAVE=yes MASTER={{ $netdev.Tags.master }} {{- end }} {{- if $netdev.Device }}