소스 검색

Merge pull request #11409 from ndeloof/swarm_overlay_network

don't check external network existence when swarm is enabled
Guillaume Lours 1 년 전
부모
커밋
ac8ea082a1
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: