参考现有的kubernetes类型生成kubernetes客户端代码

时间:2019-04-11 19:02:09

标签: kubernetes client-go

我正在为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

,其余代码生成失败。

1 个答案:

答案 0 :(得分:0)

我在尝试复制https://blog.openshift.com/kubernetes-deep-dive-code-generation-customresources/中的步骤时遇到了这个问题,发现我需要更改目录以避免此问题。

如果我位于Go工作区的根目录,例如$GOPATH/src,我收到了您收到的错误消息。但是如果我更改为项目目录,例如$GOPATH/src/github.com/openshift-evangelist/crd-code-generation,问题消失了。