From d827f42d38bc2cf837eeda68d698beeae866cf19 Mon Sep 17 00:00:00 2001 From: Wang Date: Thu, 3 Dec 2020 12:13:11 +0800 Subject: [PATCH] fix: buildx in k8s pod with kube client config in cluster Signed-off-by: Wang --- commands/util.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/commands/util.go b/commands/util.go index 4ea9c21e..804c351a 100644 --- a/commands/util.go +++ b/commands/util.go @@ -203,9 +203,23 @@ func driversForNodeGroup(ctx context.Context, dockerCli command.Cli, ng *store.N logrus.Error(err) } } + + tryToUseKubeConfigInCluster := false if kcc == nil { - kcc = driver.KubeClientConfigInCluster{} + tryToUseKubeConfigInCluster = true + } else { + if _, err := kcc.ClientConfig(); err != nil { + tryToUseKubeConfigInCluster = true + } } + if tryToUseKubeConfigInCluster { + kccInCluster := driver.KubeClientConfigInCluster{} + if _, err := kccInCluster.ClientConfig(); err == nil { + logrus.Debug("using kube config in cluster") + kcc = kccInCluster + } + } + d, err := driver.GetDriver(ctx, "buildx_buildkit_"+n.Name, f, dockerapi, dockerCli.ConfigFile(), kcc, n.Flags, n.ConfigFile, assignDriverOptsByDriverInfo(n.DriverOpts, di), contextPathHash) if err != nil { di.Err = err