Browse Source

vendor: github.com/moby/swarmkit/v2 v2.0.0-20230707182847-6f78b8199b05

https://github.com/moby/swarmkit/compare/36334ed18760...6f78b8199b05

Signed-off-by: Cory Snider <csnider@mirantis.com>
Cory Snider 2 years ago
parent
commit
7366e44019

+ 1 - 1
vendor.mod

@@ -65,7 +65,7 @@ require (
 	github.com/moby/locker v1.0.1
 	github.com/moby/locker v1.0.1
 	github.com/moby/patternmatcher v0.5.0
 	github.com/moby/patternmatcher v0.5.0
 	github.com/moby/pubsub v1.0.0
 	github.com/moby/pubsub v1.0.0
-	github.com/moby/swarmkit/v2 v2.0.0-20230627115642-ad0f3ae162fa
+	github.com/moby/swarmkit/v2 v2.0.0-20230707182847-6f78b8199b05
 	github.com/moby/sys/mount v0.3.3
 	github.com/moby/sys/mount v0.3.3
 	github.com/moby/sys/mountinfo v0.6.2
 	github.com/moby/sys/mountinfo v0.6.2
 	github.com/moby/sys/sequential v0.5.0
 	github.com/moby/sys/sequential v0.5.0

+ 2 - 2
vendor.sum

@@ -1064,8 +1064,8 @@ github.com/moby/patternmatcher v0.5.0 h1:YCZgJOeULcxLw1Q+sVR636pmS7sPEn1Qo2iAN6M
 github.com/moby/patternmatcher v0.5.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc=
 github.com/moby/patternmatcher v0.5.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc=
 github.com/moby/pubsub v1.0.0 h1:jkp/imWsmJz2f6LyFsk7EkVeN2HxR/HTTOY8kHrsxfA=
 github.com/moby/pubsub v1.0.0 h1:jkp/imWsmJz2f6LyFsk7EkVeN2HxR/HTTOY8kHrsxfA=
 github.com/moby/pubsub v1.0.0/go.mod h1:bXSO+3h5MNXXCaEG+6/NlAIk7MMZbySZlnB+cUQhKKc=
 github.com/moby/pubsub v1.0.0/go.mod h1:bXSO+3h5MNXXCaEG+6/NlAIk7MMZbySZlnB+cUQhKKc=
-github.com/moby/swarmkit/v2 v2.0.0-20230627115642-ad0f3ae162fa h1:9IilX0rZvnrQA+a0Cr9a9LKpudNrOWhT3Fy7T4yKcPc=
-github.com/moby/swarmkit/v2 v2.0.0-20230627115642-ad0f3ae162fa/go.mod h1:pC/nyFbvVvSV+Gm1rARMgMR3FrCumwEyoMjqVwEzJvA=
+github.com/moby/swarmkit/v2 v2.0.0-20230707182847-6f78b8199b05 h1:lvMq6zHXnGp6i+6iYDs1Uw9Q5bqiAYd6Sz08hZoxSmY=
+github.com/moby/swarmkit/v2 v2.0.0-20230707182847-6f78b8199b05/go.mod h1:XUMlwIIC+wrwBDMUjxEvk5Z8FPoIPM8LdBw7w/Zu1rg=
 github.com/moby/sys/mount v0.1.0/go.mod h1:FVQFLDRWwyBjDTBNQXDlWnSFREqOo3OKX9aqhmeoo74=
 github.com/moby/sys/mount v0.1.0/go.mod h1:FVQFLDRWwyBjDTBNQXDlWnSFREqOo3OKX9aqhmeoo74=
 github.com/moby/sys/mount v0.1.1/go.mod h1:FVQFLDRWwyBjDTBNQXDlWnSFREqOo3OKX9aqhmeoo74=
 github.com/moby/sys/mount v0.1.1/go.mod h1:FVQFLDRWwyBjDTBNQXDlWnSFREqOo3OKX9aqhmeoo74=
 github.com/moby/sys/mount v0.3.3 h1:fX1SVkXFJ47XWDoeFW4Sq7PdQJnV2QIDZAqjNqgEjUs=
 github.com/moby/sys/mount v0.3.3 h1:fX1SVkXFJ47XWDoeFW4Sq7PdQJnV2QIDZAqjNqgEjUs=

+ 69 - 0
vendor/github.com/moby/swarmkit/v2/internal/idm/idm.go

@@ -0,0 +1,69 @@
+// Package idm manages reservation/release of numerical ids from a configured set of contiguous ids.
+package idm
+
+import (
+	"errors"
+	"fmt"
+
+	"github.com/docker/docker/libnetwork/bitmap"
+)
+
+// IDM manages the reservation/release of numerical ids from a contiguous set.
+//
+// An IDM instance is not safe for concurrent use.
+type IDM struct {
+	start  uint64
+	end    uint64
+	handle *bitmap.Bitmap
+}
+
+// New returns an instance of id manager for a [start,end] set of numerical ids.
+func New(start, end uint64) (*IDM, error) {
+	if end <= start {
+		return nil, fmt.Errorf("invalid set range: [%d, %d]", start, end)
+	}
+
+	return &IDM{start: start, end: end, handle: bitmap.New(1 + end - start)}, nil
+}
+
+// GetID returns the first available id in the set.
+func (i *IDM) GetID(serial bool) (uint64, error) {
+	if i.handle == nil {
+		return 0, errors.New("ID set is not initialized")
+	}
+	ordinal, err := i.handle.SetAny(serial)
+	return i.start + ordinal, err
+}
+
+// GetSpecificID tries to reserve the specified id.
+func (i *IDM) GetSpecificID(id uint64) error {
+	if i.handle == nil {
+		return errors.New("ID set is not initialized")
+	}
+
+	if id < i.start || id > i.end {
+		return errors.New("requested id does not belong to the set")
+	}
+
+	return i.handle.Set(id - i.start)
+}
+
+// GetIDInRange returns the first available id in the set within a [start,end] range.
+func (i *IDM) GetIDInRange(start, end uint64, serial bool) (uint64, error) {
+	if i.handle == nil {
+		return 0, errors.New("ID set is not initialized")
+	}
+
+	if start < i.start || end > i.end {
+		return 0, errors.New("requested range does not belong to the set")
+	}
+
+	ordinal, err := i.handle.SetAnyInRange(start-i.start, end-i.start, serial)
+
+	return i.start + ordinal, err
+}
+
+// Release releases the specified id.
+func (i *IDM) Release(id uint64) {
+	i.handle.Unset(id - i.start)
+}

+ 3 - 4
vendor/github.com/moby/swarmkit/v2/manager/allocator/cnmallocator/drivers_darwin.go

@@ -1,14 +1,13 @@
 package cnmallocator
 package cnmallocator
 
 
 import (
 import (
+	"github.com/docker/docker/libnetwork/driverapi"
 	"github.com/docker/docker/libnetwork/drivers/overlay/ovmanager"
 	"github.com/docker/docker/libnetwork/drivers/overlay/ovmanager"
-	"github.com/docker/docker/libnetwork/drivers/remote"
 	"github.com/moby/swarmkit/v2/manager/allocator/networkallocator"
 	"github.com/moby/swarmkit/v2/manager/allocator/networkallocator"
 )
 )
 
 
-var initializers = []initializer{
-	{remote.Init, "remote"},
-	{ovmanager.Init, "overlay"},
+var initializers = map[string]func(driverapi.Registerer) error{
+	"overlay": ovmanager.Register,
 }
 }
 
 
 // PredefinedNetworks returns the list of predefined network structures
 // PredefinedNetworks returns the list of predefined network structures

+ 5 - 8
vendor/github.com/moby/swarmkit/v2/manager/allocator/cnmallocator/drivers_ipam.go

@@ -4,16 +4,14 @@ import (
 	"strconv"
 	"strconv"
 	"strings"
 	"strings"
 
 
-	"github.com/docker/docker/libnetwork/drvregistry"
 	"github.com/docker/docker/libnetwork/ipamapi"
 	"github.com/docker/docker/libnetwork/ipamapi"
 	builtinIpam "github.com/docker/docker/libnetwork/ipams/builtin"
 	builtinIpam "github.com/docker/docker/libnetwork/ipams/builtin"
 	nullIpam "github.com/docker/docker/libnetwork/ipams/null"
 	nullIpam "github.com/docker/docker/libnetwork/ipams/null"
-	remoteIpam "github.com/docker/docker/libnetwork/ipams/remote"
 	"github.com/docker/docker/libnetwork/ipamutils"
 	"github.com/docker/docker/libnetwork/ipamutils"
 	"github.com/sirupsen/logrus"
 	"github.com/sirupsen/logrus"
 )
 )
 
 
