当前位置: > > > > Kubernetes 客户端代码生成器:代码是否只能存在于本地而不存在于核心生成器运行的存储库中?
Kubernetes 客户端代码生成器:代码是否只能存在于本地而不存在于核心生成器运行的存储库中?
来源:stackoverflow
2024-04-25 11:09:34
0浏览
收藏
在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是Golang学习者,那么本文《Kubernetes 客户端代码生成器:代码是否只能存在于本地而不存在于核心生成器运行的存储库中?》就很适合你!本篇内容主要包括##content_title##,希望对大家的知识积累有所帮助,助力实战开发!
问题内容
我正在尝试使用 k8s.io/code-generator 生成客户端代码。 这些是我遵循的说明:https://itnext.io/how-to-generate-client-codes-for-kubernetes-custom-resource-definitions-crd-b4b9907769ba
我的问题是,我的 go 模块是否需要存在于存储库中,或者我可以简单地在仅存在于我的本地系统而不是任何存储库上的 go 模块上运行generate-groups.sh 脚本吗? p>
我已经尝试运行它,据我了解,需要有一个存储库包含我本地 go 模块的所有内容。我的理解正确吗?
解决方案
您可以在仅存在于本地系统上的 go 模块上运行 的generate-groups.sh。代码生成器和您的模块都不需要位于您的 gopath 中。
验证
将 克隆到新目录中。
$home/somedir ├── code-generator
创建了一个名为 myrepo 的项目,并使用类似于 的内容来模拟它。为了保持简单,在同一目录中执行此操作。
somedir
├── code-generator
└── myorg.com
└── myrepo # mock of sample-controller
├── go.mod
├── go.sum
└── pkg
└── apis
└── myorg
├── register.go
└── v1alpha1
├── doc.go
├── register.go
└── types.go
我的 go.mod 看起来像
module myorg.com/myrepo go 1.14 require k8s.io/apimachinery v0.17.4
运行 generate-group.sh。 -h 标志指定要使用哪个头文件。 -o 标志指定此处必需的输出基数,因为我们不在 gopath 中。
$home/somedir/code-generator/generate-groups.sh all myorg.com/myrepo/pkg/client myorg.com/myrepo/pkg/apis "myorg:v1alpha1" \ -h $home/somedir/code-generator/hack/boilerplate.go.txt \ -o $home/somedir
确认代码在正确位置生成
myrepo
├── go.mod
├── go.sum
└── pkg
├── apis
│ └── myorg
│ ├── register.go
│ └── v1alpha1
│ ├── doc.go
│ ├── register.go
│ ├── types.go
│ └── zz_generated.deepcopy.go
└── client
├── clientset
│ └── versioned
│ ├── clientset.go
│ ├── doc.go
│ ├── fake
│ ├── scheme
│ └── typed
├── informers
│ └── externalversions
│ ├── factory.go
│ ├── generic.go
│ ├── internalinterfaces
│ └── myorg
└── listers
└── myorg
└── v1alpha1
来源
- go 模块支持
- go 模块的文档或支持
今天关于《Kubernetes 客户端代码生成器:代码是否只能存在于本地而不存在于核心生成器运行的存储库中?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注米云公众号!
