Проблема с зависимостями Glide или Dep, зависимости вендора не плоские - PullRequest
0 голосов
/ 15 февраля 2019

Соответствующий код выглядит следующим образом:

import (
    core "k8s.io/api/core/v1"
    metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    "k8s.io/kubernetes/pkg/api/legacyscheme"
)
...

func PodExec(clusterId string, namespace string, podName string, containerName string, cmd string) (){

    ...

    req.VersionedParams(&core.PodExecOptions{
        Container: containerName,
        Command:   []string{"bash", "-c", cmd},
        Stdin:     false,
        Stdout:    true,
        Stderr:    true,
        TTY:       false,
    }, legacyscheme.ParameterCodec) //FIXME Here is the concerned code.

}

...

glide.yaml выглядит следующим образом:

package: xxx-k8s-apiserver
import:
- package: github.com/astaxie/beego
  version: v1.10.1
- package: k8s.io/api
  subpackages:
  - apps/v1
  - core/v1
- package: k8s.io/apimachinery
  subpackages:
  - pkg/api/errors
  - pkg/api/resource
  - pkg/apis/meta/v1
  - pkg/util/intstr
  - pkg/util/yaml
- package: k8s.io/client-go
  version: v10.0.0

Когда я запускаю go build в моем проекте, sth идет не так, как это.



# xxx-k8s-apiserver/models
models/pod.go:82:3: cannot use legacyscheme.ParameterCodec (type "xxx-k8s-apiserver/vendor/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime".ParameterCodec) as type "xxx-k8s-apiserver/vendor/k8s.io/apimachinery/pkg/runtime".ParameterCodec in argument to req.VersionedParams:
        "xxx-k8s-apiserver/vendor/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime".ParameterCodec does not implement "xxx-k8s-apiserver/vendor/k8s.io/apimachinery/pkg/runtime".ParameterCodec (wrong type for DecodeParameters method)
                have DecodeParameters(url.Values, "xxx-k8s-apiserver/vendor/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime/schema".GroupVersion, "xxx-k8s-apiserver/vendor/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/runtime".Object) error
                want DecodeParameters(url.Values, "xxx-k8s-apiserver/vendor/k8s.io/apimachinery/pkg/runtime/schema".GroupVersion, "xxx-k8s-apiserver/vendor/k8s.io/apimachinery/pkg/runtime".Object) error



Затем я вижу в каталоге ./vendor, похоже, что glide или dep каким-то образом неверно организовали путь зависимости.Зависимости не являются плоскими, потому что есть другой vendor в пути поставщика ./vendor/k8s.io/kubernetes/vendor.

1 Ответ

0 голосов
/ 15 февраля 2019

Как обращаться с вложенными каталогами "vendor" в пакетах Go?

Типичная проблема с вложенными продавцами.До сих пор нет подсказок, почему --strip-vendor не является истинным по умолчанию в glide install, это вызывает столько неудобств.

Это дублирующая проблема.

...