-func initIPAMDrivers(r *drvregistry.DrvRegistry, netConfig *NetworkConfig) error {
+func initIPAMDrivers(r ipamapi.Registerer, netConfig *NetworkConfig) error {
 	var addressPool []*ipamutils.NetworkToSplit
 	var addressPool []*ipamutils.NetworkToSplit
 	var str strings.Builder
 	var str strings.Builder
 	str.WriteString("Subnetlist - ")
 	str.WriteString("Subnetlist - ")
@@ -40,12 +38,11 @@ func initIPAMDrivers(r *drvregistry.DrvRegistry, netConfig *NetworkConfig) error
 		logrus.Infof("Swarm initialized global default address pool to: " + str.String())
 		logrus.Infof("Swarm initialized global default address pool to: " + str.String())
 	}
 	}
 
 
-	for _, fn := range [](func(ipamapi.Callback, interface{}, interface{}) error){
-		builtinIpam.Init,
-		remoteIpam.Init,
-		nullIpam.Init,
+	for _, fn := range [](func(ipamapi.Registerer) error){
+		builtinIpam.Register,
+		nullIpam.Register,
 	} {
 	} {
-		if err := fn(r, nil, nil); err != nil {
+		if err := fn(r); err != nil {
 			return err
 			return err
 		}
 		}
 	}
 	}

