从CustomResourceDefinition生成k8s java模型代码
文章目录
目标
已经有了go版本的模型定义,需要生成java版本 看了下官方介绍的文档 generate-model-from-third-party-resources.md 感觉不会太难,照着尝试一下。
开始干活
首先看到要k8s 1.15以上的版本,我只有1.14,只好使用minikube重新装了1.16的版本,具体安装不细说了。
然后把CRD apply进集群里面,注意CRD得带有openAPIV3Schema的validation(我的是kubebuilder生成的)
执行这个命令生成swagger json文件
|
|
然后执行这个命令生成代码
|
|
这里我添加了dockerhub.azk8s.cn镜像加速,这个镜像应该是别人构建好的,如果想自己构建,要用首页介绍的项目kubernetes-client/gen ,里面还会用到maven下载也是比较慢的,可以加一下mirrors 我写了个简单的Dockerfile
|
|
把settings.xml放到同一个目录,内容大概这样,可以加更多一些mirror
|
|
执行完成后,生成的文件在/tmp/java里面,找一下自己要的文件在哪里。???文件呢?为什么只有个*List文件??
试了下文档给出的CRD文件,确实可以生成,但为什么我的不行?
试了执行一下explain, 发现字段没有显示出来。
|
|
最终使用排除法的方式,对比例子和我crd的差异,找出了这里的差异
|
|
修改后使用 kubectl explain 可以正确识别字段
文章作者 fatkun
上次更新 2019-10-26