mirror of
https://gitea.com/Lydanne/buildx.git
synced 2025-07-10 13:37:08 +08:00
vendor: update buildkit to v0.19.0-rc1
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This commit is contained in:
4
vendor/github.com/moby/buildkit/util/testutil/imageinfo.go
generated
vendored
4
vendor/github.com/moby/buildkit/util/testutil/imageinfo.go
generated
vendored
@ -4,8 +4,8 @@ import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
|
||||
"github.com/containerd/containerd/content"
|
||||
"github.com/containerd/containerd/images"
|
||||
"github.com/containerd/containerd/v2/core/content"
|
||||
"github.com/containerd/containerd/v2/core/images"
|
||||
"github.com/containerd/platforms"
|
||||
ocispecs "github.com/opencontainers/image-spec/specs-go/v1"
|
||||
"github.com/pkg/errors"
|
||||
|
6
vendor/github.com/moby/buildkit/util/testutil/integration/frombinary.go
generated
vendored
6
vendor/github.com/moby/buildkit/util/testutil/integration/frombinary.go
generated
vendored
@ -5,9 +5,9 @@ import (
|
||||
"encoding/json"
|
||||
"os"
|
||||
|
||||
"github.com/containerd/containerd/content"
|
||||
"github.com/containerd/containerd/content/local"
|
||||
"github.com/containerd/containerd/images/archive"
|
||||
"github.com/containerd/containerd/v2/core/content"
|
||||
"github.com/containerd/containerd/v2/core/images/archive"
|
||||
"github.com/containerd/containerd/v2/plugins/content/local"
|
||||
ocispecs "github.com/opencontainers/image-spec/specs-go/v1"
|
||||
)
|
||||
|
||||
|
7
vendor/github.com/moby/buildkit/util/testutil/integration/run.go
generated
vendored
7
vendor/github.com/moby/buildkit/util/testutil/integration/run.go
generated
vendored
@ -17,8 +17,8 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/containerd/containerd/content"
|
||||
"github.com/containerd/containerd/remotes/docker"
|
||||
"github.com/containerd/containerd/v2/core/content"
|
||||
"github.com/containerd/containerd/v2/core/remotes/docker"
|
||||
"github.com/gofrs/flock"
|
||||
"github.com/moby/buildkit/util/appcontext"
|
||||
"github.com/moby/buildkit/util/contentutil"
|
||||
@ -39,6 +39,7 @@ type Backend interface {
|
||||
Address() string
|
||||
DockerAddress() string
|
||||
ContainerdAddress() string
|
||||
DebugAddress() string
|
||||
|
||||
Rootless() bool
|
||||
NetNSDetached() bool
|
||||
@ -200,7 +201,7 @@ func Run(t *testing.T, testCases []Test, opt ...TestOpt) {
|
||||
ctx, cancel := context.WithCancelCause(ctx)
|
||||
defer func() { cancel(errors.WithStack(context.Canceled)) }()
|
||||
|
||||
sb, closer, err := newSandbox(ctx, br, getMirror(), mv)
|
||||
sb, closer, err := newSandbox(ctx, t, br, getMirror(), mv)
|
||||
require.NoError(t, err)
|
||||
t.Cleanup(func() { _ = closer() })
|
||||
defer func() {
|
||||
|
54
vendor/github.com/moby/buildkit/util/testutil/integration/sandbox.go
generated
vendored
54
vendor/github.com/moby/buildkit/util/testutil/integration/sandbox.go
generated
vendored
@ -5,11 +5,15 @@ import (
|
||||
"bytes"
|
||||
"context"
|
||||
"fmt"
|
||||
"io"
|
||||
"net"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/google/shlex"
|
||||
"github.com/moby/buildkit/util/bklog"
|
||||
@ -18,6 +22,8 @@ import (
|
||||
|
||||
const buildkitdConfigFile = "buildkitd.toml"
|
||||
|
||||
const maxSandboxTimeout = 5 * time.Minute
|
||||
|
||||
type sandbox struct {
|
||||
Backend
|
||||
|
||||
@ -79,7 +85,7 @@ func (sb *sandbox) Value(k string) interface{} {
|
||||
return sb.mv.values[k].value
|
||||
}
|
||||
|
||||
func newSandbox(ctx context.Context, w Worker, mirror string, mv matrixValue) (s Sandbox, cl func() error, err error) {
|
||||
func newSandbox(ctx context.Context, t *testing.T, w Worker, mirror string, mv matrixValue) (s Sandbox, cl func() error, err error) {
|
||||
cfg := &BackendConfig{
|
||||
Logs: make(map[string]*bytes.Buffer),
|
||||
}
|
||||
@ -110,6 +116,28 @@ func newSandbox(ctx context.Context, w Worker, mirror string, mv matrixValue) (s
|
||||
}
|
||||
deferF.Append(closer)
|
||||
|
||||
ctx, cancel := context.WithCancelCause(ctx)
|
||||
|
||||
go func() {
|
||||
timeout := maxSandboxTimeout
|
||||
if strings.Contains(t.Name(), "ExtraTimeout") {
|
||||
timeout *= 3
|
||||
}
|
||||
timeoutContext, cancelTimeout := context.WithTimeoutCause(ctx, timeout, errors.WithStack(context.DeadlineExceeded))
|
||||
defer cancelTimeout()
|
||||
<-timeoutContext.Done()
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return
|
||||
default:
|
||||
t.Logf("sandbox timeout reached, stopping worker")
|
||||
if addr := b.DebugAddress(); addr != "" {
|
||||
printBuildkitdDebugLogs(t, addr)
|
||||
}
|
||||
cancel(errors.WithStack(context.Canceled))
|
||||
}
|
||||
}()
|
||||
|
||||
return &sandbox{
|
||||
Backend: b,
|
||||
logs: cfg.Logs,
|
||||
@ -120,6 +148,30 @@ func newSandbox(ctx context.Context, w Worker, mirror string, mv matrixValue) (s
|
||||
}, cl, nil
|
||||
}
|
||||
|
||||
func printBuildkitdDebugLogs(t *testing.T, addr string) {
|
||||
if !strings.HasPrefix(addr, socketScheme) {
|
||||
t.Logf("invalid debug address %q", addr)
|
||||
return
|
||||
}
|
||||
|
||||
client := &http.Client{Transport: &http.Transport{DialContext: func(_ context.Context, _, _ string) (net.Conn, error) {
|
||||
return dialPipe(strings.TrimPrefix(addr, socketScheme))
|
||||
}}}
|
||||
|
||||
resp, err := client.Get("http://localhost/debug/pprof/goroutine?debug=2") //nolint:noctx // never cancel
|
||||
if err != nil {
|
||||
t.Fatalf("failed to get debug logs: %v", err)
|
||||
return
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
dt, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to read debug logs: %v", err)
|
||||
return
|
||||
}
|
||||
t.Logf("buildkitd debug logs:\n%s", dt)
|
||||
}
|
||||
|
||||
func RootlessSupported(uid int) bool {
|
||||
cmd := exec.Command("sudo", "-u", fmt.Sprintf("#%d", uid), "-i", "--", "exec", "unshare", "-U", "true") //nolint:gosec // test utility
|
||||
b, err := cmd.CombinedOutput()
|
||||
|
5
vendor/github.com/moby/buildkit/util/testutil/workers/backend.go
generated
vendored
5
vendor/github.com/moby/buildkit/util/testutil/workers/backend.go
generated
vendored
@ -9,6 +9,7 @@ type backend struct {
|
||||
address string
|
||||
dockerAddress string
|
||||
containerdAddress string
|
||||
debugAddress string
|
||||
rootless bool
|
||||
netnsDetached bool
|
||||
snapshotter string
|
||||
@ -29,6 +30,10 @@ func (b backend) ContainerdAddress() string {
|
||||
return b.containerdAddress
|
||||
}
|
||||
|
||||
func (b backend) DebugAddress() string {
|
||||
return b.debugAddress
|
||||
}
|
||||
|
||||
func (b backend) Rootless() bool {
|
||||
return b.rootless
|
||||
}
|
||||
|
3
vendor/github.com/moby/buildkit/util/testutil/workers/containerd.go
generated
vendored
3
vendor/github.com/moby/buildkit/util/testutil/workers/containerd.go
generated
vendored
@ -232,7 +232,7 @@ disabled_plugins = ["io.containerd.grpc.v1.cri"]
|
||||
"nsenter", "-U", "--preserve-credentials", "-m", "-t", fmt.Sprintf("%d", pid)},
|
||||
append(buildkitdArgs, "--containerd-worker-snapshotter=native")...)
|
||||
}
|
||||
buildkitdSock, stop, err := runBuildkitd(cfg, buildkitdArgs, cfg.Logs, c.UID, c.GID, c.ExtraEnv)
|
||||
buildkitdSock, debugSock, stop, err := runBuildkitd(cfg, buildkitdArgs, cfg.Logs, c.UID, c.GID, c.ExtraEnv)
|
||||
if err != nil {
|
||||
integration.PrintLogs(cfg.Logs, log.Println)
|
||||
return nil, nil, err
|
||||
@ -242,6 +242,7 @@ disabled_plugins = ["io.containerd.grpc.v1.cri"]
|
||||
return backend{
|
||||
address: buildkitdSock,
|
||||
containerdAddress: address,
|
||||
debugAddress: debugSock,
|
||||
rootless: rootless,
|
||||
netnsDetached: false,
|
||||
snapshotter: c.Snapshotter,
|
||||
|
3
vendor/github.com/moby/buildkit/util/testutil/workers/oci.go
generated
vendored
3
vendor/github.com/moby/buildkit/util/testutil/workers/oci.go
generated
vendored
@ -77,7 +77,7 @@ func (s *OCI) New(ctx context.Context, cfg *integration.BackendConfig) (integrat
|
||||
if runtime.GOOS != "windows" && s.Snapshotter != "native" {
|
||||
extraEnv = append(extraEnv, "BUILDKIT_DEBUG_FORCE_OVERLAY_DIFF=true")
|
||||
}
|
||||
buildkitdSock, stop, err := runBuildkitd(cfg, buildkitdArgs, cfg.Logs, s.UID, s.GID, extraEnv)
|
||||
buildkitdSock, debugSock, stop, err := runBuildkitd(cfg, buildkitdArgs, cfg.Logs, s.UID, s.GID, extraEnv)
|
||||
if err != nil {
|
||||
integration.PrintLogs(cfg.Logs, log.Println)
|
||||
return nil, nil, err
|
||||
@ -85,6 +85,7 @@ func (s *OCI) New(ctx context.Context, cfg *integration.BackendConfig) (integrat
|
||||
|
||||
return backend{
|
||||
address: buildkitdSock,
|
||||
debugAddress: debugSock,
|
||||
rootless: s.UID != 0,
|
||||
netnsDetached: s.NetNSDetached(),
|
||||
snapshotter: s.Snapshotter,
|
||||
|
23
vendor/github.com/moby/buildkit/util/testutil/workers/util.go
generated
vendored
23
vendor/github.com/moby/buildkit/util/testutil/workers/util.go
generated
vendored
@ -31,7 +31,7 @@ func runBuildkitd(
|
||||
logs map[string]*bytes.Buffer,
|
||||
uid, gid int,
|
||||
extraEnv []string,
|
||||
) (address string, cl func() error, err error) {
|
||||
) (_, _ string, cl func() error, err error) {
|
||||
deferF := &integration.MultiCloser{}
|
||||
cl = deferF.F()
|
||||
|
||||
@ -44,35 +44,36 @@ func runBuildkitd(
|
||||
|
||||
tmpdir, err := os.MkdirTemp("", "bktest_buildkitd")
|
||||
if err != nil {
|
||||
return "", nil, err
|
||||
return "", "", nil, err
|
||||
}
|
||||
|
||||
if err := chown(tmpdir, uid, gid); err != nil {
|
||||
return "", nil, err
|
||||
return "", "", nil, err
|
||||
}
|
||||
|
||||
if err := os.MkdirAll(filepath.Join(tmpdir, "tmp"), 0711); err != nil {
|
||||
return "", nil, err
|
||||
return "", "", nil, err
|
||||
}
|
||||
|
||||
if err := chown(filepath.Join(tmpdir, "tmp"), uid, gid); err != nil {
|
||||
return "", nil, err
|
||||
return "", "", nil, err
|
||||
}
|
||||
deferF.Append(func() error { return os.RemoveAll(tmpdir) })
|
||||
|
||||
cfgfile, err := integration.WriteConfig(
|
||||
append(conf.DaemonConfig, withOTELSocketPath(getTraceSocketPath(tmpdir))))
|
||||
if err != nil {
|
||||
return "", nil, err
|
||||
return "", "", nil, err
|
||||
}
|
||||
deferF.Append(func() error {
|
||||
return os.RemoveAll(filepath.Dir(cfgfile))
|
||||
})
|
||||
|
||||
args = append(args, "--config="+cfgfile)
|
||||
address = getBuildkitdAddr(tmpdir)
|
||||
address := getBuildkitdAddr(tmpdir)
|
||||
debugAddress := getBuildkitdDebugAddr(tmpdir)
|
||||
|
||||
args = append(args, "--root", tmpdir, "--addr", address, "--debug")
|
||||
args = append(args, "--root", tmpdir, "--addr", address, "--debugaddr", debugAddress, "--debug")
|
||||
cmd := exec.Command(args[0], args[1:]...) //nolint:gosec // test utility
|
||||
cmd.Env = append(
|
||||
os.Environ(),
|
||||
@ -88,12 +89,12 @@ func runBuildkitd(
|
||||
|
||||
stop, err := integration.StartCmd(cmd, logs)
|
||||
if err != nil {
|
||||
return "", nil, err
|
||||
return "", "", nil, err
|
||||
}
|
||||
deferF.Append(stop)
|
||||
|
||||
if err := integration.WaitSocket(address, 15*time.Second, cmd); err != nil {
|
||||
return "", nil, err
|
||||
return "", "", nil, err
|
||||
}
|
||||
|
||||
// separated out since it's not required in windows
|
||||
@ -101,5 +102,5 @@ func runBuildkitd(
|
||||
return mountInfo(tmpdir)
|
||||
})
|
||||
|
||||
return address, cl, err
|
||||
return address, debugAddress, cl, err
|
||||
}
|
||||
|
4
vendor/github.com/moby/buildkit/util/testutil/workers/util_unix.go
generated
vendored
4
vendor/github.com/moby/buildkit/util/testutil/workers/util_unix.go
generated
vendored
@ -34,6 +34,10 @@ func getBuildkitdAddr(tmpdir string) string {
|
||||
return "unix://" + filepath.Join(tmpdir, "buildkitd.sock")
|
||||
}
|
||||
|
||||
func getBuildkitdDebugAddr(tmpdir string) string {
|
||||
return "unix://" + filepath.Join(tmpdir, "buildkitd-debug.sock")
|
||||
}
|
||||
|
||||
func getTraceSocketPath(tmpdir string) string {
|
||||
return filepath.Join(tmpdir, "otel-grpc.sock")
|
||||
}
|
||||
|
4
vendor/github.com/moby/buildkit/util/testutil/workers/util_windows.go
generated
vendored
4
vendor/github.com/moby/buildkit/util/testutil/workers/util_windows.go
generated
vendored
@ -22,6 +22,10 @@ func getBuildkitdAddr(tmpdir string) string {
|
||||
return "npipe:////./pipe/buildkitd-" + filepath.Base(tmpdir)
|
||||
}
|
||||
|
||||
func getBuildkitdDebugAddr(tmpdir string) string {
|
||||
return "npipe:////./pipe/buildkitd-debug-" + filepath.Base(tmpdir)
|
||||
}
|
||||
|
||||
func getTraceSocketPath(tmpdir string) string {
|
||||
return `\\.\pipe\buildkit-otel-grpc-` + filepath.Base(tmpdir)
|
||||
}
|
||||
|
Reference in New Issue
Block a user