Skip to content

Commit 44631e4

Browse files
committed
test kubernetes worker with k3d
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
1 parent 3609204 commit 44631e4

File tree

2 files changed

+26
-9
lines changed

2 files changed

+26
-9
lines changed

tests/helpers/k3d.go

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package helpers
22

33
import (
4+
"os"
45
"os/exec"
56
"strings"
67

@@ -13,7 +14,7 @@ const (
1314
k3dBin = "k3d"
1415
)
1516

16-
func NewK3dServer(cfg *integration.BackendConfig) (kubeConfig string, cl func() error, err error) {
17+
func NewK3dServer(cfg *integration.BackendConfig, dockerAddress string) (kubeConfig string, cl func() error, err error) {
1718
if _, err := exec.LookPath(k3dBin); err != nil {
1819
return "", nil, errors.Wrapf(err, "failed to lookup %s binary", k3dBin)
1920
}
@@ -28,18 +29,34 @@ func NewK3dServer(cfg *integration.BackendConfig) (kubeConfig string, cl func()
2829
}
2930
}()
3031

31-
clusterName := "buildkit-" + identity.NewID()
32+
clusterName := "bk-" + identity.NewID()
3233

33-
stop, err := integration.StartCmd(exec.Command(k3dBin, "cluster", "create", clusterName,
34+
cmd := exec.Command(k3dBin, "cluster", "create", clusterName,
3435
"--wait",
35-
), cfg.Logs)
36+
)
37+
cmd.Env = append(
38+
os.Environ(),
39+
"DOCKER_CONTEXT="+dockerAddress,
40+
)
41+
out, err := cmd.CombinedOutput()
3642
if err != nil {
37-
return "", nil, err
43+
return "", nil, errors.Wrapf(err, "failed to create k3d cluster %s: %s", clusterName, string(out))
3844
}
39-
deferF.Append(stop)
45+
deferF.Append(func() error {
46+
cmd := exec.Command(k3dBin, "cluster", "delete", clusterName)
47+
out, err := cmd.CombinedOutput()
48+
if err != nil {
49+
return errors.Wrapf(err, "failed to delete k3d cluster %s: %s", clusterName, string(out))
50+
}
51+
return nil
52+
})
4053

41-
cmd := exec.Command(k3dBin, "kubeconfig", "write", clusterName)
42-
out, err := cmd.CombinedOutput()
54+
cmd = exec.Command(k3dBin, "kubeconfig", "write", clusterName)
55+
cmd.Env = append(
56+
os.Environ(),
57+
"DOCKER_CONTEXT="+dockerAddress,
58+
)
59+
out, err = cmd.CombinedOutput()
4360
if err != nil {
4461
return "", nil, errors.Wrapf(err, "failed to write kubeconfig for cluster %s: %s", clusterName, string(out))
4562
}

tests/workers/kubernetes.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func (w *kubernetesWorker) New(ctx context.Context, cfg *integration.BackendConf
5656
}
5757

5858
w.k3dOnce.Do(func() {
59-
w.k3dConfig, w.k3dClose, w.k3dErr = helpers.NewK3dServer(cfg)
59+
w.k3dConfig, w.k3dClose, w.k3dErr = helpers.NewK3dServer(cfg, w.docker.DockerAddress())
6060
})
6161
if w.k3dErr != nil {
6262
return nil, w.k3dClose, w.k3dErr

0 commit comments

Comments
 (0)