From e27a5966efe56fd1582895eb4c81d891af222a49 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 29 Jul 2022 17:39:05 +0200 Subject: [PATCH] check context builder endpoint Signed-off-by: CrazyMax --- commands/util.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/commands/util.go b/commands/util.go index d37c196d..2239992a 100644 --- a/commands/util.go +++ b/commands/util.go @@ -65,11 +65,20 @@ func driversForNodeGroup(ctx context.Context, dockerCli command.Cli, ng *store.N return nil, errors.Errorf("failed to find driver %q", f) } } else { + // empty driver means nodegroup was implicitly created as a default + // driver for a docker context and allows falling back to a + // docker-container driver for older daemon that doesn't support + // buildkit (< 18.06). ep := ng.Nodes[0].Endpoint dockerapi, err := clientForEndpoint(dockerCli, ep) if err != nil { return nil, err } + // check if endpoint is healthy is needed to determine the driver type. + // if this fails then can't continue with driver selection. + if _, err = dockerapi.Ping(ctx); err != nil { + return nil, err + } f, err = driver.GetDefaultFactory(ctx, ep, dockerapi, false) if err != nil { return nil, err