From da1a34a8f294bb0f1cbbc8a4a0212132339a7a7d Mon Sep 17 00:00:00 2001 From: Nicolas De Loof Date: Thu, 25 Jan 2024 15:56:31 +0100 Subject: [PATCH] don't check external network existence when swarm is enabled Signed-off-by: Nicolas De Loof --- pkg/compose/create.go | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/pkg/compose/create.go b/pkg/compose/create.go index 4529712a85..069db7cfc7 100644 --- a/pkg/compose/create.go +++ b/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: