kubernetes:根据自定义资源验证yaml文件

kubernetes:根据自定义资源验证yaml文件,kubernetes,kubernetes-apiserver,kubernetes-custom-resources,Kubernetes,Kubernetes Apiserver,Kubernetes Custom Resources,假设我在我的k8s集群上有一个自定义资源暴露在专有api端点上,例如somecompany/v1 是否有方法验证描述此资源的.yaml清单 是自定义资源提供程序应该公开的功能,还是由CRD的k8s本机支持 让我们看一个简单的例子: apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: name: myresources.stable.example.com spec: group

假设我在我的
k8s
集群上有一个自定义资源暴露在专有api端点上,例如
somecompany/v1

是否有方法验证描述此资源的
.yaml
清单


是自定义资源提供程序应该公开的功能,还是由CRD的
k8s
本机支持

让我们看一个简单的例子:

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: myresources.stable.example.com
spec:
  group: stable.example.com
  versions:
    - name: v1
      served: true
      storage: true
  scope: Namespaced
  names:
    plural: myresources
    singular: myresource
    kind: MyResource
    shortNames:
    - mr
  validation:
    openAPIV3Schema:
      required: ["spec"]
      properties:
        spec:
          required: ["cert","key","domain"]
          properties:
            cert:
              type: "string"
              minimum: 1
            key:
              type: "string"
              minimum: 1
            domain:
              type: "string"
              minimum: 1 

spec.validation
字段描述自定义资源的自定义验证方法。如果某些字段为空,则可以使用验证阻止资源的创建。在本例中,
OpenAPIV3Schema
验证约定用于检查自定义资源中某些字段的类型。我们确保自定义资源的
spec
spec.cert
spec.key
spec.domain
字段确实存在,并且它们是字符串类型。用户还可以将其用作验证架构。您可以在中找到有关使用此字段的限制的更多信息。

让我们看一个简单的示例:

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: myresources.stable.example.com
spec:
  group: stable.example.com
  versions:
    - name: v1
      served: true
      storage: true
  scope: Namespaced
  names:
    plural: myresources
    singular: myresource
    kind: MyResource
    shortNames:
    - mr
  validation:
    openAPIV3Schema:
      required: ["spec"]
      properties:
        spec:
          required: ["cert","key","domain"]
          properties:
            cert:
              type: "string"
              minimum: 1
            key:
              type: "string"
              minimum: 1
            domain:
              type: "string"
              minimum: 1 
spec.validation
字段描述自定义资源的自定义验证方法。如果某些字段为空,则可以使用验证阻止资源的创建。在本例中,
OpenAPIV3Schema
验证约定用于检查自定义资源中某些字段的类型。我们确保自定义资源的
spec
spec.cert
spec.key
spec.domain
字段确实存在,并且它们是字符串类型。用户还可以将其用作验证架构。您可以在中找到有关使用此字段的限制的更多信息