From c6423328960b84b83d9d66d9cee0ad1fe3942647 Mon Sep 17 00:00:00 2001 From: selansen Date: Tue, 2 Oct 2018 15:52:11 -0400 Subject: [PATCH] Fix for default-addr-pool-mask-length param max value check We check for max value for -default-addr-pool-mask-length param as 32. But There won't be enough addresses on the overlay network. Hence we are keeping it 29 so that we would be having atleast 8 addresses in /29 network. Signed-off-by: selansen (cherry picked from commit d25c5df80e60cdbdc23fe3d0e2a6808123643dc7) Signed-off-by: Sebastiaan van Stijn Upstream-commit: 9406f3622d18a0d9b6c438190e8fdd8be53d3b22 Component: engine --- components/engine/daemon/cluster/listen_addr.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/components/engine/daemon/cluster/listen_addr.go b/components/engine/daemon/cluster/listen_addr.go index 4ca2d5104d..44ea5fce42 100644 --- a/components/engine/daemon/cluster/listen_addr.go +++ b/components/engine/daemon/cluster/listen_addr.go @@ -99,7 +99,12 @@ func validateDefaultAddrPool(defaultAddrPool []string, size uint32) error { if size == 0 { size = 24 } - if size > 32 { + // We allow max value as 29. We can have 8 IP addresses for max value 29 + // If we allow 30, then we will get only 4 IP addresses. But with latest + // libnetwork LB scale implementation, we use total of 4 IP addresses for internal use. + // Hence keeping 29 as max value, we will have 8 IP addresses. This will be + // smallest subnet that can be used in overlay network. + if size > 29 { return fmt.Errorf("subnet size is out of range: %d", size) } for i := range defaultAddrPool {