package cnmallocator
import (
"github.com/moby/moby/v2/daemon/libnetwork/driverapi"
"github.com/moby/moby/v2/daemon/libnetwork/drivers/bridge"
"github.com/moby/moby/v2/daemon/libnetwork/drivers/host"
"github.com/moby/moby/v2/daemon/libnetwork/drivers/ipvlan"
"github.com/moby/moby/v2/daemon/libnetwork/drivers/macvlan"
"github.com/moby/moby/v2/daemon/libnetwork/drivers/overlay/ovmanager"
"github.com/moby/swarmkit/v2/manager/allocator/networkallocator"
)
// globalDrivers is a map of network drivers that support cluster-wide
// definition and require cluster-wide resources allocation (i.e. DataScope == scope.Global).
var globalDrivers = map[string]func(driverapi.Registerer) error{
"overlay": ovmanager.Register,
}
// localDrivers is a list of builtin network drivers that support cluster-wide
// definition (i.e. --scope=swarm on the CLI), but don't need global
// resources allocations (i.e., DataScope == scope.Local).
var localDrivers = []string{
bridge.NetworkType,
host.NetworkType,
ipvlan.NetworkType,
macvlan.NetworkType,
}
// PredefinedNetworks returns the list of predefined network structures
func (*Provider) PredefinedNetworks() []networkallocator.PredefinedNetworkData {
return []networkallocator.PredefinedNetworkData{
{Name: "bridge", Driver: "bridge"},
{Name: "host", Driver: "host"},
}
}