瀏覽代碼

don't check external network existence when swarm is enabled

Signed-off-by: Nicolas De Loof <[email protected]>
Nicolas De Loof 1 年之前
父節點
當前提交
da1a34a8f2
共有 1 個文件被更改,包括 7 次插入10 次删除
  1. 7 10
      pkg/compose/create.go

+ 7 - 10
pkg/compose/create.go

@@ -1246,19 +1246,16 @@ func (s *composeService) resolveExternalNetwork(ctx context.Context, n *types.Ne
 		n.Name = networks[0].ID
 		return nil
 	case 0:
-		if n.Driver == "overlay" {
+		enabled, err := s.isSWarmEnabled(ctx)
+		if err != nil {
+			return err
+		}
+		if enabled {
 			// Swarm nodes do not register overlay networks that were
 			// created on a different node unless they're in use.
-			// Here we assume `driver` is relevant for a network we don't manage
-			// which is a non-sense, but this is our legacy ¯\(ツ)/¯
+			// So we can't preemptively check network exists, but
 			// networkAttach will later fail anyway if network actually doesn't exists
-			enabled, err := s.isSWarmEnabled(ctx)
-			if err != nil {
-				return err
-			}
-			if enabled {
-				return nil
-			}
+			return nil
 		}
 		return fmt.Errorf("network %s declared as external, but could not be found", n.Name)
 	default: