如何通过kubectl命令获取带示例的Kubernetes CRD JSON Schema?
获取带示例的CRD JSON格式Schema
可以通过以下kubectl命令直接获取CRD的JSON格式定义,其中包含完整Schema及内置示例(若CRD定义中存在):
基础命令(完整CRD JSON输出)
kubectl get crd secretproviderclasses.secrets-store.csi.x-k8s.io -o json
该命令返回的JSON中,spec.versions[].schema.openAPIV3Schema字段对应CRD的Schema结构,若CRD定义时添加了x-kubernetes-example扩展字段,示例内容会嵌套在Schema的对应位置。
提取Schema与示例(格式化输出)
如果只想查看Schema和示例部分,可结合JSON格式化工具简化输出:
用Python内置工具格式化
kubectl get crd secretproviderclasses.secrets-store.csi.x-k8s.io -o jsonpath='{.spec.versions[*].schema.openAPIV3Schema}' | python -m json.tool
用jq过滤更精准(需提前安装jq)
kubectl get crd secretproviderclasses.secrets-store.csi.x-k8s.io -o json | jq '.spec.versions[] | {schema: .schema.openAPIV3Schema, example: .schema.openAPIV3Schema["x-kubernetes-example"]}'
注意:并非所有CRD都会内置示例,只有当CRD的OpenAPI Schema定义中包含x-kubernetes-example扩展注释时,才能通过上述命令提取到示例内容。
内容的提问来源于stack exchange,提问作者paltaa
相关产品推荐
相关产品推荐

