From 5bad8e45fd8dc8ea678a4487560af97a5ff775b7 Mon Sep 17 00:00:00 2001 From: Timothy Middelkoop Date: Sun, 30 Nov 2025 02:38:33 +0000 Subject: [PATCH] IPv6: Add Network6 to tstruct Signed-off-by: Timothy Middelkoop --- internal/pkg/config/root.go | 9 +++++++++ internal/pkg/overlay/datastructure.go | 2 ++ overlays/debug/internal/debug_test.go | 1 + overlays/debug/rootfs/tstruct.md.ww | 1 + 4 files changed, 13 insertions(+) diff --git a/internal/pkg/config/root.go b/internal/pkg/config/root.go index a22646b3..3d3f374c 100644 --- a/internal/pkg/config/root.go +++ b/internal/pkg/config/root.go @@ -157,6 +157,15 @@ func (conf *WarewulfYaml) Parse(data []byte, autodetect bool) error { return nil } +func (config *WarewulfYaml) Network6() string { + cidr := fmt.Sprintf("%s/%s", config.Ipaddr6, config.PrefixLen6) + _, ipnet, err := net.ParseCIDR(cidr) + if err != nil { + return "" + } + return ipnet.IP.String() +} + func (config *WarewulfYaml) NetworkCIDR() string { if config.Network == "" || config.Netmask == "" { return "" diff --git a/internal/pkg/overlay/datastructure.go b/internal/pkg/overlay/datastructure.go index a6f165a6..556e819a 100644 --- a/internal/pkg/overlay/datastructure.go +++ b/internal/pkg/overlay/datastructure.go @@ -32,6 +32,7 @@ type TemplateStruct struct { Ipaddr6 string PrefixLen6 string IpCIDR6 string + Network6 string NetworkCIDR6 string Ipv6 bool Dhcp warewulfconf.DHCPConf @@ -78,6 +79,7 @@ func InitStruct(overlayName string, nodeData node.Node, allNodes []node.Node) (T tstruct.Ipaddr6 = controller.Ipaddr6 tstruct.PrefixLen6 = controller.PrefixLen6 tstruct.IpCIDR6 = controller.IpCIDR6() + tstruct.Network6 = controller.Network6() tstruct.NetworkCIDR6 = controller.NetworkCIDR6() if controller.Ipaddr6 != "" && controller.PrefixLen6 != "" { tstruct.Ipv6 = true diff --git a/overlays/debug/internal/debug_test.go b/overlays/debug/internal/debug_test.go index c497c483..ff1dde93 100644 --- a/overlays/debug/internal/debug_test.go +++ b/overlays/debug/internal/debug_test.go @@ -96,6 +96,7 @@ data from other structures. - Ipaddr6: 2001:db8::1 - PrefixLen6: 64 - IpCIDR6: 2001:db8::1/64 +- Network6: 2001:db8:: - NetworkCIDR6: 2001:db8::/64 - Ipv6: true diff --git a/overlays/debug/rootfs/tstruct.md.ww b/overlays/debug/rootfs/tstruct.md.ww index 415b2e96..20011aa6 100644 --- a/overlays/debug/rootfs/tstruct.md.ww +++ b/overlays/debug/rootfs/tstruct.md.ww @@ -36,6 +36,7 @@ data from other structures. - Ipaddr6: {{ .Ipaddr6 }} - PrefixLen6: {{ .PrefixLen6 }} - IpCIDR6: {{ .IpCIDR6 }} +- Network6: {{ .Network6 }} - NetworkCIDR6: {{ .NetworkCIDR6 }} - Ipv6: {{ .Ipv6 }}