Browse code

daemon/cluster: create managed ctr with multiple EndpointsConfig

Signed-off-by: Albin Kerouanton <albinker@gmail.com>

Albin Kerouanton authored on 2023/09/15 16:56:31
Showing 2 changed files
... ...
@@ -300,18 +300,6 @@ func (c *containerAdapter) create(ctx context.Context) error {
300 300
 		return err
301 301
 	}
302 302
 
303
-	// Docker daemon currently doesn't support multiple networks in container create
304
-	// Connect to all other networks
305
-	nc := c.container.connectNetworkingConfig(c.backend)
306
-
307
-	if nc != nil {
308
-		for n, ep := range nc.EndpointsConfig {
309
-			if err := c.backend.ConnectContainerToNetwork(cr.ID, n, ep); err != nil {
310
-				return err
311
-			}
312
-		}
313
-	}
314
-
315 303
 	container := c.container.task.Spec.GetContainer()
316 304
 	if container == nil {
317 305
 		return errors.New("unable to get container from task spec")
... ...
@@ -503,7 +503,6 @@ func (c *containerConfig) resources() enginecontainer.Resources {
503 503
 	return resources
504 504
 }
505 505
 
506
-// Docker daemon supports just 1 network during container create.
507 506
 func (c *containerConfig) createNetworkingConfig(b executorpkg.Backend) *network.NetworkingConfig {
508 507
 	var networks []*api.NetworkAttachment
509 508
 	if c.task.Spec.GetContainer() != nil || c.task.Spec.GetAttachment() != nil {
... ...
@@ -511,28 +510,10 @@ func (c *containerConfig) createNetworkingConfig(b executorpkg.Backend) *network
511 511
 	}
512 512
 
513 513
 	epConfig := make(map[string]*network.EndpointSettings)
514
-	if len(networks) > 0 {
515
-		epConfig[networks[0].Network.Spec.Annotations.Name] = getEndpointConfig(networks[0], b)
516
-	}
517
-
518
-	return &network.NetworkingConfig{EndpointsConfig: epConfig}
519
-}
520
-
521
-// TODO: Merge this function with createNetworkingConfig after daemon supports multiple networks in container create
522
-func (c *containerConfig) connectNetworkingConfig(b executorpkg.Backend) *network.NetworkingConfig {
523
-	var networks []*api.NetworkAttachment
524
-	if c.task.Spec.GetContainer() != nil {
525
-		networks = c.task.Networks
526
-	}
527
-	// First network is used during container create. Other networks are used in "docker network connect"
528
-	if len(networks) < 2 {
529
-		return nil
530
-	}
531
-
532
-	epConfig := make(map[string]*network.EndpointSettings)
533
-	for _, na := range networks[1:] {
514
+	for _, na := range networks {
534 515
 		epConfig[na.Network.Spec.Annotations.Name] = getEndpointConfig(na, b)
535 516
 	}
517
+
536 518
 	return &network.NetworkingConfig{EndpointsConfig: epConfig}
537 519
 }
538 520