是否存在可从Kubernetes CRD生成有效自定义资源对象的工具?
从CRD生成示例自定义资源的可用工具列表
- crd2sample
这是专门用于从CRD定义生成符合schema要求的示例CR文件的轻量工具,支持自动填充默认值、枚举值占位符,必填字段会强制保留,非必填字段可以通过参数控制是否生成。使用时直接传入本地CRD文件路径即可输出示例YAML,你可以直接在生成的文件基础上修改自定义字段值即可用于测试。 - kubectl-example 插件
作为kubectl的第三方插件安装完成后,执行kubectl example <crd全称>即可直接拉取集群中已部署的CRD对应的示例CR,也支持传入本地CRD文件生成示例,支持自定义是否省略可选字段、是否生成字段注释说明,适配大部分K8s CRD版本规范。 - OpenAPI Generator
如果你的CRD导出了完整的OpenAPI Schema,你可以使用该工具的K8s CRD生成配置,直接输出符合规范的示例YAML资源,同时还支持生成字段说明文档,适合需要同步生成测试用例和字段说明的场景。 - Kubebuilder 本地生成方案
如果你本地有Go环境,也可以把CRD对应的Go结构体放到Kubebuilder项目的api路径下,执行make manifests之后就会自动在config/samples目录下生成对应的示例CR,和你提到的Kubebuilder创建API时的输出完全一致,适合已经习惯Kubebuilder生成规则的场景。
如果你的CRD已经部署到测试集群中,也可以先执行kubectl create <crd-kind> <资源名> --dry-run=client -o yaml生成基础的元数据框架,再配合上述工具补全业务字段,效率更高。
内容的提问来源于stack exchange,提问作者Yuhui Liu
相关产品推荐
相关产品推荐

