Merge pull request #45203 from cpuguy83/client_add_buildkit_helper

client: Add buildkit ClientOpts
This commit is contained in:
Sebastiaan van Stijn 2023-03-27 20:51:53 +02:00 committed by GitHub
commit cba6f2d426
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

27
client/buildkit.go Normal file
View file

@ -0,0 +1,27 @@
package client
import (
"context"
"net"
"github.com/moby/buildkit/client"
)
// BuildkitClientOpts returns a list of buildkit client options which allows the
// caller to use to create a buildkit client which will connect to the buildkit
// API provided by the daemon.
//
// Example: bkclient.New(ctx, "", BuildkitClientOpts(c)...)
func BuildkitClientOpts(c CommonAPIClient) []client.ClientOpt {
session := func(ctx context.Context, proto string, meta map[string][]string) (net.Conn, error) {
return c.DialHijack(ctx, "/session", proto, meta)
}
grpc := func(ctx context.Context, _ string) (net.Conn, error) {
return c.DialHijack(ctx, "/grpc", "h2c", nil)
}
return []client.ClientOpt{
client.WithSessionDialer(session),
client.WithContextDialer(grpc),
}
}