diff --git a/Makefile b/Makefile index 9c67a1a9ed56..a5fa539cbfa0 100644 --- a/Makefile +++ b/Makefile @@ -38,3 +38,11 @@ generate-authors: ./hack/generate-authors .PHONY: vendor lint shell binaries install binaries-cross validate-all generate-authors validate-docs docs + +debug: + mkdir -p ~/.docker/cli-plugins + go build -o ~/.docker/cli-plugins/docker-buildx ./cmd/buildx + docker buildx rm sg || true + KUBECONFIG=~/.kube/config--hw-sg.yaml docker buildx create --platform=linux/amd64,linux/arm64 --name=sg --driver=kubernetes --driver-opt=qemu.install=true + docker buildx inspect sg --bootstrap + docker buildx ls diff --git a/docs/reference/buildx_create.md b/docs/reference/buildx_create.md index 743d95de64ea..209e463e6c26 100644 --- a/docs/reference/buildx_create.md +++ b/docs/reference/buildx_create.md @@ -132,6 +132,8 @@ Passes additional driver-specific options. Details for each driver: - `nodeselector="label1=value1,label2=value2"` - Sets the kv of `Pod` nodeSelector. No Defaults. Example `nodeselector=kubernetes.io/arch=arm64` - `rootless=(true|false)` - Run the container as a non-root user without `securityContext.privileged`. [Using Ubuntu host kernel is recommended](https://github.com/moby/buildkit/blob/master/docs/rootless.md). Defaults to false. - `loadbalance=(sticky|random)` - Load-balancing strategy. If set to "sticky", the pod is chosen using the hash of the context path. Defaults to "sticky" + - `qemu.install=(true|false)` - Install QEMU emulation for multi platforms support. + - `qemu.image=IMAGE` - Sets the QEMU emulation image. Defaults to `tonistiigi/binfmt:latest` ### Remove a node from a builder (--leave) diff --git a/docs/reference/buildx_create_for_multi_arch_build_in_k8s.md b/docs/reference/buildx_create_for_multi_arch_build_in_k8s.md new file mode 100644 index 000000000000..7667167e2cd8 --- /dev/null +++ b/docs/reference/buildx_create_for_multi_arch_build_in_k8s.md @@ -0,0 +1,74 @@ +# Buildx create for multi-arch builds in k8s + +## With QEMU emulation + +```console +$ KUBECONFIG=${KUBECONFIG} \ + docker buildx create \ + --name=builder \ + --platform=linux/amd64,linux/arm64 \ + --driver=kubernetes \ + --driver-opt=namespace=buildkit,withqemu=true +``` + +### Known Issues + +QEUM only work well for `executing`, but for `compiling`, it will be very slow and may be panic. + +In the mode, if still want to compile binaries in docker. +please use `FROM --platform=${BUILDPLATFORM}` to disable QEUM for compiling stage. + +Example for golang: +``` +FROM --platform=${BUILDPLATFORM} golang:1.6 as builder + +ARG TARGETARCH +RUN GOARCH=${TARGETARCH} go build -o /bin/app-linux-${TARGETARCH} ./path/to/cmd/app + +FROM scratch + +ARG TARGETARCH +COPY --from=builder /bin/app-linux-${TARGETARCH} /bin/app +``` + +## With native nodes + +```console +# create builder `builder` and add native x86_64 node +$ KUBECONFIG=${KUBECONFIG} \ + docker buildx create \ + --name=builder \ + --platform=linux/amd64 \ + --node=builder-amd64 \ + --driver=kubernetes \ + --driver-opt=namespace=buildkit,nodeselector="beta.kubernetes.io/arch=amd64" + +# append node to same builder with native aarch64 node +$ KUBECONFIG=${KUBECONFIG} \ + docker buildx create \ + --name=builder --append \ + --platform=linux/arm64 \ + --node=builder-arm64 \ + --driver=kubernetes \ + --driver-opt=namespace=buildkit,nodeselector="beta.kubernetes.io/arch=arm64" +``` + +* `KUBECONFIG` could be different. +* `buildx create` executing on a pod of multi-arch cluster, `KUBECONFIG` could be unset, but make sure the pod `serviceAccount` could access `deplopments,pods,configmaps` of assigned `namespace` + +### Known Issues + +In this mode, docker build for different arch on matched native host. +The build time may be longer. +Even `FROM --platform=${BUILDPLATFORM}` defined, all stages will build for each arch. + +However, it is totally native. +Projects, witch needs to build on native system, will be happy with the mode. + +## Tips + +Once `buildx create` in k8s, the created deployments will not be removed until `buildx rm` called. +So we could set `RUN --mount=type=cache` for sharing common caches for different projects. + +However, For nodejs user. +Don't shared `npm` or `yarn` global caches (`pnpm` will be better), restoring caches may be slower than reinstalling. diff --git a/driver/bkimage/bkimage.go b/driver/bkimage/bkimage.go index fa6388c62ed1..f2443e7c1f0a 100644 --- a/driver/bkimage/bkimage.go +++ b/driver/bkimage/bkimage.go @@ -2,5 +2,6 @@ package bkimage const ( DefaultImage = "moby/buildkit:buildx-stable-1" // TODO: make this verified + QemuImage = "tonistiigi/binfmt:latest" // TODO: make this verified DefaultRootlessImage = DefaultImage + "-rootless" ) diff --git a/driver/kubernetes/driver.go b/driver/kubernetes/driver.go index b80069fe1c46..58daf3736006 100644 --- a/driver/kubernetes/driver.go +++ b/driver/kubernetes/driver.go @@ -18,6 +18,8 @@ import ( "github.com/moby/buildkit/util/tracing/detect" "github.com/pkg/errors" appsv1 "k8s.io/api/apps/v1" + corev1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" clientappsv1 "k8s.io/client-go/kubernetes/typed/apps/v1" @@ -39,15 +41,18 @@ type Driver struct { factory driver.Factory minReplicas int deployment *appsv1.Deployment + configMap *corev1.ConfigMap clientset *kubernetes.Clientset deploymentClient clientappsv1.DeploymentInterface podClient clientcorev1.PodInterface + configMapClient clientcorev1.ConfigMapInterface podChooser podchooser.PodChooser } func (d *Driver) IsMobyDriver() bool { return false } + func (d *Driver) Config() driver.InitConfig { return d.InitConfig } @@ -56,7 +61,24 @@ func (d *Driver) Bootstrap(ctx context.Context, l progress.Logger) error { return progress.Wrap("[internal] booting buildkit", l, func(sub progress.SubLogger) error { _, err := d.deploymentClient.Get(ctx, d.deployment.Name, metav1.GetOptions{}) if err != nil { - // TODO: return err if err != ErrNotFound + if !apierrors.IsNotFound(err) { + return errors.Wrapf(err, "error for bootstrap %q", d.deployment.Name) + } + + if d.configMap != nil { + // create ConfigMap first if exists + _, err = d.configMapClient.Create(ctx, d.configMap, metav1.CreateOptions{}) + if err != nil { + if !apierrors.IsAlreadyExists(err) { + return errors.Wrapf(err, "error while calling configMapClient.Create for %q", d.configMap.Name) + } + _, err = d.configMapClient.Update(ctx, d.configMap, metav1.UpdateOptions{}) + if err != nil { + return errors.Wrapf(err, "error while calling configMapClient.Update for %q", d.configMap.Name) + } + } + } + _, err = d.deploymentClient.Create(ctx, d.deployment, metav1.CreateOptions{}) if err != nil { return errors.Wrapf(err, "error while calling deploymentClient.Create for %q", d.deployment.Name) @@ -145,7 +167,16 @@ func (d *Driver) Stop(ctx context.Context, force bool) error { func (d *Driver) Rm(ctx context.Context, force bool, rmVolume bool) error { if err := d.deploymentClient.Delete(ctx, d.deployment.Name, metav1.DeleteOptions{}); err != nil { - return errors.Wrapf(err, "error while calling deploymentClient.Delete for %q", d.deployment.Name) + if !apierrors.IsNotFound(err) { + return errors.Wrapf(err, "error while calling deploymentClient.Delete for %q", d.deployment.Name) + } + } + if d.configMap != nil { + if err := d.configMapClient.Delete(ctx, d.configMap.Name, metav1.DeleteOptions{}); err != nil { + if !apierrors.IsNotFound(err) { + return errors.Wrapf(err, "error while calling configMapClient.Delete for %q", d.configMap.Name) + } + } } return nil } diff --git a/driver/kubernetes/factory.go b/driver/kubernetes/factory.go index bff4212ca03b..9ddc5e564b62 100644 --- a/driver/kubernetes/factory.go +++ b/driver/kubernetes/factory.go @@ -2,6 +2,7 @@ package kubernetes import ( "context" + "os" "strconv" "strings" @@ -59,11 +60,13 @@ func (f *factory) New(ctx context.Context, cfg driver.InitConfig) (driver.Driver if err != nil { return nil, err } + d := &Driver{ factory: f, InitConfig: cfg, clientset: clientset, } + deploymentOpt := &manifest.DeploymentOpt{ Name: deploymentName, Image: bkimage.DefaultImage, @@ -72,12 +75,25 @@ func (f *factory) New(ctx context.Context, cfg driver.InitConfig) (driver.Driver Rootless: false, Platforms: cfg.Platforms, } + + deploymentOpt.Qemu.Image = bkimage.QemuImage + + if cfg.ConfigFile != "" { + buildkitConfig, err := os.ReadFile(cfg.ConfigFile) + if err != nil { + return nil, err + } + deploymentOpt.BuildkitConfig = buildkitConfig + } + loadbalance := LoadbalanceSticky - imageOverride := "" + for k, v := range cfg.DriverOpts { switch k { case "image": - imageOverride = v + if v != "" { + deploymentOpt.Image = v + } case "namespace": namespace = v case "replicas": @@ -117,20 +133,31 @@ func (f *factory) New(ctx context.Context, cfg driver.InitConfig) (driver.Driver return nil, errors.Errorf("invalid loadbalance %q", v) } loadbalance = v + case "qemu.install": + deploymentOpt.Qemu.Install, err = strconv.ParseBool(v) + if err != nil { + return nil, err + } + case "qemu.image": + if v != "" { + deploymentOpt.Qemu.Image = v + } default: return nil, errors.Errorf("invalid driver option %s for driver %s", k, DriverName) } } - if imageOverride != "" { - deploymentOpt.Image = imageOverride - } - d.deployment, err = manifest.NewDeployment(deploymentOpt) + + d.deployment, d.configMap, err = manifest.NewDeployment(deploymentOpt) if err != nil { return nil, err } + d.minReplicas = deploymentOpt.Replicas + d.deploymentClient = clientset.AppsV1().Deployments(namespace) d.podClient = clientset.CoreV1().Pods(namespace) + d.configMapClient = clientset.CoreV1().ConfigMaps(namespace) + switch loadbalance { case LoadbalanceSticky: d.podChooser = &podchooser.StickyPodChooser{ diff --git a/driver/kubernetes/manifest/manifest.go b/driver/kubernetes/manifest/manifest.go index eb44a7731152..3673044a0d05 100644 --- a/driver/kubernetes/manifest/manifest.go +++ b/driver/kubernetes/manifest/manifest.go @@ -12,11 +12,23 @@ import ( ) type DeploymentOpt struct { - Namespace string - Name string - Image string - Replicas int - BuildkitFlags []string + Namespace string + Name string + Image string + Replicas int + + // Qemu + Qemu struct { + // when true, will install binfmt + Install bool + Image string + } + + BuildkitFlags []string + // BuildkitConfig + // when not empty, will create configmap with buildkit.toml and mounted + BuildkitConfig []byte + Rootless bool NodeSelector map[string]string RequestsCPU string @@ -31,7 +43,7 @@ const ( AnnotationPlatform = "buildx.docker.com/platform" ) -func NewDeployment(opt *DeploymentOpt) (*appsv1.Deployment, error) { +func NewDeployment(opt *DeploymentOpt) (d *appsv1.Deployment, c *corev1.ConfigMap, err error) { labels := map[string]string{ "app": opt.Name, } @@ -44,7 +56,7 @@ func NewDeployment(opt *DeploymentOpt) (*appsv1.Deployment, error) { annotations[AnnotationPlatform] = strings.Join(platformutil.Format(opt.Platforms), ",") } - d := &appsv1.Deployment{ + d = &appsv1.Deployment{ TypeMeta: metav1.TypeMeta{ APIVersion: appsv1.SchemeGroupVersion.String(), Kind: "Deployment", @@ -91,9 +103,56 @@ func NewDeployment(opt *DeploymentOpt) (*appsv1.Deployment, error) { }, }, } + + if len(opt.BuildkitConfig) > 0 { + c = &corev1.ConfigMap{ + TypeMeta: metav1.TypeMeta{ + APIVersion: corev1.SchemeGroupVersion.String(), + Kind: "ConfigMap", + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: opt.Namespace, + Name: opt.Name + "-config", + Annotations: annotations, + }, + Data: map[string]string{ + "buildkitd.toml": string(opt.BuildkitConfig), + }, + } + + d.Spec.Template.Spec.Containers[0].VolumeMounts = []corev1.VolumeMount{{ + Name: "config", + MountPath: "/etc/buildkit", + }} + + d.Spec.Template.Spec.Volumes = []corev1.Volume{{ + Name: "config", + VolumeSource: corev1.VolumeSource{ + ConfigMap: &corev1.ConfigMapVolumeSource{ + LocalObjectReference: corev1.LocalObjectReference{ + Name: c.Name, + }, + }, + }, + }} + } + + if opt.Qemu.Install { + d.Spec.Template.Spec.InitContainers = []corev1.Container{ + { + Name: "qemu", + Image: opt.Qemu.Image, + Args: []string{"--install", "all"}, + SecurityContext: &corev1.SecurityContext{ + Privileged: &privileged, + }, + }, + } + } + if opt.Rootless { if err := toRootless(d); err != nil { - return nil, err + return nil, nil, err } } @@ -104,7 +163,7 @@ func NewDeployment(opt *DeploymentOpt) (*appsv1.Deployment, error) { if opt.RequestsCPU != "" { reqCPU, err := resource.ParseQuantity(opt.RequestsCPU) if err != nil { - return nil, err + return nil, nil, err } d.Spec.Template.Spec.Containers[0].Resources.Requests[corev1.ResourceCPU] = reqCPU } @@ -112,7 +171,7 @@ func NewDeployment(opt *DeploymentOpt) (*appsv1.Deployment, error) { if opt.RequestsMemory != "" { reqMemory, err := resource.ParseQuantity(opt.RequestsMemory) if err != nil { - return nil, err + return nil, nil, err } d.Spec.Template.Spec.Containers[0].Resources.Requests[corev1.ResourceMemory] = reqMemory } @@ -120,7 +179,7 @@ func NewDeployment(opt *DeploymentOpt) (*appsv1.Deployment, error) { if opt.LimitsCPU != "" { limCPU, err := resource.ParseQuantity(opt.LimitsCPU) if err != nil { - return nil, err + return nil, nil, err } d.Spec.Template.Spec.Containers[0].Resources.Limits[corev1.ResourceCPU] = limCPU } @@ -128,12 +187,12 @@ func NewDeployment(opt *DeploymentOpt) (*appsv1.Deployment, error) { if opt.LimitsMemory != "" { limMemory, err := resource.ParseQuantity(opt.LimitsMemory) if err != nil { - return nil, err + return nil, nil, err } d.Spec.Template.Spec.Containers[0].Resources.Limits[corev1.ResourceMemory] = limMemory } - return d, nil + return } func toRootless(d *appsv1.Deployment) error { diff --git a/go.mod b/go.mod index 5ee9648cc1b9..3e6eed903434 100644 --- a/go.mod +++ b/go.mod @@ -1,10 +1,9 @@ module github.com/docker/buildx -go 1.13 +go 1.16 require ( github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 // indirect - github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932 // indirect github.com/bugsnag/bugsnag-go v1.4.1 // indirect github.com/bugsnag/panicwrap v1.2.0 // indirect github.com/cenkalti/backoff v2.1.1+incompatible // indirect @@ -12,7 +11,6 @@ require ( github.com/compose-spec/compose-go v0.0.0-20210706130854-69459d4976b5 github.com/containerd/console v1.0.2 github.com/containerd/containerd v1.5.2 - github.com/denisenkom/go-mssqldb v0.0.0-20190315220205-a8ed825ac853 // indirect github.com/docker/cli v20.10.7+incompatible github.com/docker/compose-on-kubernetes v0.4.19-0.20190128150448-356b2919c496 // indirect github.com/docker/distribution v2.7.1+incompatible @@ -22,7 +20,6 @@ require ( github.com/docker/libtrust v0.0.0-20150526203908-9cbd2a1374f4 // indirect github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c // indirect github.com/elazarl/goproxy v0.0.0-20191011121108-aa519ddbe484 // indirect - github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5 // indirect github.com/fvbommel/sortorder v1.0.1 // indirect github.com/gofrs/flock v0.7.3 github.com/gofrs/uuid v3.3.0+incompatible // indirect @@ -33,10 +30,7 @@ require ( github.com/hashicorp/hcl/v2 v2.8.2 github.com/jinzhu/gorm v1.9.2 // indirect github.com/jinzhu/inflection v0.0.0-20180308033659-04140366298a // indirect - github.com/jinzhu/now v1.0.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/lib/pq v1.10.0 // indirect - github.com/mattn/go-sqlite3 v1.10.0 // indirect github.com/moby/buildkit v0.8.2-0.20210702160134-1a7543a10527 github.com/opencontainers/go-digest v1.0.0 github.com/opencontainers/image-spec v1.0.1 diff --git a/go.sum b/go.sum index 9babe9ffc79a..b1d1605362d7 100644 --- a/go.sum +++ b/go.sum @@ -94,15 +94,11 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932 h1:mXoPYz/Ul5HYEDvkta6I8/rnYM5gSdSV2tJ6XbZuEtY= -github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k= -github.com/bitly/go-simplejson v0.5.0 h1:6IH+V8/tVMab511d5bn4M7EwGXZf9Hj6i2xSwkNEM+Y= github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bmatcuk/doublestar v1.1.5/go.mod h1:wiQtGV+rzVYxB7WIlirSN++5HPtPlXEo9MEoZQC/PmE= -github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= github.com/bshuster-repo/logrus-logstash-hook v1.0.0/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= @@ -260,8 +256,6 @@ github.com/danieljoos/wincred v1.1.0/go.mod h1:XYlo+eRTsVA9aHGp7NGjFkPla4m+DCL7h github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/denisenkom/go-mssqldb v0.0.0-20190315220205-a8ed825ac853 h1:tTngnoO/B6HQnJ+pK8tN7kEAhmhIfaJOutqq/A4/JTM= -github.com/denisenkom/go-mssqldb v0.0.0-20190315220205-a8ed825ac853/go.mod h1:xN/JuLBIz4bjkxNmByTiV1IbhfnYb6oo99phBn4Eqhc= github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= @@ -306,7 +300,6 @@ github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25Kn github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/elazarl/goproxy v0.0.0-20191011121108-aa519ddbe484 h1:pEtiCjIXx3RvGjlUJuCNxNOw0MNblyR9Wi+vJGBFh+8= github.com/elazarl/goproxy v0.0.0-20191011121108-aa519ddbe484/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= -github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2 h1:dWB6v3RcOy03t/bUadywsbyrQwCqZeNIEX6M1OtSZOM= github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= @@ -316,8 +309,6 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5 h1:Yzb9+7DPaBjB8zlTR87/ElzFsnQfuHnVUVqpZZIcV5Y= -github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= @@ -444,7 +435,6 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= @@ -514,8 +504,6 @@ github.com/jinzhu/gorm v1.9.2 h1:lCvgEaqe/HVE+tjAR2mt4HbbHAZsQOv3XAZiEZV37iw= github.com/jinzhu/gorm v1.9.2/go.mod h1:Vla75njaFJ8clLU1W44h34PjIkijhjHIYnZxMqCdxqo= github.com/jinzhu/inflection v0.0.0-20180308033659-04140366298a h1:eeaG9XMUvRBYXJi4pg1ZKM7nxc5AfXfojeLLW7O5J3k= github.com/jinzhu/inflection v0.0.0-20180308033659-04140366298a/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= -github.com/jinzhu/now v1.0.0 h1:6WV8LvwPpDhKjo5U9O6b4+xdG/jTXNPwlDme/MTo8Ns= -github.com/jinzhu/now v1.0.0/go.mod h1:oHTiXerJ20+SfYcrdlBO7rzZRJWGwSTQ0iUY2jI6Gfc= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= @@ -528,7 +516,6 @@ github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA= @@ -555,8 +542,6 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348 h1:MtvEpTB6LX3vkb4ax0b5D2DHbNAUsen0Gx5wZoq3lV4= github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= -github.com/lib/pq v1.10.0 h1:Zx5DJFEYQXio93kgXnQ09fXNiUKsqv4OUEu2UtGcB1E= -github.com/lib/pq v1.10.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -571,8 +556,6 @@ github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= -github.com/mattn/go-sqlite3 v1.10.0 h1:jbhqpg7tQe4SupckyijYiy0mJJ/pRyHvXf7JdWK860o= -github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= @@ -736,10 +719,8 @@ github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrf github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -801,11 +782,9 @@ github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtX github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852 h1:cPXZWzzG0NllBLdjWoD1nDfaqu98YMv+OneaKc8sPOA= github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= -github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae h1:4hwBBUfQCFe3Cym0ZtKyq7L16eZUtYKs+BaHDN6mAns= github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= @@ -916,7 +895,6 @@ golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= diff --git a/vendor/modules.txt b/vendor/modules.txt index b74eecc5ddf6..d702273868bc 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -32,6 +32,7 @@ github.com/Microsoft/hcsshim/osversion # github.com/agext/levenshtein v1.2.1 github.com/agext/levenshtein # github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 +## explicit github.com/agl/ed25519 github.com/agl/ed25519/edwards25519 # github.com/apparentlymart/go-cidr v1.0.1 @@ -40,11 +41,20 @@ github.com/apparentlymart/go-cidr/cidr github.com/apparentlymart/go-textseg/v12/textseg # github.com/beorn7/perks v1.0.1 github.com/beorn7/perks/quantile +# github.com/bugsnag/bugsnag-go v1.4.1 +## explicit +# github.com/bugsnag/panicwrap v1.2.0 +## explicit +# github.com/cenkalti/backoff v2.1.1+incompatible +## explicit # github.com/cenkalti/backoff/v4 v4.1.1 github.com/cenkalti/backoff/v4 # github.com/cespare/xxhash/v2 v2.1.1 github.com/cespare/xxhash/v2 +# github.com/cloudflare/cfssl v0.0.0-20181213083726-b94e044bb51e +## explicit # github.com/compose-spec/compose-go v0.0.0-20210706130854-69459d4976b5 +## explicit github.com/compose-spec/compose-go/errdefs github.com/compose-spec/compose-go/interpolation github.com/compose-spec/compose-go/loader @@ -54,8 +64,10 @@ github.com/compose-spec/compose-go/types # github.com/containerd/cgroups v1.0.1 github.com/containerd/cgroups/stats/v1 # github.com/containerd/console v1.0.2 +## explicit github.com/containerd/console # github.com/containerd/containerd v1.5.2 +## explicit github.com/containerd/containerd/api/services/content/v1 github.com/containerd/containerd/archive/compression github.com/containerd/containerd/content @@ -89,6 +101,7 @@ github.com/davecgh/go-spew/spew github.com/distribution/distribution/v3/digestset github.com/distribution/distribution/v3/reference # github.com/docker/cli v20.10.7+incompatible => github.com/docker/cli v20.10.3-0.20210702143511-f782d1355eff+incompatible +## explicit github.com/docker/cli/cli github.com/docker/cli/cli-plugins/manager github.com/docker/cli/cli-plugins/plugin @@ -114,8 +127,10 @@ github.com/docker/cli/cli/trust github.com/docker/cli/cli/version github.com/docker/cli/opts # github.com/docker/compose-on-kubernetes v0.4.19-0.20190128150448-356b2919c496 +## explicit github.com/docker/compose-on-kubernetes/api # github.com/docker/distribution v2.7.1+incompatible +## explicit github.com/docker/distribution github.com/docker/distribution/digestset github.com/docker/distribution/manifest @@ -133,6 +148,7 @@ github.com/docker/distribution/registry/storage/cache github.com/docker/distribution/registry/storage/cache/memory github.com/docker/distribution/uuid # github.com/docker/docker v20.10.7+incompatible => github.com/docker/docker v20.10.3-0.20210609100121-ef4d47340142+incompatible +## explicit github.com/docker/docker/api github.com/docker/docker/api/types github.com/docker/docker/api/types/blkiodev @@ -164,9 +180,11 @@ github.com/docker/docker/pkg/urlutil github.com/docker/docker/registry github.com/docker/docker/rootless # github.com/docker/docker-credential-helpers v0.6.4-0.20210125172408-38bea2ce277a +## explicit github.com/docker/docker-credential-helpers/client github.com/docker/docker-credential-helpers/credentials # github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c +## explicit github.com/docker/go/canonical/json # github.com/docker/go-connections v0.4.0 github.com/docker/go-connections/nat @@ -176,15 +194,24 @@ github.com/docker/go-connections/tlsconfig github.com/docker/go-metrics # github.com/docker/go-units v0.4.0 github.com/docker/go-units +# github.com/docker/libtrust v0.0.0-20150526203908-9cbd2a1374f4 +## explicit # github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c +## explicit github.com/docker/spdystream github.com/docker/spdystream/spdy +# github.com/elazarl/goproxy v0.0.0-20191011121108-aa519ddbe484 +## explicit # github.com/fvbommel/sortorder v1.0.1 +## explicit github.com/fvbommel/sortorder # github.com/go-logr/logr v0.2.0 github.com/go-logr/logr # github.com/gofrs/flock v0.7.3 +## explicit github.com/gofrs/flock +# github.com/gofrs/uuid v3.3.0+incompatible +## explicit # github.com/gogo/googleapis v1.4.0 github.com/gogo/googleapis/google/rpc # github.com/gogo/protobuf v1.3.2 @@ -207,6 +234,8 @@ github.com/golang/protobuf/ptypes/timestamp github.com/golang/protobuf/ptypes/wrappers # github.com/golang/snappy v0.0.4-0.20210608040537-544b4180ac70 github.com/golang/snappy +# github.com/google/certificate-transparency-go v1.0.21 +## explicit # github.com/google/go-cmp v0.5.6 github.com/google/go-cmp/cmp github.com/google/go-cmp/cmp/internal/diff @@ -216,6 +245,7 @@ github.com/google/go-cmp/cmp/internal/value # github.com/google/gofuzz v1.1.0 github.com/google/gofuzz # github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 +## explicit github.com/google/shlex # github.com/google/uuid v1.2.0 github.com/google/uuid @@ -231,12 +261,16 @@ github.com/grpc-ecosystem/go-grpc-middleware github.com/grpc-ecosystem/grpc-gateway/internal github.com/grpc-ecosystem/grpc-gateway/runtime github.com/grpc-ecosystem/grpc-gateway/utilities +# github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed +## explicit # github.com/hashicorp/go-cty-funcs v0.0.0-20200930094925-2721b1e36840 +## explicit github.com/hashicorp/go-cty-funcs/cidr github.com/hashicorp/go-cty-funcs/crypto github.com/hashicorp/go-cty-funcs/encoding github.com/hashicorp/go-cty-funcs/uuid # github.com/hashicorp/hcl/v2 v2.8.2 +## explicit github.com/hashicorp/hcl/v2 github.com/hashicorp/hcl/v2/ext/customdecode github.com/hashicorp/hcl/v2/ext/tryfunc @@ -250,10 +284,16 @@ github.com/hashicorp/hcl/v2/json github.com/imdario/mergo # github.com/inconshreveable/mousetrap v1.0.0 github.com/inconshreveable/mousetrap +# github.com/jinzhu/gorm v1.9.2 +## explicit +# github.com/jinzhu/inflection v0.0.0-20180308033659-04140366298a +## explicit # github.com/joho/godotenv v1.3.0 github.com/joho/godotenv # github.com/json-iterator/go v1.1.10 github.com/json-iterator/go +# github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 +## explicit # github.com/klauspost/compress v1.12.3 github.com/klauspost/compress/fse github.com/klauspost/compress/huff0 @@ -270,6 +310,7 @@ github.com/mitchellh/go-wordwrap # github.com/mitchellh/mapstructure v1.4.1 github.com/mitchellh/mapstructure # github.com/moby/buildkit v0.8.2-0.20210702160134-1a7543a10527 +## explicit github.com/moby/buildkit/api/services/control github.com/moby/buildkit/api/types github.com/moby/buildkit/client @@ -331,11 +372,14 @@ github.com/modern-go/reflect2 # github.com/morikuni/aec v1.0.0 github.com/morikuni/aec # github.com/opencontainers/go-digest v1.0.0 +## explicit github.com/opencontainers/go-digest # github.com/opencontainers/image-spec v1.0.1 +## explicit github.com/opencontainers/image-spec/specs-go github.com/opencontainers/image-spec/specs-go/v1 # github.com/pkg/errors v0.9.1 +## explicit github.com/pkg/errors # github.com/pmezard/go-difflib v1.0.0 github.com/pmezard/go-difflib/difflib @@ -354,17 +398,23 @@ github.com/prometheus/procfs github.com/prometheus/procfs/internal/fs github.com/prometheus/procfs/internal/util # github.com/serialx/hashring v0.0.0-20190422032157-8b2912629002 +## explicit github.com/serialx/hashring # github.com/sirupsen/logrus v1.8.1 +## explicit github.com/sirupsen/logrus # github.com/spf13/cobra v1.1.1 +## explicit github.com/spf13/cobra # github.com/spf13/pflag v1.0.5 +## explicit github.com/spf13/pflag # github.com/stretchr/testify v1.7.0 +## explicit github.com/stretchr/testify/assert github.com/stretchr/testify/require # github.com/theupdateframework/notary v0.6.1 +## explicit github.com/theupdateframework/notary github.com/theupdateframework/notary/client github.com/theupdateframework/notary/client/changelist @@ -384,6 +434,7 @@ github.com/tonistiigi/fsutil github.com/tonistiigi/fsutil/prefix github.com/tonistiigi/fsutil/types # github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea +## explicit github.com/tonistiigi/units # github.com/tonistiigi/vt100 v0.0.0-20210615222946-8066bb97264f github.com/tonistiigi/vt100 @@ -394,6 +445,7 @@ github.com/xeipuuv/gojsonreference # github.com/xeipuuv/gojsonschema v1.2.0 github.com/xeipuuv/gojsonschema # github.com/zclconf/go-cty v1.7.1 +## explicit github.com/zclconf/go-cty/cty github.com/zclconf/go-cty/cty/convert github.com/zclconf/go-cty/cty/function @@ -412,6 +464,7 @@ go.opentelemetry.io/contrib # go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.21.0 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc # go.opentelemetry.io/otel v1.0.0-RC1 +## explicit go.opentelemetry.io/otel go.opentelemetry.io/otel/attribute go.opentelemetry.io/otel/baggage @@ -436,6 +489,7 @@ go.opentelemetry.io/otel/sdk/internal go.opentelemetry.io/otel/sdk/resource go.opentelemetry.io/otel/sdk/trace # go.opentelemetry.io/otel/trace v1.0.0-RC1 +## explicit go.opentelemetry.io/otel/trace # go.opentelemetry.io/proto/otlp v0.9.0 go.opentelemetry.io/proto/otlp/collector/trace/v1 @@ -475,6 +529,7 @@ golang.org/x/oauth2/internal golang.org/x/oauth2/jws golang.org/x/oauth2/jwt # golang.org/x/sync v0.0.0-20210220032951-036812b2e83c +## explicit golang.org/x/sync/errgroup golang.org/x/sync/semaphore # golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57 @@ -592,6 +647,12 @@ google.golang.org/protobuf/types/known/durationpb google.golang.org/protobuf/types/known/fieldmaskpb google.golang.org/protobuf/types/known/timestamppb google.golang.org/protobuf/types/known/wrapperspb +# gopkg.in/dancannon/gorethink.v3 v3.0.5 +## explicit +# gopkg.in/fatih/pool.v2 v2.0.0 +## explicit +# gopkg.in/gorethink/gorethink.v3 v3.0.5 +## explicit # gopkg.in/inf.v0 v0.9.1 gopkg.in/inf.v0 # gopkg.in/yaml.v2 v2.4.0 @@ -599,6 +660,7 @@ gopkg.in/yaml.v2 # gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c gopkg.in/yaml.v3 # k8s.io/api v0.20.6 +## explicit k8s.io/api/admissionregistration/v1 k8s.io/api/admissionregistration/v1beta1 k8s.io/api/apiserverinternal/v1alpha1 @@ -643,6 +705,7 @@ k8s.io/api/storage/v1 k8s.io/api/storage/v1alpha1 k8s.io/api/storage/v1beta1 # k8s.io/apimachinery v0.20.6 +## explicit k8s.io/apimachinery/pkg/api/errors k8s.io/apimachinery/pkg/api/meta k8s.io/apimachinery/pkg/api/resource @@ -683,6 +746,7 @@ k8s.io/apimachinery/pkg/watch k8s.io/apimachinery/third_party/forked/golang/netutil k8s.io/apimachinery/third_party/forked/golang/reflect # k8s.io/client-go v0.20.6 +## explicit k8s.io/client-go/discovery k8s.io/client-go/kubernetes k8s.io/client-go/kubernetes/scheme @@ -766,3 +830,5 @@ k8s.io/utils/integer sigs.k8s.io/structured-merge-diff/v4/value # sigs.k8s.io/yaml v1.2.0 sigs.k8s.io/yaml +# github.com/docker/cli => github.com/docker/cli v20.10.3-0.20210702143511-f782d1355eff+incompatible +# github.com/docker/docker => github.com/docker/docker v20.10.3-0.20210609100121-ef4d47340142+incompatible