Skip to content

Commit

Permalink
libnet/ipams/defaultipam: move driver name to its pkg
Browse files Browse the repository at this point in the history
Signed-off-by: Albin Kerouanton <albinker@gmail.com>
  • Loading branch information
akerouanton committed Apr 26, 2024
1 parent 0db56de commit f2387f3
Show file tree
Hide file tree
Showing 11 changed files with 28 additions and 23 deletions.
3 changes: 2 additions & 1 deletion libnetwork/cnmallocator/networkallocator.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"github.com/docker/docker/libnetwork/drivers/remote"
"github.com/docker/docker/libnetwork/drvregistry"
"github.com/docker/docker/libnetwork/ipamapi"
"github.com/docker/docker/libnetwork/ipams/defaultipam"
remoteipam "github.com/docker/docker/libnetwork/ipams/remote"
"github.com/docker/docker/libnetwork/netlabel"
"github.com/docker/docker/libnetwork/scope"
Expand Down Expand Up @@ -803,7 +804,7 @@ func (na *cnmNetworkAllocator) loadDriver(name string) error {

// Resolve the IPAM driver
func (na *cnmNetworkAllocator) resolveIPAM(n *api.Network) (ipamapi.Ipam, string, map[string]string, error) {
dName := ipamapi.DefaultIPAM
dName := defaultipam.DriverName
if n.Spec.IPAM != nil && n.Spec.IPAM.Driver != nil && n.Spec.IPAM.Driver.Name != "" {
dName = n.Spec.IPAM.Driver.Name
}
Expand Down
3 changes: 2 additions & 1 deletion libnetwork/cnmallocator/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"github.com/docker/docker/libnetwork/driverapi"
"github.com/docker/docker/libnetwork/drivers/overlay/overlayutils"
"github.com/docker/docker/libnetwork/ipamapi"
"github.com/docker/docker/libnetwork/ipams/defaultipam"
"github.com/docker/docker/pkg/plugingetter"
"github.com/moby/swarmkit/v2/api"
"github.com/moby/swarmkit/v2/manager/allocator/networkallocator"
Expand Down Expand Up @@ -35,7 +36,7 @@ func (p *Provider) ValidateIPAMDriver(driver *api.Driver) error {
if driver.Name == "" {
return status.Errorf(codes.InvalidArgument, "driver name: if driver is specified name is required")
}
if strings.ToLower(driver.Name) == ipamapi.DefaultIPAM {
if strings.ToLower(driver.Name) == defaultipam.DriverName {
return nil
}
return p.validatePluginDriver(driver, ipamapi.PluginEndpointType)
Expand Down
4 changes: 2 additions & 2 deletions libnetwork/endpoint_unix_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
"testing"

"github.com/docker/docker/internal/testutils/netnsutils"
"github.com/docker/docker/libnetwork/ipamapi"
"github.com/docker/docker/libnetwork/ipams/defaultipam"
"github.com/docker/docker/libnetwork/osl"
)

Expand All @@ -24,7 +24,7 @@ ff02::2 ip6-allrouters
fe90::2 somehost.example.com somehost
`

opts := []NetworkOption{NetworkOptionEnableIPv6(true), NetworkOptionIpam(ipamapi.DefaultIPAM, "",
opts := []NetworkOption{NetworkOptionEnableIPv6(true), NetworkOptionIpam(defaultipam.DriverName, "",
[]*IpamConf{{PreferredPool: "192.168.222.0/24", Gateway: "192.168.222.1"}},
[]*IpamConf{{PreferredPool: "fe90::/64", Gateway: "fe90::1"}},
nil)}
Expand Down
2 changes: 0 additions & 2 deletions libnetwork/ipamapi/contract.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ import (

// IPAM plugin types
const (
// DefaultIPAM is the name of the built-in default ipam driver
DefaultIPAM = "default"
// NullIPAM is the name of the built-in null ipam driver
NullIPAM = "null"
// PluginEndpointType represents the Endpoint Type used by Plugin system
Expand Down
5 changes: 4 additions & 1 deletion libnetwork/ipams/defaultipam/allocator.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ import (
)

const (
// DriverName is the name of the built-in default IPAM driver.
DriverName = "default"

localAddressSpace = "LocalDefault"
globalAddressSpace = "GlobalDefault"
)
Expand Down Expand Up @@ -49,7 +52,7 @@ func Register(ic ipamapi.Registerer, lAddrPools, gAddrPools []*ipamutils.Network

cps := &ipamapi.Capability{RequiresRequestReplay: true}

return ic.RegisterIpamDriverWithCapabilities(ipamapi.DefaultIPAM, a, cps)
return ic.RegisterIpamDriverWithCapabilities(DriverName, a, cps)
}

// Allocator provides per address space ipv4/ipv6 book keeping
Expand Down
8 changes: 4 additions & 4 deletions libnetwork/libnetwork_internal_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (

"github.com/docker/docker/internal/testutils/netnsutils"
"github.com/docker/docker/libnetwork/driverapi"
"github.com/docker/docker/libnetwork/ipamapi"
"github.com/docker/docker/libnetwork/ipams/defaultipam"
"github.com/docker/docker/libnetwork/netlabel"
"github.com/docker/docker/libnetwork/netutils"
"github.com/docker/docker/libnetwork/scope"
Expand Down Expand Up @@ -320,7 +320,7 @@ func TestAuxAddresses(t *testing.T) {
}
defer c.Stop()

n := &Network{ipamType: ipamapi.DefaultIPAM, networkType: "bridge", ctrlr: c}
n := &Network{ipamType: defaultipam.DriverName, networkType: "bridge", ctrlr: c}

input := []struct {
masterPool string
Expand Down Expand Up @@ -581,7 +581,7 @@ func TestIpamReleaseOnNetDriverFailures(t *testing.T) {

// Test whether ipam state release is invoked on network create failure from net driver
// by checking whether subsequent network creation requesting same gateway IP succeeds
ipamOpt := NetworkOptionIpam(ipamapi.DefaultIPAM, "", []*IpamConf{{PreferredPool: "10.34.0.0/16", Gateway: "10.34.255.254"}}, nil, nil)
ipamOpt := NetworkOptionIpam(defaultipam.DriverName, "", []*IpamConf{{PreferredPool: "10.34.0.0/16", Gateway: "10.34.255.254"}}, nil, nil)
if _, err := c.NewNetwork(badDriverName, "badnet1", "", ipamOpt); err == nil {
t.Fatalf("bad network driver should have failed network creation")
}
Expand Down Expand Up @@ -611,7 +611,7 @@ func TestIpamReleaseOnNetDriverFailures(t *testing.T) {
}

// Now create good bridge network with different gateway
ipamOpt2 := NetworkOptionIpam(ipamapi.DefaultIPAM, "", []*IpamConf{{PreferredPool: "10.35.0.0/16", Gateway: "10.35.255.253"}}, nil, nil)
ipamOpt2 := NetworkOptionIpam(defaultipam.DriverName, "", []*IpamConf{{PreferredPool: "10.35.0.0/16", Gateway: "10.35.255.253"}}, nil, nil)
gnw, err = c.NewNetwork("bridge", "goodnet2", "", ipamOpt2)
if err != nil {
t.Fatal(err)
Expand Down
7 changes: 4 additions & 3 deletions libnetwork/libnetwork_linux_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import (
"github.com/docker/docker/libnetwork/datastore"
"github.com/docker/docker/libnetwork/driverapi"
"github.com/docker/docker/libnetwork/ipamapi"
"github.com/docker/docker/libnetwork/ipams/defaultipam"
"github.com/docker/docker/libnetwork/netlabel"
"github.com/docker/docker/libnetwork/options"
"github.com/docker/docker/libnetwork/osl"
Expand Down Expand Up @@ -68,7 +69,7 @@ func newController(t *testing.T) *libnetwork.Controller {
func createTestNetwork(c *libnetwork.Controller, networkType, networkName string, netOption options.Generic, ipamV4Configs, ipamV6Configs []*libnetwork.IpamConf) (*libnetwork.Network, error) {
return c.NewNetwork(networkType, networkName, "",
libnetwork.NetworkOptionGeneric(netOption),
libnetwork.NetworkOptionIpam(ipamapi.DefaultIPAM, "", ipamV4Configs, ipamV6Configs, nil))
libnetwork.NetworkOptionIpam(defaultipam.DriverName, "", ipamV4Configs, ipamV6Configs, nil))
}

func getEmptyGenericOption() map[string]interface{} {
Expand Down Expand Up @@ -1421,7 +1422,7 @@ func TestBridgeIpv6FromMac(t *testing.T) {
network, err := controller.NewNetwork(bridgeNetType, "testipv6mac", "",
libnetwork.NetworkOptionGeneric(netOption),
libnetwork.NetworkOptionEnableIPv6(true),
libnetwork.NetworkOptionIpam(ipamapi.DefaultIPAM, "", ipamV4ConfList, ipamV6ConfList, nil),
libnetwork.NetworkOptionIpam(defaultipam.DriverName, "", ipamV4ConfList, ipamV6ConfList, nil),
libnetwork.NetworkOptionDeferIPv6Alloc(true))
if err != nil {
t.Fatal(err)
Expand Down Expand Up @@ -1495,7 +1496,7 @@ func TestEndpointJoin(t *testing.T) {
n1, err := controller.NewNetwork(bridgeNetType, "testnetwork1", "",
libnetwork.NetworkOptionGeneric(netOption),
libnetwork.NetworkOptionEnableIPv6(true),
libnetwork.NetworkOptionIpam(ipamapi.DefaultIPAM, "", nil, ipamV6ConfList, nil),
libnetwork.NetworkOptionIpam(defaultipam.DriverName, "", nil, ipamV6ConfList, nil),
libnetwork.NetworkOptionDeferIPv6Alloc(true))
if err != nil {
t.Fatal(err)
Expand Down
5 changes: 3 additions & 2 deletions libnetwork/network.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import (
"github.com/docker/docker/libnetwork/internal/netiputil"
"github.com/docker/docker/libnetwork/internal/setmatrix"
"github.com/docker/docker/libnetwork/ipamapi"
"github.com/docker/docker/libnetwork/ipams/defaultipam"
"github.com/docker/docker/libnetwork/netlabel"
"github.com/docker/docker/libnetwork/netutils"
"github.com/docker/docker/libnetwork/networkdb"
Expand Down Expand Up @@ -643,7 +644,7 @@ func (n *Network) UnmarshalJSON(b []byte) (err error) {
if v, ok := netMap["ipamType"]; ok {
n.ipamType = v.(string)
} else {
n.ipamType = ipamapi.DefaultIPAM
n.ipamType = defaultipam.DriverName
}
if v, ok := netMap["addrSpace"]; ok {
n.addrSpace = v.(string)
Expand Down Expand Up @@ -785,7 +786,7 @@ func NetworkOptionIpam(ipamDriver string, addrSpace string, ipV4 []*IpamConf, ip
return func(n *Network) {
if ipamDriver != "" {
n.ipamType = ipamDriver
if ipamDriver == ipamapi.DefaultIPAM {
if ipamDriver == defaultipam.DriverName {
n.ipamType = defaultIpamForNetworkType(n.Type())
}
}
Expand Down
4 changes: 2 additions & 2 deletions libnetwork/network_unix.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ package libnetwork
import (
"context"

"github.com/docker/docker/libnetwork/ipamapi"
"github.com/docker/docker/libnetwork/ipams/defaultipam"
)

type platformNetwork struct{} //nolint:nolintlint,unused // only populated on windows
Expand All @@ -30,5 +30,5 @@ func deleteEpFromResolver(epName string, epIface *EndpointInterface, resolvers [
}

func defaultIpamForNetworkType(networkType string) string {
return ipamapi.DefaultIPAM
return defaultipam.DriverName
}
4 changes: 2 additions & 2 deletions libnetwork/network_windows.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import (
"github.com/Microsoft/hcsshim"
"github.com/containerd/log"
"github.com/docker/docker/libnetwork/drivers/windows"
"github.com/docker/docker/libnetwork/ipamapi"
"github.com/docker/docker/libnetwork/ipams/defaultipam"
"github.com/docker/docker/libnetwork/ipams/windowsipam"
"github.com/pkg/errors"
)
Expand Down Expand Up @@ -247,5 +247,5 @@ func defaultIpamForNetworkType(networkType string) string {
if windows.IsBuiltinLocalDriver(networkType) {
return windowsipam.DefaultIPAM
}
return ipamapi.DefaultIPAM
return defaultipam.DriverName
}
6 changes: 3 additions & 3 deletions libnetwork/sandbox_unix_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
"github.com/docker/docker/errdefs"
"github.com/docker/docker/internal/testutils/netnsutils"
"github.com/docker/docker/libnetwork/config"
"github.com/docker/docker/libnetwork/ipamapi"
"github.com/docker/docker/libnetwork/ipams/defaultipam"
"github.com/docker/docker/libnetwork/netlabel"
"github.com/docker/docker/libnetwork/options"
"github.com/docker/docker/libnetwork/osl"
Expand Down Expand Up @@ -114,7 +114,7 @@ func TestSandboxAddMultiPrio(t *testing.T) {
defer netnsutils.SetupTestOSContext(t)()

opts := [][]NetworkOption{
{NetworkOptionEnableIPv6(true), NetworkOptionIpam(ipamapi.DefaultIPAM, "", nil, []*IpamConf{{PreferredPool: "fe90::/64"}}, nil)},
{NetworkOptionEnableIPv6(true), NetworkOptionIpam(defaultipam.DriverName, "", nil, []*IpamConf{{PreferredPool: "fe90::/64"}}, nil)},
{NetworkOptionInternalNetwork()},
{},
}
Expand Down Expand Up @@ -200,7 +200,7 @@ func TestSandboxAddSamePrio(t *testing.T) {
opts := [][]NetworkOption{
{},
{},
{NetworkOptionEnableIPv6(true), NetworkOptionIpam(ipamapi.DefaultIPAM, "", nil, []*IpamConf{{PreferredPool: "fe90::/64"}}, nil)},
{NetworkOptionEnableIPv6(true), NetworkOptionIpam(defaultipam.DriverName, "", nil, []*IpamConf{{PreferredPool: "fe90::/64"}}, nil)},
{NetworkOptionInternalNetwork()},
}

Expand Down

0 comments on commit f2387f3

Please sign in to comment.