CustomResource

设置结构化模式(Schema)

CustomResource 对象在定制字段中保存结构化的数据,这些字段和内置的字段 apiVersion、kind 和 metadata等
一起存储,不过内置的字段都会被 API 服务器隐式完成合法性检查。
可以设置一个模式Schema,在创建和更新定制对象时,这一模式会被用来对对象内容进行合法性检查。

结构化模式本身是一个 OpenAPI v3.0 验证模式,其中:

  • 为对象根(root)设置一个非空的 type 值(藉由 OpenAPI 中的 type),对每个 object 节点的每个字段(藉由 OpenAPI 中的 properties 或 additionalProperties)以及 array 节点的每个条目(藉由 OpenAPI 中的 items)也要设置非空的 type 值, 除非: 节点包含属性 x-kubernetes-int-or-string: true 节点包含属性 x-kubernetes-preserve-unknown-fields: true
  • 对于 object 的每个字段或 array 中的每个条目,如果其定义中包含 allOf、anyOf、oneOf 或 not,则模式也要指定这些逻辑组合之外的字段或条目(试比较例 1 和例 2)。
  • 在 allOf、anyOf、oneOf 或 not 上下文内不设置 description、type、default、 additionalProperties 或者 nullable。此规则的例外是 x-kubernetes-int-or-string 的两种模式(见下文)。
  • 如果 metadata 被设置,则只允许对 metadata.name 和 metadata.generateName 设置约束。

参考资料

  1. OpenAPI v3.0 验证模式
  2. 使用 CustomResourceDefinition 扩展 Kubernetes API


blog comments powered by Disqus
—  原创作品许可 — 署名-非商业性使用-禁止演绎 3.0 未本地化版本 — CC BY-NC-ND 3.0   —