diff --git a/libpod/network/netconflist.go b/libpod/network/netconflist.go index d61b96ecb9..af25ee59c1 100644 --- a/libpod/network/netconflist.go +++ b/libpod/network/netconflist.go @@ -95,6 +95,10 @@ func NewIPAMLocalHostRange(subnet *net.IPNet, ipRange *net.IPNet, gw net.IP) ([] } if gw != nil { hostRange.Gateway = gw.String() + } else { + // Add first ip in subnet as gateway. It is not required + // by cni but should be included because of network inspect. + hostRange.Gateway = CalcGatewayIP(subnet).String() } ranges = append(ranges, hostRange) return ranges, nil diff --git a/libpod/network/netconflist_test.go b/libpod/network/netconflist_test.go index 6bf1a97778..5ff733f0f3 100644 --- a/libpod/network/netconflist_test.go +++ b/libpod/network/netconflist_test.go @@ -51,7 +51,8 @@ func TestNewIPAMLocalHostRange(t *testing.T) { subnet: &net.IPNet{IP: net.IPv4(192, 168, 0, 0), Mask: net.IPv4Mask(255, 255, 255, 0)}, want: []IPAMLocalHostRangeConf{ { - Subnet: "192.168.0.0/24", + Subnet: "192.168.0.0/24", + Gateway: "192.168.0.1", }, }, }, @@ -74,7 +75,8 @@ func TestNewIPAMLocalHostRange(t *testing.T) { subnet: &net.IPNet{IP: net.ParseIP("2001:DB8::"), Mask: net.IPMask(net.ParseIP("ffff:ffff:ffff::"))}, want: []IPAMLocalHostRangeConf{ { - Subnet: "2001:db8::/48", + Subnet: "2001:db8::/48", + Gateway: "2001:db8::1", }, }, }, diff --git a/test/e2e/network_create_test.go b/test/e2e/network_create_test.go index 21b3074fc7..7e9a18ab2b 100644 --- a/test/e2e/network_create_test.go +++ b/test/e2e/network_create_test.go @@ -106,6 +106,7 @@ var _ = Describe("Podman network create", func() { Expect(bridgePlugin.IPAM.Routes[0].Dest).To(Equal("0.0.0.0/0")) Expect(bridgePlugin.IsGW).To(BeTrue()) Expect(bridgePlugin.IPMasq).To(BeTrue()) + Expect(bridgePlugin.IPAM.Ranges[0][0].Gateway).ToNot(BeEmpty()) Expect(portMapPlugin.Capabilities["portMappings"]).To(BeTrue()) }) @@ -153,6 +154,8 @@ var _ = Describe("Podman network create", func() { // JSON the bridge info bridgePlugin, err := genericPluginsToBridge(result["plugins"], "bridge") Expect(err).To(BeNil()) + // check that gateway is added to config + Expect(bridgePlugin.IPAM.Ranges[0][0].Gateway).To(Equal("10.11.12.1")) // Once a container executes a new network, the nic will be created. We should clean those up // best we can