我正在为kubernetes编写CRD,并且无法使代码生成器正常工作。特别是,对于引用了batch.JobTemplateSpec
的特定结构,生成深度复制功能失败。注释掉该行可解决我的问题。
我已经尝试了各种导入,并在JobTemplateSpec
中注册了register.go
,但这似乎不是解决方案。
特别是,该结构看起来像这样:
type TestSpec struct {
Selector *metav1.LabelSelector `json:"selector,omitempty"`
//Commenting out the JobTemplate fixes my problem
JobTemplate batch.JobTemplateSpec `json:"jobTemplate,omitempty"`
}
我最终得到的是来自代码生成脚本的错误:
Generating client codes...
Generating deepcopy funcs
F0411 18:54:09.409084 251 deepcopy.go:885] Hit an unsupported type invalid type for invalid type, from test/pkg/apis/test/v1.TestSpec
,其余代码生成失败。
答案 0 :(得分:0)
我在尝试复制https://blog.openshift.com/kubernetes-deep-dive-code-generation-customresources/中的步骤时遇到了这个问题,发现我需要更改目录以避免此问题。
如果我位于Go工作区的根目录,例如$GOPATH/src
,我收到了您收到的错误消息。但是如果我更改为项目目录,例如$GOPATH/src/github.com/openshift-evangelist/crd-code-generation
,问题消失了。