Skip to content

Commit f4a72b8

Browse files
committed
libnetwork: provide endpoint name for IPAM drivers
Signed-off-by: Olli Janatuinen <[email protected]>
1 parent cd8e84a commit f4a72b8

3 files changed

Lines changed: 16 additions & 5 deletions

File tree

daemon/libnetwork/libnetwork_internal_test.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -747,7 +747,7 @@ func TestIpamReleaseOnNetDriverFailures(t *testing.T) {
747747
}
748748

749749
// Now create good bridge network with different gateway
750-
ipamOpt2 := NetworkOptionIpam(defaultipam.DriverName, "", []*IpamConf{{PreferredPool: "10.35.0.0/16", Gateway: "10.35.255.253"}}, nil, nil)
750+
ipamOpt2 := NetworkOptionIpam(defaultipam.DriverName, "", []*IpamConf{{PreferredPool: "10.35.0.0/16", Gateway: "10.35.255.253"}}, nil, map[string]string{"example": "option"})
751751
gnw, err = c.NewNetwork(context.Background(), "bridge", "goodnet2", "",
752752
NetworkOptionEnableIPv4(true),
753753
ipamOpt2,
@@ -765,6 +765,10 @@ func TestIpamReleaseOnNetDriverFailures(t *testing.T) {
765765
if err != nil {
766766
t.Fatal(err)
767767
}
768+
769+
// Verify that "netlabel.EndpointName" was added to ipamOptions
770+
assert.Check(t, is.Equal(ep.ipamOptions[netlabel.EndpointName], "ep1"), "got: %s; expected: ep1", ep.ipamOptions[netlabel.EndpointName])
771+
768772
defer ep.Delete(context.Background(), false) //nolint:errcheck
769773

770774
expectedIP, _ := types.ParseCIDR("10.35.0.1/16")

daemon/libnetwork/netlabel/labels.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ const (
2626
// DNSServers A list of DNS servers associated with the endpoint
2727
DNSServers = Prefix + ".endpoint.dnsservers"
2828

29+
// EndpointName constant represents the container's Name
30+
EndpointName = Prefix + ".endpoint.name"
31+
2932
// EndpointSysctls is a comma separated list interface-specific sysctls
3033
// where the interface name is represented by the string "IFNAME".
3134
EndpointSysctls = Prefix + ".endpoint.sysctls"

daemon/libnetwork/network.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1185,7 +1185,14 @@ func (n *Network) CreateEndpoint(ctx context.Context, name string, options ...En
11851185
func (n *Network) createEndpoint(ctx context.Context, name string, options ...EndpointOption) (*Endpoint, error) {
11861186
var err error
11871187

1188-
ep := &Endpoint{name: name, generic: make(map[string]any), iface: &EndpointInterface{}}
1188+
ep := &Endpoint{
1189+
name: name,
1190+
generic: make(map[string]any),
1191+
iface: &EndpointInterface{},
1192+
ipamOptions: map[string]string{
1193+
netlabel.EndpointName: name,
1194+
},
1195+
}
11891196
ep.id = stringid.GenerateRandomID()
11901197

11911198
// Initialize ep.network with a possibly stale copy of n. We need this to get network from
@@ -1221,9 +1228,6 @@ func (n *Network) createEndpoint(ctx context.Context, name string, options ...En
12211228
if ep.iface.mac == nil {
12221229
ep.iface.mac = netutils.GenerateRandomMAC()
12231230
}
1224-
if ep.ipamOptions == nil {
1225-
ep.ipamOptions = make(map[string]string)
1226-
}
12271231
ep.ipamOptions[netlabel.MacAddress] = ep.iface.mac.String()
12281232
}
12291233

0 commit comments

Comments
 (0)