如何找到 Kubernetes Go 客户端的任何子包的确切路径是什么?
我对整个 Go 依赖项 ( go get k8s.io/client-go@latest
) 感到困惑,因为我看到很多等价/相似V1
或类似的V1beta1
前缀XXX
有时会在其他时候以我认为任意的方式出现恐慌。
但是,当我检查文档时,很难找到有关接口、结构定义和包名称的信息(我目前被阻止的东西)。
当我在多次点击后转到这里时:https ://pkg.go.dev/k8s.io/api@v0.23.1/core/v1#Container
那么我如何将此 URL 转换为 Go 包?它可能是Container
结构的包,但对于任何其他“Kubernetes 事物”都是一样的。
查看https://github.com/kubernetes/client-go/blob/master/examples/out-of-cluster-client-configuration/main.go上的示例,我发现它们正在导入metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
,所以我尝试corev1 "k8s.io/apimachinery/pkg/apis/core/v1"
了,但是编译器恐慌
no required module provides package k8s.io/apimachinery/pkg/apis/core/v1; to add it:
go get k8s.io/apimachinery/pkg/apis/core/v1
所以我尝试go mod tidy
了,但我得到了同样的错误。
我也试过"k8s.io/client-go/util/core"
or "k8s.io/client-go/core"
- 它不起作用,但必须有一个一致的规则来找出这些包名称。
我习惯于从 GitHub 存储库 URL 推断包名称,例如 importinggithub.com/kubernetes/client-go
或类似的,但由于某种原因,在 Kubernetes 中,它们似乎没有以这种方式使用。
如何在https://pkg.go.dev的那些 URL 上找到从这些文档推断包导入的规则?