From dcaf8893a0d21ebcf70fab7ed2133f64a451c153 Mon Sep 17 00:00:00 2001 From: Olli Janatuinen Date: Wed, 6 Aug 2025 09:34:22 -0700 Subject: [PATCH] windows: do not forgot IPAM configuration when re-creating networks Signed-off-by: Olli Janatuinen --- daemon/daemon_windows.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/daemon/daemon_windows.go b/daemon/daemon_windows.go index 3d0fdc986f..db3ee73534 100644 --- a/daemon/daemon_windows.go +++ b/daemon/daemon_windows.go @@ -265,7 +265,7 @@ func (daemon *Daemon) initNetworkController(daemonCfg *config.Config, activeSand if !found { // non-default nat networks should be re-created if missing from HNS if v.Type() == "nat" && v.Name() != networktypes.NetworkNat { - _, _, v4Conf, v6Conf := v.IpamConfig() + ipamDriver, ipamOptions, v4Conf, v6Conf := v.IpamConfig() netOption := map[string]string{} for k, v := range v.DriverOptions() { if k != winlibnetwork.NetworkName && k != winlibnetwork.HNSID { @@ -284,7 +284,7 @@ func (daemon *Daemon) initNetworkController(daemonCfg *config.Config, activeSand libnetwork.NetworkOptionGeneric(options.Generic{ netlabel.GenericData: netOption, }), - libnetwork.NetworkOptionIpam("default", "", v4Conf, v6Conf, nil), + libnetwork.NetworkOptionIpam(ipamDriver, "", v4Conf, v6Conf, ipamOptions), libnetwork.NetworkOptionLabels(v.Labels()), ) if err != nil { @@ -342,6 +342,8 @@ func (daemon *Daemon) initNetworkController(daemonCfg *config.Config, activeSand drvOptions := make(map[string]string) var labels map[string]string nid := "" + ipamDriver := "default" + var ipamOptions map[string]string if n != nil { nid = n.ID() @@ -350,6 +352,8 @@ func (daemon *Daemon) initNetworkController(daemonCfg *config.Config, activeSand continue } v.Name = n.Name() + ipamDriver, ipamOptions, _, _ = n.IpamConfig() + // This will not cause network delete from HNS as the network // is not yet populated in the libnetwork windows driver @@ -406,7 +410,7 @@ func (daemon *Daemon) initNetworkController(daemonCfg *config.Config, activeSand netlabel.GenericData: netOption, netlabel.EnableIPv4: true, }), - libnetwork.NetworkOptionIpam("default", "", v4Conf, v6Conf, nil), + libnetwork.NetworkOptionIpam(ipamDriver, "", v4Conf, v6Conf, ipamOptions), libnetwork.NetworkOptionLabels(labels), ) if err != nil {