From 2d31697d82df61ab78b583818f4106c36cf20cec Mon Sep 17 00:00:00 2001 From: Albin Kerouanton Date: Thu, 20 Apr 2023 13:11:15 +0200 Subject: daemon: set docker0 subpool as the IPAM pool Since cc19eba (backported to v23.0.4), the PreferredPool for docker0 is set only when the user provides the bip config parameter or when the default bridge already exist. That means, if a user provides the fixed-cidr parameter on a fresh install or reboot their computer/server without bip set, dockerd throw the following error when it starts: > failed to start daemon: Error initializing network controller: Error > creating default "bridge" network: failed to parse pool request for > address space "LocalDefault" pool "" subpool "100.64.0.0/26": Invalid > Address SubPool See #45356. Signed-off-by: Albin Kerouanton --- libnetwork/drivers/bridge/setup_device.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'libnetwork') diff --git a/libnetwork/drivers/bridge/setup_device.go b/libnetwork/drivers/bridge/setup_device.go index 73d8647b0e..974115603b 100644 --- a/libnetwork/drivers/bridge/setup_device.go +++ b/libnetwork/drivers/bridge/setup_device.go @@ -16,8 +16,14 @@ import ( // SetupDevice create a new bridge interface/ func setupDevice(config *networkConfiguration, i *bridgeInterface) error { // We only attempt to create the bridge when the requested device name is - // the default one. - if config.BridgeName != DefaultBridgeName && config.DefaultBridge { + // the default one. The default bridge name can be overridden with the + // DOCKER_TEST_CREATE_DEFAULT_BRIDGE env var. It should be used only for + // test purpose. + var defaultBridgeName string + if defaultBridgeName = os.Getenv("DOCKER_TEST_CREATE_DEFAULT_BRIDGE"); defaultBridgeName == "" { + defaultBridgeName = DefaultBridgeName + } + if config.BridgeName != defaultBridgeName && config.DefaultBridge { return NonDefaultBridgeExistError(config.BridgeName) } -- cgit v1.2.1