+ 7 - 8
vendor/github.com/moby/swarmkit/v2/manager/allocator/cnmallocator/drivers_network_linux.go

@@ -1,22 +1,21 @@
 package cnmallocator
 package cnmallocator
 
 
 import (
 import (
+	"github.com/docker/docker/libnetwork/driverapi"
 	"github.com/docker/docker/libnetwork/drivers/bridge/brmanager"
 	"github.com/docker/docker/libnetwork/drivers/bridge/brmanager"
 	"github.com/docker/docker/libnetwork/drivers/host"
 	"github.com/docker/docker/libnetwork/drivers/host"
 	"github.com/docker/docker/libnetwork/drivers/ipvlan/ivmanager"
 	"github.com/docker/docker/libnetwork/drivers/ipvlan/ivmanager"
 	"github.com/docker/docker/libnetwork/drivers/macvlan/mvmanager"
 	"github.com/docker/docker/libnetwork/drivers/macvlan/mvmanager"
 	"github.com/docker/docker/libnetwork/drivers/overlay/ovmanager"
 	"github.com/docker/docker/libnetwork/drivers/overlay/ovmanager"
-	"github.com/docker/docker/libnetwork/drivers/remote"
 	"github.com/moby/swarmkit/v2/manager/allocator/networkallocator"
 	"github.com/moby/swarmkit/v2/manager/allocator/networkallocator"
 )
 )
 
 
-var initializers = []initializer{
-	{remote.Init, "remote"},
-	{ovmanager.Init, "overlay"},
-	{mvmanager.Init, "macvlan"},
-	{brmanager.Init, "bridge"},
-	{ivmanager.Init, "ipvlan"},
-	{host.Init, "host"},
+var initializers = map[string]func(driverapi.Registerer) error{
+	"overlay": ovmanager.Register,
+	"macvlan": mvmanager.Register,
+	"bridge":  brmanager.Register,
+	"ipvlan":  ivmanager.Register,
+	"host":    host.Register,
 }
 }
 
 
 // PredefinedNetworks returns the list of predefined network structures
 // PredefinedNetworks returns the list of predefined network structures

+ 12 - 7
vendor/github.com/moby/swarmkit/v2/manager/allocator/cnmallocator/drivers_network_windows.go

