Fix missing IPAM options in swarm network mode
| ... | ... |
@@ -566,7 +566,8 @@ func (c *containerConfig) networkCreateRequest(name string) (clustertypes.Networ |
| 566 | 566 |
// ID: na.Network.ID, |
| 567 | 567 |
Driver: na.Network.DriverState.Name, |
| 568 | 568 |
IPAM: &network.IPAM{
|
| 569 |
- Driver: na.Network.IPAM.Driver.Name, |
|
| 569 |
+ Driver: na.Network.IPAM.Driver.Name, |
|
| 570 |
+ Options: na.Network.IPAM.Driver.Options, |
|
| 570 | 571 |
}, |
| 571 | 572 |
Options: na.Network.DriverState.Options, |
| 572 | 573 |
Labels: na.Network.Spec.Annotations.Labels, |
| ... | ... |
@@ -1336,3 +1336,25 @@ Resources: |
| 1336 | 1336 |
c.Assert(err, checker.IsNil, check.Commentf(out)) |
| 1337 | 1337 |
c.Assert(out, checker.Contains, expectedOutput, check.Commentf(out)) |
| 1338 | 1338 |
} |
| 1339 |
+ |
|
| 1340 |
+func (s *DockerSwarmSuite) TestSwarmNetworkIPAMOptions(c *check.C) {
|
|
| 1341 |
+ d := s.AddDaemon(c, true, true) |
|
| 1342 |
+ |
|
| 1343 |
+ out, err := d.Cmd("network", "create", "-d", "overlay", "--ipam-opt", "foo=bar", "foo")
|
|
| 1344 |
+ c.Assert(err, checker.IsNil, check.Commentf(out)) |
|
| 1345 |
+ c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "") |
|
| 1346 |
+ |
|
| 1347 |
+ out, err = d.Cmd("network", "inspect", "--format", "{{.IPAM.Options}}", "foo")
|
|
| 1348 |
+ c.Assert(err, checker.IsNil, check.Commentf(out)) |
|
| 1349 |
+ c.Assert(strings.TrimSpace(out), checker.Equals, "map[foo:bar]") |
|
| 1350 |
+ |
|
| 1351 |
+ out, err = d.Cmd("service", "create", "--network=foo", "--name", "top", "busybox", "top")
|
|
| 1352 |
+ c.Assert(err, checker.IsNil, check.Commentf(out)) |
|
| 1353 |
+ |
|
| 1354 |
+ // make sure task has been deployed. |
|
| 1355 |
+ waitAndAssert(c, defaultReconciliationTimeout, d.CheckActiveContainerCount, checker.Equals, 1) |
|
| 1356 |
+ |
|
| 1357 |
+ out, err = d.Cmd("network", "inspect", "--format", "{{.IPAM.Options}}", "foo")
|
|
| 1358 |
+ c.Assert(err, checker.IsNil, check.Commentf(out)) |
|
| 1359 |
+ c.Assert(strings.TrimSpace(out), checker.Equals, "map[foo:bar]") |
|
| 1360 |
+} |