CustomResourceDefinition
apiVersion: apiextensions.k8s.io/v1
import "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
CustomResourceDefinition
CustomResourceDefinition 表示应该在 API 服务器上公开的资源。其名称必须采用 <.spec.name>.<.spec.group> 格式。
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata (ObjectMeta)
标准对象的元数据 更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (CustomResourceDefinitionSpec), 必需
spec 描述了用户希望资源如何显示
status (CustomResourceDefinitionStatus)
status 指示 CustomResourceDefinition 的实际状态
CustomResourceDefinitionSpec
CustomResourceDefinitionSpec 描述了用户希望其资源如何显示
group (字符串), 必需
group 是已定义自定义资源的 API 组。自定义资源在
/apis/\<group>/...
下提供。必须与 CustomResourceDefinition 的名称匹配(格式为\<names.plural>.\<group>
)。names (CustomResourceDefinitionNames), 必需
names 指定自定义资源的资源和种类名称。
CustomResourceDefinitionNames 指示用于提供此 CustomResourceDefinition 的名称
names.kind (字符串), 必需
kind 是资源的序列化种类。它通常为驼峰式大小写且为单数形式。自定义资源实例将在 API 调用中使用此值作为
kind
属性。names.plural (字符串), 必需
plural 是要提供的资源的复数名称。自定义资源在
/apis/\<group>/\<version>/.../\<plural>
下提供。必须与 CustomResourceDefinition 的名称匹配(格式为\<names.plural>.\<group>
)。必须全部为小写字母。names.categories ([]字符串)
categories 是此自定义资源所属的分组资源列表(例如“all”)。这将发布在 API 发现文档中,并由客户端用于支持诸如
kubectl get all
之类的调用。names.listKind (字符串)
listKind 是此资源的列表的序列化种类。默认为“
kind
List”。names.shortNames ([]字符串)
shortNames 是资源的简称,在 API 发现文档中公开,并由客户端用于支持诸如
kubectl get \<shortname>
之类的调用。必须全部为小写字母。names.singular (字符串)
singular 是资源的单数名称。必须全部为小写字母。默认为小写的
kind
。
scope (字符串), 必需
scope 指示定义的自定义资源是集群范围还是命名空间范围。允许的值为
Cluster
和Namespaced
。versions ([]CustomResourceDefinitionVersion), 必需
versions 是已定义自定义资源的所有 API 版本的列表。版本名称用于计算在 API 发现中列出已提供版本的顺序。如果版本字符串是“类似 kube 的”,则它将在非“类似 kube 的”版本字符串上方排序,后者按字典顺序排序。“类似 kube 的”版本以“v”开头,然后是数字(主版本),然后是可选的字符串“alpha”或“beta”和另一个数字(次版本)。这些版本首先按 GA > beta > alpha(其中 GA 是没有后缀(如 beta 或 alpha)的版本)排序,然后按主版本比较,然后按次版本比较。示例排序的版本列表:v10、v2、v1、v11beta2、v10beta3、v3beta1、v12alpha1、v11alpha2、foo1、foo10。
CustomResourceDefinitionVersion 描述 CRD 的版本。
versions.name (字符串), 必需
name 是版本名称,例如“v1”、“v2beta1”等。如果
served
为 true,则自定义资源将在/apis/\<group>/\<version>/...
下提供此版本。versions.served (布尔值), 必需
served 是一个标志,用于启用/禁用通过 REST API 提供此版本
versions.storage (布尔值), 必需
storage 指示在将自定义资源持久保存到存储时应使用此版本。必须只有一个版本的 storage=true。
versions.additionalPrinterColumns ([]CustomResourceColumnDefinition)
additionalPrinterColumns 指定在表输出中返回的其他列。有关详细信息,请参阅 https://kubernetes.ac.cn/docs/reference/using-api/api-concepts/#receiving-resources-as-tables。如果未指定任何列,则使用显示自定义资源生存期的单个列。
CustomResourceColumnDefinition 指定用于服务器端打印的列。
versions.additionalPrinterColumns.jsonPath (字符串), 必需
jsonPath 是一个简单的 JSON 路径(即使用数组表示法),它针对每个自定义资源进行评估以生成此列的值。
versions.additionalPrinterColumns.name (字符串), 必需
name 是列的人类可读名称。
versions.additionalPrinterColumns.type (字符串), 必需
type 是此列的 OpenAPI 类型定义。有关详细信息,请参阅 https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types。
versions.additionalPrinterColumns.description (字符串)
description 是此列的人类可读描述。
versions.additionalPrinterColumns.format (字符串)
format 是此列的可选 OpenAPI 类型定义。“name”格式应用于主标识符列,以帮助客户端识别该列是资源名称。有关详细信息,请参阅 https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types。
versions.additionalPrinterColumns.priority (int32)
priority 是一个整数,定义了此列相对于其他列的相对重要性。数字越小,优先级越高。在有限空间情况下可能省略的列应赋予大于 0 的优先级。
versions.deprecated (布尔值)
deprecated 指示此版本的自定义资源 API 已弃用。设置为 true 时,对此版本的 API 请求会在服务器响应中收到警告标头。默认为 false。
versions.deprecationWarning (字符串)
deprecationWarning 覆盖返回给 API 客户端的默认警告。只能在
deprecated
为 true 时设置。默认警告指示此版本已弃用,并建议使用稳定性相同或更高的最新服务版本(如果存在)。versions.schema (CustomResourceValidation)
schema 描述了用于验证、修剪和默认此版本的自定义资源的架构。
CustomResourceValidation 是 CustomResources 的验证方法列表。
versions.schema.openAPIV3Schema (JSONSchemaProps)
openAPIV3Schema 是用于验证和修剪的 OpenAPI v3 架构。
versions.subresources (CustomResourceSubresources)
subresources 指定此版本的已定义自定义资源具有的子资源。
CustomResourceSubresources 定义 CustomResources 的状态和规模子资源。
versions.subresources.scale (CustomResourceSubresourceScale)
scale 指示自定义资源应提供一个
/scale
子资源,该子资源返回autoscaling/v1
Scale 对象。CustomResourceSubresourceScale 定义如何为 CustomResources 提供规模子资源。
versions.subresources.scale.specReplicasPath (字符串), 必需
specReplicasPath 定义自定义资源中对应于 Scale
spec.replicas
的 JSON 路径。仅允许不带数组表示法的 JSON 路径。必须是.spec
下的 JSON 路径。如果自定义资源中给定路径下没有值,则/scale
子资源将在 GET 上返回错误。versions.subresources.scale.statusReplicasPath (字符串), 必需
statusReplicasPath 定义了自定义资源中与 Scale
status.replicas
对应的 JSON 路径。只允许不带数组符号的 JSON 路径。必须是.status
下的 JSON 路径。如果自定义资源中给定路径下没有值,则/scale
子资源中的status.replicas
值将默认为 0。versions.subresources.scale.labelSelectorPath (string)
labelSelectorPath 定义了自定义资源中与 Scale
status.selector
对应的 JSON 路径。只允许不带数组符号的 JSON 路径。必须是.status
或.spec
下的 JSON 路径。必须设置为与 HorizontalPodAutoscaler 一起使用。此 JSON 路径指向的字段必须是字符串字段(而不是复杂的 selector 结构),其中包含字符串形式的序列化标签选择器。更多信息:https://kubernetes.ac.cn/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource 如果自定义资源中给定路径下没有值,则/scale
子资源中的status.selector
值将默认为空字符串。
versions.subresources.status (CustomResourceSubresourceStatus)
status 指示自定义资源应提供
/status
子资源。启用后:1. 对自定义资源主端点的请求会忽略对对象的status
段的更改。 2. 对自定义资源/status
子资源的请求会忽略对对象status
段以外的任何内容的更改。CustomResourceSubresourceStatus 定义了如何为 CustomResources 提供 status 子资源。状态由 CustomResource 中的
.status
JSON 路径表示。设置后,* 为自定义资源公开 /status 子资源 * 对 /status 子资源的 PUT 请求采用自定义资源对象,并忽略对 status 段以外的任何内容的更改 * 对自定义资源的 PUT/POST/PATCH 请求会忽略对 status 段的更改
conversion (CustomResourceConversion)
conversion 定义 CRD 的转换设置。
CustomResourceConversion 描述了如何转换不同版本的 CR。
conversion.strategy (string), 必需
strategy 指定如何在版本之间转换自定义资源。允许的值为:-
"None"
:转换器仅更改 apiVersion,不会触及自定义资源中的任何其他字段。 -"Webhook"
:API 服务器将调用外部 webhook 来执行转换。此选项需要其他信息。这要求 spec.preserveUnknownFields 为 false,并且 spec.conversion.webhook 已设置。conversion.webhook (WebhookConversion)
webhook 描述了如何调用转换 webhook。当
strategy
设置为"Webhook"
时必需。WebhookConversion 描述了如何调用转换 webhook
conversion.webhook.conversionReviewVersions ([]string), 必需
conversionReviewVersions 是 Webhook 期望的
ConversionReview
版本的有序列表。API 服务器将使用它支持的列表中的第一个版本。如果 API 服务器不支持此列表中指定的任何版本,则自定义资源的转换将失败。如果持久化的 Webhook 配置指定了允许的版本,并且不包括 API 服务器已知的任何版本,则对 webhook 的调用将失败。conversion.webhook.clientConfig (WebhookClientConfig)
clientConfig 是有关如何在 strategy 为
Webhook
时调用 webhook 的说明。WebhookClientConfig 包含与 webhook 建立 TLS 连接的信息。
conversion.webhook.clientConfig.caBundle ([]byte)
caBundle 是一个 PEM 编码的 CA 包,将用于验证 webhook 的服务器证书。如果未指定,则使用 apiserver 上的系统信任根。
conversion.webhook.clientConfig.service (ServiceReference)
service 是对此 webhook 的服务的引用。必须指定 service 或 url。
如果 webhook 在集群中运行,则应使用
service
。ServiceReference 保存对 Service.legacy.k8s.io 的引用
conversion.webhook.clientConfig.service.name (string), 必需
name 是服务的名称。必需
conversion.webhook.clientConfig.service.namespace (string), 必需
namespace 是服务的命名空间。必需
conversion.webhook.clientConfig.service.path (string)
path 是将联系 webhook 的可选 URL 路径。
conversion.webhook.clientConfig.service.port (int32)
port 是将联系 webhook 的可选服务端口。
port
应该是有效的端口号(1-65535,包括)。默认为 443 以实现向后兼容性。
conversion.webhook.clientConfig.url (string)
url 以标准 URL 格式 (
scheme://host:port/path
) 提供 webhook 的位置。必须准确指定url
或service
中的一个。host
不应引用在集群中运行的服务;请改用service
字段。主机可以通过某些 apiserver 中的外部 DNS 解析(例如,kube-apiserver
无法解析集群内 DNS,因为这会违反分层原则)。host
也可能是 IP 地址。请注意,使用
localhost
或127.0.0.1
作为host
是有风险的,除非您非常小心地在运行 apiserver 的所有主机上运行此 webhook,这些主机可能需要调用此 webhook。此类安装可能不可移植,即,不容易在新集群中启动。方案必须是“https”;URL 必须以“https://”开头。
路径是可选的,如果存在,则可以是 URL 中允许的任何字符串。您可以使用该路径将任意字符串传递给 webhook,例如,集群标识符。
不允许尝试使用用户或基本身份验证,例如“user:password@”。片段(“#...”)和查询参数(“?...”)也不允许。
preserveUnknownFields (boolean)
preserveUnknownFields 指示在持久化到存储时,应保留 OpenAPI 模式中未指定的那些对象字段。apiVersion、kind、metadata 和 metadata 中的已知字段始终保留。不推荐使用此字段,而建议在
spec.versions[*].schema.openAPIV3Schema
中将x-preserve-unknown-fields
设置为 true。有关详细信息,请参阅 https://kubernetes.ac.cn/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#field-pruning。
JSONSchemaProps
JSONSchemaProps 是遵循规范草案 4 (https://json-schema.fullstack.org.cn/) 的 JSON 模式。
$ref (string)
$schema (string)
additionalItems (JSONSchemaPropsOrBool)
additionalProperties (JSONSchemaPropsOrBool)
allOf ([]JSONSchemaProps)
anyOf ([]JSONSchemaProps)
default (JSON)
default 是未定义对象字段的默认值。默认值是 CustomResourceDefaulting 功能门控下的测试功能。默认值需要将 spec.preserveUnknownFields 设置为 false。
JSON 表示任何有效的 JSON 值。支持以下类型:bool、int64、float64、string、[]interface{}、map[string]interface{} 和 nil。
definitions (map[string]JSONSchemaProps)
dependencies (map[string]JSONSchemaPropsOrStringArray)
description (string)
enum ([]JSON)
JSON 表示任何有效的 JSON 值。支持以下类型:bool、int64、float64、string、[]interface{}、map[string]interface{} 和 nil。
example (JSON)
JSON 表示任何有效的 JSON 值。支持以下类型:bool、int64、float64、string、[]interface{}、map[string]interface{} 和 nil。
exclusiveMaximum (boolean)
exclusiveMinimum (boolean)
externalDocs (ExternalDocumentation)
ExternalDocumentation 允许引用外部资源以获取扩展文档。
externalDocs.description (string)
externalDocs.url (string)
format (string)
format 是 OpenAPI v3 格式字符串。未知格式将被忽略。将验证以下格式
- bsonobjectid:bson 对象 ID,即 24 个字符的十六进制字符串 - uri:由 Golang net/url.ParseRequestURI 解析的 URI - email:由 Golang net/mail.ParseAddress 解析的电子邮件地址 - hostname:Internet 主机名的有效表示形式,如 RFC 1034 第 3.1 节 [RFC1034] 中所定义。 - ipv4:由 Golang net.ParseIP 解析的 IPv4 IP - ipv6:由 Golang net.ParseIP 解析的 IPv6 IP - cidr:由 Golang net.ParseCIDR 解析的 CIDR - mac:由 Golang net.ParseMAC 解析的 MAC 地址 - uuid:允许大写的 UUID,由正则表达式 (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ 定义 - uuid3:允许大写的 UUID3,由正则表达式 (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ 定义 - uuid4:允许大写的 UUID4,由正则表达式 (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ 定义 - uuid5:允许大写的 UUID5,由正则表达式 (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ 定义 - isbn:ISBN10 或 ISBN13 数字字符串,如“0321751043”或“978-0321751041” - isbn10:ISBN10 数字字符串,如“0321751043” - isbn13:ISBN13 数字字符串,如“978-0321751041” - creditcard:信用卡号,由正则表达式 ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ 定义,其中混合了任何非数字字符 - ssn:遵循正则表达式 ^\d{3}[- ]?\d{2}[- ]?\d{4}$ 的美国社会安全号码 - hexcolor:十六进制颜色代码,如“#FFFFFF: 遵循正则表达式 ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor:RGB 颜色代码,如 rgb,如“rgb(255,255,2559” - byte:base64 编码的二进制数据 - password:任何类型的字符串 - date:日期字符串,如“2006-01-02”,如 RFC3339 中的 full-date 所定义 - duration:持续时间字符串,如“22 ns”,由 Golang time.ParseDuration 解析或与 Scala 持续时间格式兼容 - datetime:日期时间字符串,如“2014-12-15T19:30:20.000Z”,如 RFC3339 中的 date-time 所定义。
id (string)
items (JSONSchemaPropsOrArray)
JSONSchemaPropsOrArray 表示可以是 JSONSchemaProps 或 JSONSchemaProps 数组的值。主要用于序列化目的。
maxItems (int64)
maxLength (int64)
maxProperties (int64)
maximum (double)
minItems (int64)
minLength (int64)
minProperties (int64)
minimum (double)
multipleOf (double)
not (JSONSchemaProps)
nullable (boolean)
oneOf ([]JSONSchemaProps)
pattern (string)
patternProperties (map[string]JSONSchemaProps)
properties (map[string]JSONSchemaProps)
required ([]string)
title (string)
type (string)
uniqueItems (boolean)
x-kubernetes-embedded-resource (boolean)
x-kubernetes-embedded-resource 定义该值为嵌入式 Kubernetes runtime.Object,带有 TypeMeta 和 ObjectMeta。类型必须是对象。允许进一步限制嵌入式对象。kind、apiVersion 和 metadata 会自动验证。x-kubernetes-preserve-unknown-fields 允许为 true,但如果对象已完全指定(直到 kind、apiVersion、metadata),则不必如此。
x-kubernetes-int-or-string (boolean)
x-kubernetes-int-or-string 指定此值为整数或字符串。如果这是 true,则允许使用空类型,并且如果遵循以下模式之一,则允许将 type 作为 anyOf 的子级
- anyOf
- type: integer
- type: string
- allOf
- anyOf
- type: integer
- type: string
- ... 零个或多个
- anyOf
- anyOf
x-kubernetes-list-map-keys ([]string)
x-kubernetes-list-map-keys 通过指定用作映射索引的键,使用 x-kubernetes-list-type
map
来注释数组。此标记必须仅用于“x-kubernetes-list-type”扩展名设置为“map”的列表。此外,为此属性指定的值必须是子结构的标量类型字段(不支持嵌套)。
必须指定必需的属性或具有默认值的属性,以确保所有列表项都存在这些属性。
x-kubernetes-list-type(字符串)
x-kubernetes-list-type 注释数组以进一步描述其拓扑。此扩展名只能在列表上使用,并且可能有 3 个可能的值
atomic
:该列表被视为单个实体,如标量。原子列表将在更新时被完全替换。此扩展名可用于任何类型的列表(结构、标量等)。set
:集合是不能有多个具有相同值的项的列表。每个值必须是标量、具有 x-kubernetes-map-typeatomic
的对象或具有 x-kubernetes-list-typeatomic
的数组。map
:这些列表类似于映射,因为它们的元素具有用于标识它们的非索引键。合并后顺序将保留。map 标记只能用于元素类型为对象的列表。对于数组,默认为 atomic。
x-kubernetes-map-type(字符串)
x-kubernetes-map-type 注释对象以进一步描述其拓扑。此扩展名只能在类型为对象时使用,并且可能有 2 个可能的值
granular
:这些映射是实际的映射(键值对),并且每个字段彼此独立(它们可以由不同的参与者分别操作)。这是所有映射的默认行为。atomic
:该列表被视为单个实体,如标量。原子映射将在更新时被完全替换。
x-kubernetes-preserve-unknown-fields(布尔值)
x-kubernetes-preserve-unknown-fields 会阻止 API 服务器解码步骤修剪验证架构中未指定的字段。这会递归地影响字段,但如果在架构中指定了嵌套属性或 additionalProperties,则会切换回正常的修剪行为。这可以是 true 或未定义。禁止使用 False。
x-kubernetes-validations ([]ValidationRule)
补丁策略:在键
rule
上合并映射:合并期间将保留键规则上的唯一值
x-kubernetes-validations 描述了用 CEL 表达式语言编写的验证规则列表。此字段处于 alpha 级别。使用此字段需要启用功能门
CustomResourceValidationExpressions
。ValidationRule 描述了用 CEL 表达式语言编写的验证规则。
x-kubernetes-validations.rule(字符串),必需
规则表示将由 CEL 评估的表达式。参考:https://github.com/google/cel-spec 规则的范围限定为架构中 x-kubernetes-validations 扩展的位置。CEL 表达式中的
self
变量绑定到作用域值。示例:- 规则作用域限定为具有状态子资源的资源的根目录:{"rule": "self.status.actual <= self.spec.maxDesired"}如果规则作用域限定为具有属性的对象,则可以通过
self.field
选择对象的 accessible 属性,并且可以通过has(self.field)
检查字段是否存在。空值字段在 CEL 表达式中被视为不存在的字段。如果规则作用域限定为具有 additionalProperties 的对象(即映射),则可以通过self[mapKey]
访问映射的值,可以通过mapKey in self
检查映射包含,并且可以通过 CEL 宏和函数(例如self.all(...)
)访问映射的所有条目。如果规则作用域限定为数组,则可以通过self[i]
以及宏和函数访问数组的元素。如果规则作用域限定为标量,则self
绑定到标量值。示例:- 规则作用域限定为对象映射:{"rule": "self.components['Widget'].priority < 10"} - 规则作用域限定为整数列表:{"rule": "self.values.all(value, value >= 0 && value < 100)"} - 规则作用域限定为字符串值:{"rule": "self.startsWith('kube')"}始终可以从对象的根目录和任何 x-kubernetes-embedded-resource 注释的对象访问
apiVersion
、kind
、metadata.name
和metadata.generateName
。无法访问其他元数据属性。通过 x-kubernetes-preserve-unknown-fields 保留在自定义资源中的未知数据在 CEL 表达式中不可访问。这包括:- 由具有 x-kubernetes-preserve-unknown-fields 的对象架构保留的未知字段值。- 属性架构为“未知类型”的对象属性。“未知类型”递归定义为
- 没有类型且 x-kubernetes-preserve-unknown-fields 设置为 true 的架构
- 项架构为“未知类型”的数组
- additionalProperties 架构为“未知类型”的对象
只能访问格式为
[a-zA-Z_.-/][a-zA-Z0-9_.-/]*
的属性名称。在表达式中访问时,可访问的属性名称将根据以下规则进行转义:- '_' 转义为 '下划线' - '.' 转义为 '点' - '-' 转义为 '破折号' - '/' 转义为 '斜杠' - 与 CEL 保留关键字完全匹配的属性名称转义为 '{keyword}__'。关键字包括:"true"、"false"、"null"、"in"、"as"、"break"、"const"、"continue"、"else"、"for"、"function"、"if"、"import"、"let"、"loop"、"package"、"namespace"、"return"。示例- 访问名为“namespace”的属性的规则:{"rule": "self.namespace > 0"}
- 访问名为“x-prop”的属性的规则:{"rule": "self.x__破折号__prop > 0"}
- 访问名为“redact__d”的属性的规则:{"rule": "self.redact__下划线__d > 0"}
x-kubernetes-list-type 为“set”或“map”的数组上的相等性忽略元素顺序,即 [1, 2] == [2, 1]。x-kubernetes-list-type 上的串联使用列表类型的语义
- “set”:
X + Y
执行并集,其中X
中所有元素的数组位置都保留,并且Y
中不相交的元素将附加,并保留其部分顺序。 - “map”:
X + Y
执行合并,其中X
中所有键的数组位置都保留,但当X
和Y
的键集相交时,值将被Y
中的值覆盖。Y
中具有不相交键的元素将附加,并保留其部分顺序。
x-kubernetes-validations.fieldPath(字符串)
fieldPath 表示验证失败时返回的字段路径。它必须是相对于架构中此 x-kubernetes-validations 扩展位置的作用域的 JSON 路径(即使用数组表示法),并且引用现有字段。例如,当验证检查映射
testMap
下的特定属性foo
时,fieldPath 可以设置为.testMap.foo
如果验证检查两个列表必须具有唯一属性,则 fieldPath 可以设置为任一列表:例如.testList
它不支持列表数字索引。它目前支持子操作以引用现有字段。有关更多信息,请参阅Kubernetes 中的 JSONPath 支持。不支持数组的数字索引。对于包含特殊字符的字段名称,请使用['specialName']
来引用该字段名称。例如,对于出现在列表testList
中的属性foo.34$
,fieldPath 可以设置为.testList['foo.34$']
x-kubernetes-validations.message(字符串)
消息表示验证失败时显示的消息。如果规则包含换行符,则消息是必需的。消息不得包含换行符。如果未设置,则消息为“failed rule: {Rule}”。例如“必须是主机与 spec.host 匹配的 URL”。
x-kubernetes-validations.messageExpression(字符串)
MessageExpression 声明一个 CEL 表达式,该表达式计算结果为在此规则失败时返回的验证失败消息。由于 messageExpression 用作失败消息,因此它必须计算结果为字符串。如果 message 和 messageExpression 都出现在规则上,则如果验证失败,将使用 messageExpression。如果 messageExpression 导致运行时错误,则会记录运行时错误,并且会生成验证失败消息,就好像未设置 messageExpression 字段一样。如果 messageExpression 计算结果为空字符串、仅包含空格的字符串或包含换行符的字符串,则也会生成验证失败消息,就好像未设置 messageExpression 字段一样,并且会记录 messageExpression 生成空字符串/仅包含空格的字符串/包含换行符的字符串这一事实。messageExpression 可以访问与规则相同的所有变量;唯一的区别是返回类型。示例:“x 必须小于最大值 (”+string(self.max)+“)”。
x-kubernetes-validations.reason(字符串)
reason 提供了一个机器可读的验证失败原因,当请求未能通过此验证规则时,该原因将返回给调用者。返回给调用者的 HTTP 状态代码将与第一个失败的验证规则的原因相匹配。当前支持的原因包括:“FieldValueInvalid”、“FieldValueForbidden”、“FieldValueRequired”、“FieldValueDuplicate”。如果未设置,则默认为使用“FieldValueInvalid”。将来添加的所有原因在读取此值时都必须被客户端接受,并且未知原因应被视为 FieldValueInvalid。
CustomResourceDefinitionStatus
CustomResourceDefinitionStatus 指示 CustomResourceDefinition 的状态
acceptedNames (CustomResourceDefinitionNames)
acceptedNames 是实际用于服务发现的名称。它们可能与规范中的名称不同。
CustomResourceDefinitionNames 指示用于提供此 CustomResourceDefinition 的名称
acceptedNames.kind(字符串),必需
kind 是资源的序列化种类。它通常为驼峰式大小写且为单数形式。自定义资源实例将在 API 调用中使用此值作为
kind
属性。acceptedNames.plural(字符串),必需
plural 是要提供的资源的复数名称。自定义资源在
/apis/\<group>/\<version>/.../\<plural>
下提供。必须与 CustomResourceDefinition 的名称匹配(格式为\<names.plural>.\<group>
)。必须全部为小写字母。acceptedNames.categories ([]string)
categories 是此自定义资源所属的分组资源列表(例如“all”)。这将发布在 API 发现文档中,并由客户端用于支持诸如
kubectl get all
之类的调用。acceptedNames.listKind(字符串)
listKind 是此资源的列表的序列化种类。默认为“
kind
List”。acceptedNames.shortNames ([]string)
shortNames 是资源的简称,在 API 发现文档中公开,并由客户端用于支持诸如
kubectl get \<shortname>
之类的调用。必须全部为小写字母。acceptedNames.singular(字符串)
singular 是资源的单数名称。必须全部为小写字母。默认为小写的
kind
。
conditions ([]CustomResourceDefinitionCondition)
映射:合并期间将保留键类型上的唯一值
条件指示 CustomResourceDefinition 特定方面的状态
CustomResourceDefinitionCondition 包含此 pod 当前条件的详细信息。
conditions.status(字符串),必需
status 是条件的状态。可以是 True、False、Unknown。
conditions.type(字符串),必需
type 是条件的类型。类型包括 Established、NamesAccepted 和 Terminating。
conditions.lastTransitionTime (Time)
lastTransitionTime 上次条件从一种状态转换到另一种状态的时间。
Time 是 time.Time 的包装器,它支持正确地编组为 YAML 和 JSON。为 time 包提供的许多工厂方法都提供了包装器。
conditions.message(字符串)
message 是一条人类可读的消息,指示有关上次转换的详细信息。
conditions.reason(字符串)
reason 是条件上次转换的唯一、单字、驼峰式原因。
storedVersions ([]string)
storedVersions 列出了所有曾经持久化的 CustomResources 版本。跟踪这些版本允许为 etcd 中存储的版本提供迁移路径。该字段是可变的,因此迁移控制器可以完成到另一个版本的迁移(确保存储中没有旧对象),然后从此列表中删除其余版本。当版本存在于此列表中时,不能从
spec.versions
中删除它们。
CustomResourceDefinitionList
CustomResourceDefinitionList 是 CustomResourceDefinition 对象的列表。
items ([]CustomResourceDefinition),必需
items 列出各个 CustomResourceDefinition 对象
apiVersion (string)
APIVersion 定义了此对象表示形式的版本化模式。服务器应将识别的模式转换为最新的内部值,并且可能会拒绝无法识别的值。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind (string)
Kind 是一个字符串值,表示此对象表示的 REST 资源。服务器可以从客户端提交请求的端点推断出这一点。无法更新。采用驼峰式大小写。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata (ListMeta)
标准对象的元数据 更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
操作
get
读取指定的 CustomResourceDefinition
HTTP 请求
GET /apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}
参数
name (路径参数): string,必需
CustomResourceDefinition 的名称
pretty (查询参数): string
响应
200 (CustomResourceDefinition): 成功
401: 未授权
get
读取指定 CustomResourceDefinition 的状态
HTTP 请求
GET /apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status
参数
name (路径参数): string,必需
CustomResourceDefinition 的名称
pretty (查询参数): string
响应
200 (CustomResourceDefinition): 成功
401: 未授权
list
列出或监视 CustomResourceDefinition 类型的对象
HTTP 请求
GET /apis/apiextensions.k8s.io/v1/customresourcedefinitions
参数
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (CustomResourceDefinitionList): 成功
401: 未授权
create
创建一个 CustomResourceDefinition
HTTP 请求
POST /apis/apiextensions.k8s.io/v1/customresourcedefinitions
参数
body: CustomResourceDefinition,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (CustomResourceDefinition): 成功
201 (CustomResourceDefinition): 已创建
202 (CustomResourceDefinition): 已接受
401: 未授权
update
替换指定的 CustomResourceDefinition
HTTP 请求
PUT /apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}
参数
name (路径参数): string,必需
CustomResourceDefinition 的名称
body: CustomResourceDefinition,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (CustomResourceDefinition): 成功
201 (CustomResourceDefinition): 已创建
401: 未授权
update
替换指定 CustomResourceDefinition 的状态
HTTP 请求
PUT /apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status
参数
name (路径参数): string,必需
CustomResourceDefinition 的名称
body: CustomResourceDefinition,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (CustomResourceDefinition): 成功
201 (CustomResourceDefinition): 已创建
401: 未授权
patch
部分更新指定的 CustomResourceDefinition
HTTP 请求
PATCH /apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}
参数
name (路径参数): string,必需
CustomResourceDefinition 的名称
body: Patch,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (CustomResourceDefinition): 成功
201 (CustomResourceDefinition): 已创建
401: 未授权
patch
部分更新指定 CustomResourceDefinition 的状态
HTTP 请求
PATCH /apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status
参数
name (路径参数): string,必需
CustomResourceDefinition 的名称
body: Patch,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
force (查询参数): boolean
pretty (查询参数): string
响应
200 (CustomResourceDefinition): 成功
201 (CustomResourceDefinition): 已创建
401: 未授权
delete
删除 CustomResourceDefinition
HTTP 请求
DELETE /apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}
参数
name (路径参数): string,必需
CustomResourceDefinition 的名称
body: DeleteOptions
dryRun (查询参数): string
gracePeriodSeconds (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
响应
200 (Status): 成功
202 (Status): 已接受
401: 未授权
deletecollection
删除 CustomResourceDefinition 集合
HTTP 请求
DELETE /apis/apiextensions.k8s.io/v1/customresourcedefinitions
参数
body: DeleteOptions
continue (查询参数): string
dryRun (查询参数): string
fieldSelector (查询参数): string
gracePeriodSeconds (查询参数): integer
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
sendInitialEvents (查询参数): boolean
timeoutSeconds (查询参数): integer
响应
200 (Status): 成功
401: 未授权
本页面自动生成。
如果您打算报告此页面的问题,请在问题描述中提及该页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。