@@ -1,17 +1,16 @@
 package cnmallocator
 package cnmallocator
 
 
 import (
 import (
+	"github.com/docker/docker/libnetwork/driverapi"
 	"github.com/docker/docker/libnetwork/drivers/overlay/ovmanager"
 	"github.com/docker/docker/libnetwork/drivers/overlay/ovmanager"
-	"github.com/docker/docker/libnetwork/drivers/remote"
 	"github.com/moby/swarmkit/v2/manager/allocator/networkallocator"
 	"github.com/moby/swarmkit/v2/manager/allocator/networkallocator"
 )
 )
 
 
-var initializers = []initializer{
-	{remote.Init, "remote"},
-	{ovmanager.Init, "overlay"},
-	{StubManagerInit("internal"), "internal"},
-	{StubManagerInit("l2bridge"), "l2bridge"},
-	{StubManagerInit("nat"), "nat"},
+var initializers = map[string]func(driverapi.Registerer) error{
+	"overlay":  ovmanager.Register,
+	"internal": stubManager("internal"),
+	"l2bridge": stubManager("l2bridge"),
+	"nat":      stubManager("nat"),
 }
 }
 
 
 // PredefinedNetworks returns the list of predefined network structures
 // PredefinedNetworks returns the list of predefined network structures
@@ -20,3 +19,9 @@ func PredefinedNetworks() []networkallocator.PredefinedNetworkData {
 		{Name: "nat", Driver: "nat"},
 		{Name: "nat", Driver: "nat"},
 	}
 	}
 }
 }
+
+func stubManager(ntype string) func(driverapi.Registerer) error {
+	return func(r driverapi.Registerer) error {
+		return RegisterManager(r, ntype)
+	}
+}

+ 4 - 11
vendor/github.com/moby/swarmkit/v2/manager/allocator/cnmallocator/manager.go

@@ -11,19 +11,12 @@ type manager struct {
 	networkType string
 	networkType string
 }
 }
 
 
