|
|
|
@ -17,6 +17,8 @@ import (
|
|
|
|
|
"github.com/moby/buildkit/client"
|
|
|
|
|
"github.com/moby/buildkit/util/tracing/detect"
|
|
|
|
|
"github.com/pkg/errors"
|
|
|
|
|
"google.golang.org/grpc"
|
|
|
|
|
"google.golang.org/grpc/metadata"
|
|
|
|
|
appsv1 "k8s.io/api/apps/v1"
|
|
|
|
|
corev1 "k8s.io/api/core/v1"
|
|
|
|
|
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
|
|
|
@ -189,7 +191,12 @@ func (d *Driver) Rm(ctx context.Context, force, rmVolume, rmDaemon bool) error {
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (d *Driver) Client(ctx context.Context) (*client.Client, error) {
|
|
|
|
|
func (d *Driver) Client(ctx context.Context, copts ...driver.ClientOption) (*client.Client, error) {
|
|
|
|
|
co := driver.ClientOptions{}
|
|
|
|
|
for _, opt := range copts {
|
|
|
|
|
opt(&co)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
restClient := d.clientset.CoreV1().RESTClient()
|
|
|
|
|
restClientConfig, err := d.KubeClientConfig.ClientConfig()
|
|
|
|
|
if err != nil {
|
|
|
|
@ -218,9 +225,19 @@ func (d *Driver) Client(ctx context.Context) (*client.Client, error) {
|
|
|
|
|
opts = append(opts, client.WithContextDialer(func(context.Context, string) (net.Conn, error) {
|
|
|
|
|
return conn, nil
|
|
|
|
|
}))
|
|
|
|
|
|
|
|
|
|
if td, ok := exp.(client.TracerDelegate); ok {
|
|
|
|
|
opts = append(opts, client.WithTracerDelegate(td))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if len(co.Meta) > 0 {
|
|
|
|
|
opts = append(opts, client.WithGRPCDialOption(grpc.WithChainUnaryInterceptor(func(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error {
|
|
|
|
|
// merge the existing context with new metadata.
|
|
|
|
|
ctx = metadata.NewOutgoingContext(ctx, co.Meta)
|
|
|
|
|
return invoker(ctx, method, req, reply, cc, opts...)
|
|
|
|
|
})))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return client.New(ctx, "", opts...)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|