github.com/moby/docker@v26.1.3+incompatible/libnetwork/drivers_ipam.go (about)

     1  package libnetwork
     2  
     3  import (
     4  	"github.com/docker/docker/libnetwork/ipamapi"
     5  	builtinIpam "github.com/docker/docker/libnetwork/ipams/builtin"
     6  	nullIpam "github.com/docker/docker/libnetwork/ipams/null"
     7  	remoteIpam "github.com/docker/docker/libnetwork/ipams/remote"
     8  	"github.com/docker/docker/libnetwork/ipamutils"
     9  	"github.com/docker/docker/pkg/plugingetter"
    10  )
    11  
    12  func initIPAMDrivers(r ipamapi.Registerer, pg plugingetter.PluginGetter, addressPool []*ipamutils.NetworkToSplit) error {
    13  	// TODO: pass address pools as arguments to builtinIpam.Init instead of
    14  	// indirectly through global mutable state. Swarmkit references that
    15  	// function so changing its signature breaks the build.
    16  	if err := builtinIpam.SetDefaultIPAddressPool(addressPool); err != nil {
    17  		return err
    18  	}
    19  
    20  	for _, fn := range [](func(ipamapi.Registerer) error){
    21  		builtinIpam.Register,
    22  		nullIpam.Register,
    23  	} {
    24  		if err := fn(r); err != nil {
    25  			return err
    26  		}
    27  	}
    28  
    29  	return remoteIpam.Register(r, pg)
    30  }