-func StubManagerInit(networkType string) func(dc driverapi.DriverCallback, config map[string]interface{}) error {
-	return func(dc driverapi.DriverCallback, config map[string]interface{}) error {
-		return RegisterManager(dc, networkType)
-	}
-}
-
-// Register registers a new instance of the manager driver for networkType with r.
-func RegisterManager(r driverapi.DriverCallback, networkType string) error {
-	c := driverapi.Capability{
+// RegisterManager registers a new instance of the manager driver for networkType with r.
+func RegisterManager(r driverapi.Registerer, networkType string) error {
+	return r.RegisterDriver(networkType, &manager{networkType: networkType}, driverapi.Capability{
 		DataScope:         datastore.LocalScope,
 		DataScope:         datastore.LocalScope,
 		ConnectivityScope: datastore.LocalScope,
 		ConnectivityScope: datastore.LocalScope,
-	}
-	return r.RegisterDriver(networkType, &manager{networkType: networkType}, c)
+	})
 }
 }
 
 
 func (d *manager) NetworkAllocate(id string, option map[string]string, ipV4Data, ipV6Data []driverapi.IPAMData) (map[string]string, error) {
 func (d *manager) NetworkAllocate(id string, option map[string]string, ipV4Data, ipV6Data []driverapi.IPAMData) (map[string]string, error) {

+ 30 - 41
vendor/github.com/moby/swarmkit/v2/manager/allocator/cnmallocator/networkallocator.go

@@ -8,8 +8,10 @@ import (
 
 
 	"github.com/docker/docker/libnetwork/datastore"
 	"github.com/docker/docker/libnetwork/datastore"
 	"github.com/docker/docker/libnetwork/driverapi"
 	"github.com/docker/docker/libnetwork/driverapi"
+	"github.com/docker/docker/libnetwork/drivers/remote"
 	"github.com/docker/docker/libnetwork/drvregistry"
 	"github.com/docker/docker/libnetwork/drvregistry"
 	"github.com/docker/docker/libnetwork/ipamapi"
 	"github.com/docker/docker/libnetwork/ipamapi"
+	remoteipam "github.com/docker/docker/libnetwork/ipams/remote"
 	"github.com/docker/docker/libnetwork/netlabel"
 	"github.com/docker/docker/libnetwork/netlabel"
 	"github.com/docker/docker/pkg/plugingetter"
 	"github.com/docker/docker/pkg/plugingetter"
 	"github.com/moby/swarmkit/v2/api"
 	"github.com/moby/swarmkit/v2/api"
@@ -30,9 +32,14 @@ const (
 // like managing network and IPAM drivers and also creating and
 // like managing network and IPAM drivers and also creating and
 // deleting networks and the associated resources.
 // deleting networks and the associated resources.
 type cnmNetworkAllocator struct {
 type cnmNetworkAllocator struct {
-	// The driver register which manages all internal and external
-	// IPAM and network drivers.
-	drvRegistry *drvregistry.DrvRegistry
+	// The plugin getter instance used to get network and IPAM driver plugins.
+	pg plugingetter.PluginGetter
+
+	// The driver registry for all internal and external IPAM drivers.
+	ipamRegistry drvregistry.IPAMs
+
+	// The driver registry for all internal and external network drivers.
+	networkRegistry drvregistry.Networks
 
 
 	// The port allocator instance for allocating node ports
 	// The port allocator instance for allocating node ports
 	portAllocator *portAllocator
 	portAllocator *portAllocator
@@ -81,11 +88,6 @@ type networkDriver struct {
 	capability *driverapi.Capability
 	capability *driverapi.Capability
 }
 }
 
 
-type initializer struct {
-	fn    drvregistry.InitFunc
-	ntype string
-}
-
 // NetworkConfig is used to store network related cluster config in the Manager.
 // NetworkConfig is used to store network related cluster config in the Manager.
 type NetworkConfig struct {
 type NetworkConfig struct {
 	// DefaultAddrPool specifies default subnet pool for global scope networks
 	// DefaultAddrPool specifies default subnet pool for global scope networks
@@ -106,22 +108,24 @@ func New(pg plugingetter.PluginGetter, netConfig *NetworkConfig) (networkallocat
 		services: make(map[string]struct{}),
 		services: make(map[string]struct{}),
 		tasks:    make(map[string]struct{}),
 		tasks:    make(map[string]struct{}),
 		nodes:    make(map[string]map[string]struct{}),
 		nodes:    make(map[string]map[string]struct{}),
+		pg:       pg,
 	}
 	}
 
 
-	// There are no driver configurations and notification
-	// functions as of now.
-	reg, err := drvregistry.New(nil, nil, nil, nil, pg)
-	if err != nil {
-		return nil, err
+	for ntype, i := range initializers {
+		if err := i(&na.networkRegistry); err != nil {
+			return nil, fmt.Errorf("failed to register %q network driver: %w", ntype, err)
+		}
 	}
 	}
-
-	if err := initializeDrivers(reg); err != nil {
-		return nil, err
+	if err := remote.Register(&na.networkRegistry, pg); err != nil {
+		return nil, fmt.Errorf("failed to initialize network driver plugins: %w", err)
 	}
 	}
 
 
-	if err = initIPAMDrivers(reg, netConfig); err != nil {
+	if err := initIPAMDrivers(&na.ipamRegistry, netConfig); err != nil {
 		return nil, err
 		return nil, err
 	}
 	}
+	if err := remoteipam.Register(&na.ipamRegistry, pg); err != nil {
+		return nil, fmt.Errorf("failed to initialize IPAM driver plugins: %w", err)
+	}
 
 
 	pa, err := newPortAllocator()
 	pa, err := newPortAllocator()
 	if err != nil {
 	if err != nil {
@@ -129,7 +133,6 @@ func New(pg plugingetter.PluginGetter, netConfig *NetworkConfig) (networkallocat
 	}
 	}
 
 
 	na.portAllocator = pa
 	na.portAllocator = pa
-	na.drvRegistry = reg
 	return na, nil
 	return na, nil
 }
 }
 
 
@@ -816,28 +819,27 @@ func (na *cnmNetworkAllocator) resolveDriver(n *api.Network) (*networkDriver, er
 		dName = n.Spec.DriverConfig.Name
 		dName = n.Spec.DriverConfig.Name
 	}
 	}
 
 
-	d, drvcap := na.drvRegistry.Driver(dName)
+	d, drvcap := na.networkRegistry.Driver(dName)
 	if d == nil {
 	if d == nil {
 		err := na.loadDriver(dName)
 		err := na.loadDriver(dName)
 		if err != nil {
 		if err != nil {
 			return nil, err
 			return nil, err
 		}
 		}
 
 
-		d, drvcap = na.drvRegistry.Driver(dName)
+		d, drvcap = na.networkRegistry.Driver(dName)
 		if d == nil {
 		if d == nil {
 			return nil, fmt.Errorf("could not resolve network driver %s", dName)
 			return nil, fmt.Errorf("could not resolve network driver %s", dName)
 		}
 		}
 	}
 	}
 
 
-	return &networkDriver{driver: d, capability: drvcap, name: dName}, nil
+	return &networkDriver{driver: d, capability: &drvcap, name: dName}, nil
 }
 }
 
 
 func (na *cnmNetworkAllocator) loadDriver(name string) error {
 func (na *cnmNetworkAllocator) loadDriver(name string) error {
-	pg := na.drvRegistry.GetPluginGetter()
-	if pg == nil {
+	if na.pg == nil {
 		return errors.New("plugin store is uninitialized")
 		return errors.New("plugin store is uninitialized")
 	}
 	}
-	_, err := pg.Get(name, driverapi.NetworkPluginEndpointType, plugingetter.Lookup)
+	_, err := na.pg.Get(name, driverapi.NetworkPluginEndpointType, plugingetter.Lookup)
 	return err
 	return err
 }
 }
 
 
@@ -853,7 +855,7 @@ func (na *cnmNetworkAllocator) resolveIPAM(n *api.Network) (ipamapi.Ipam, string
 		dOptions = n.Spec.IPAM.Driver.Options
 		dOptions = n.Spec.IPAM.Driver.Options
 	}
 	}
 
 
-	ipam, _ := na.drvRegistry.IPAM(dName)
+	ipam, _ := na.ipamRegistry.IPAM(dName)
 	if ipam == nil {
 	if ipam == nil {
 		return nil, "", nil, fmt.Errorf("could not resolve IPAM driver %s", dName)
 		return nil, "", nil, fmt.Errorf("could not resolve IPAM driver %s", dName)
 	}
 	}
@@ -893,7 +895,7 @@ func (na *cnmNetworkAllocator) allocatePools(n *api.Network) (map[string]string,
 
 
 	// We don't support user defined address spaces yet so just
 	// We don't support user defined address spaces yet so just
 	// retrieve default address space names for the driver.
 	// retrieve default address space names for the driver.
-	_, asName, err := na.drvRegistry.IPAMDefaultAddressSpaces(dName)
+	_, asName, err := ipam.GetDefaultAddressSpaces()
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
 	}
 	}
@@ -978,15 +980,6 @@ func (na *cnmNetworkAllocator) allocatePools(n *api.Network) (map[string]string,
 	return pools, nil
 	return pools, nil
 }
 }
 
 
-func initializeDrivers(reg *drvregistry.DrvRegistry) error {
-	for _, i := range initializers {
-		if err := reg.AddDriver(i.ntype, i.fn, nil); err != nil {
-			return err
-		}
-	}
-	return nil
-}
-
 func serviceNetworks(s *api.Service) []*api.NetworkAttachmentConfig {
 func serviceNetworks(s *api.Service) []*api.NetworkAttachmentConfig {
 	// Always prefer NetworkAttachmentConfig in the TaskSpec
 	// Always prefer NetworkAttachmentConfig in the TaskSpec
 	if len(s.Spec.Task.Networks) == 0 && len(s.Spec.Networks) != 0 {
 	if len(s.Spec.Task.Networks) == 0 && len(s.Spec.Networks) != 0 {
@@ -1011,12 +1004,8 @@ func (na *cnmNetworkAllocator) IsVIPOnIngressNetwork(vip *api.Endpoint_VirtualIP
 // IsBuiltInDriver returns whether the passed driver is an internal network driver
 // IsBuiltInDriver returns whether the passed driver is an internal network driver
 func IsBuiltInDriver(name string) bool {
 func IsBuiltInDriver(name string) bool {
 	n := strings.ToLower(name)
 	n := strings.ToLower(name)
-	for _, d := range initializers {
-		if n == d.ntype {
-			return true
-		}
-	}
-	return false
+	_, ok := initializers[n]
+	return ok
 }
 }
 
 
 // setIPAMSerialAlloc sets the ipam allocation method to serial
 // setIPAMSerialAlloc sets the ipam allocation method to serial

+ 5 - 10
vendor/github.com/moby/swarmkit/v2/manager/allocator/cnmallocator/portallocator.go

@@ -1,10 +1,8 @@
 package cnmallocator
 package cnmallocator
 
 
 import (
 import (
-	"fmt"
-
-	"github.com/docker/docker/libnetwork/idm"
 	"github.com/moby/swarmkit/v2/api"
 	"github.com/moby/swarmkit/v2/api"
+	"github.com/moby/swarmkit/v2/internal/idm"
 )
 )
 
 
 const (
 const (
@@ -34,8 +32,8 @@ type portAllocator struct {
 
 
 type portSpace struct {
 type portSpace struct {
 	protocol         api.PortConfig_Protocol
 	protocol         api.PortConfig_Protocol
-	masterPortSpace  *idm.Idm
-	dynamicPortSpace *idm.Idm
+	masterPortSpace  *idm.IDM
+	dynamicPortSpace *idm.IDM
 }
 }
 
 
 type allocatedPorts map[api.PortConfig]map[uint32]*api.PortConfig
 type allocatedPorts map[api.PortConfig]map[uint32]*api.PortConfig
@@ -118,15 +116,12 @@ func newPortAllocator() (*portAllocator, error) {
 }
 }
 
 
 func newPortSpace(protocol api.PortConfig_Protocol) (*portSpace, error) {
 func newPortSpace(protocol api.PortConfig_Protocol) (*portSpace, error) {
-	masterName := fmt.Sprintf("%s-master-ports", protocol)
-	dynamicName := fmt.Sprintf("%s-dynamic-ports", protocol)
-
-	master, err := idm.New(nil, masterName, masterPortStart, masterPortEnd)
+	master, err := idm.New(masterPortStart, masterPortEnd)
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
 	}
 	}
 
 
-	dynamic, err := idm.New(nil, dynamicName, dynamicPortStart, dynamicPortEnd)
+	dynamic, err := idm.New(dynamicPortStart, dynamicPortEnd)
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
 	}
 	}

+ 2 - 1
vendor/modules.txt

@@ -777,7 +777,7 @@ github.com/moby/patternmatcher
 # github.com/moby/pubsub v1.0.0
 # github.com/moby/pubsub v1.0.0
 ## explicit; go 1.19
 ## explicit; go 1.19
 github.com/moby/pubsub
 github.com/moby/pubsub
-# github.com/moby/swarmkit/v2 v2.0.0-20230627115642-ad0f3ae162fa
+# github.com/moby/swarmkit/v2 v2.0.0-20230707182847-6f78b8199b05
 ## explicit; go 1.18
 ## explicit; go 1.18
 github.com/moby/swarmkit/v2/agent
 github.com/moby/swarmkit/v2/agent
 github.com/moby/swarmkit/v2/agent/configs
 github.com/moby/swarmkit/v2/agent/configs
@@ -798,6 +798,7 @@ github.com/moby/swarmkit/v2/ca/pkcs8
 github.com/moby/swarmkit/v2/connectionbroker
 github.com/moby/swarmkit/v2/connectionbroker
 github.com/moby/swarmkit/v2/identity
 github.com/moby/swarmkit/v2/identity
 github.com/moby/swarmkit/v2/internal/csi/capability
 github.com/moby/swarmkit/v2/internal/csi/capability
+github.com/moby/swarmkit/v2/internal/idm
 github.com/moby/swarmkit/v2/ioutils
 github.com/moby/swarmkit/v2/ioutils
 github.com/moby/swarmkit/v2/log
 github.com/moby/swarmkit/v2/log
 github.com/moby/swarmkit/v2/manager
 github.com/moby/swarmkit/v2/manager