第 3 章 CustomResourceDefinition [apiextensions.k8s.io/v1]
- 描述
- CustomResourceDefinition 代表应在 API 服务器上公开的资源。其名称必须采用 <.spec.name>.<.spec.group> 格式。
- 类型
-
object
- 必填
-
spec
-
3.1. 规格
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据更多信息 :https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| CustomResourceDefinitionSpec 描述了用户如何显示其资源 |
|
| CustomResourceDefinitionStatus 表示 CustomResourceDefinition 的状态 |
3.1.1. .spec
- 描述
- CustomResourceDefinitionSpec 描述了用户如何显示其资源
- 类型
-
object
- 必填
-
group
-
names
-
scope
-
版本
-
属性 | 类型 | 描述 |
---|---|---|
|
| CustomResourceConversion 描述了如何转换不同版本的 CR。 |
|
|
Group 是定义的自定义资源的 API 组。自定义资源 |
|
| CustomResourceDefinitionNames 表示为这个 CustomResourceDefinition 提供的名称 |
|
|
preserveUnknownFields 表示在保留存储时不应保留 OpenAPI 模式中指定的对象字段。元数据中的元数据、元数据和已知字段总是被保留。此字段已弃用,在 |
|
|
Scope 表示定义的自定义资源是 cluster- 或 namespace-scoped。允许的值是 |
|
| version 是定义的自定义资源的所有 API 版本列表。版本名称用于计算在 API 发现中列出提供版本的顺序。如果版本字符串为 "kube-like",它将按字典顺序排序为非类似"kube-like"版本字符串。"类似于kube-like"版本以 "v" 开头,然后跟一个数字(主要版本),然后是字符串 "alpha" 或 "beta" 以及另一个数字(次版本)。它们首先按 GA > beta > alpha 排序(其中 GA 是一个没有后缀的版本,如 beta 或 alpha),然后比较主版本,然后比较次版本。一个排序版本列表示例: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10。 |
|
| CustomResourceDefinitionVersion 描述了 CRD 的版本。 |
3.1.2. .spec.conversion
- 描述
- CustomResourceConversion 描述了如何转换不同版本的 CR。
- 类型
-
object
- 必填
-
策略
-
属性 | 类型 | 描述 |
---|---|---|
|
|
strategy 指定自定义资源在版本之间转换的方式。允许的值有: - |
|
| WebhookConversion 描述了如何调用转换 Webhook |
3.1.3. .spec.conversion.webhook
- 描述
- WebhookConversion 描述了如何调用转换 Webhook
- 类型
-
object
- 必填
-
conversionReviewVersions
-
属性 | 类型 | 描述 |
---|---|---|
|
| WebhookClientConfig 包含用于与 webhook 进行 TLS 连接的信息。 |
|
|
conversionReviewVersions 是 Webhook 期望的首选 |
3.1.4. .spec.conversion.webhook.clientConfig
- 描述
- WebhookClientConfig 包含用于与 webhook 进行 TLS 连接的信息。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| cabundle 是 PEM 编码的 CA 捆绑包,它将用于验证 webhook 的服务器证书。如果未指定,则使用 apiserver 上的系统信任 root。 |
|
| ServiceReference 包含对 Service.legacy.k8s.io 的引用 |
|
|
URL 以标准 URL 格式提供 webhook 的位置(
请注意,使用 方案必须是 "https";URL 必须以 "https://" 开头。 路径是可选的,如果存在可以是 URL 中允许的字符串。您可以使用路径将任意字符串传递给 webhook,例如集群标识符。 不允许使用用户或基本身份验证,如 "user:password@"。不允许 slices ("""…")和查询参数("?…")。 |
3.1.5. .spec.conversion.webhook.clientConfig.service
- 描述
- ServiceReference 包含对 Service.legacy.k8s.io 的引用
- 类型
-
object
- 必填
-
namespace
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| name 是服务的名称。必填 |
|
| namespace 是服务的命名空间。必填 |
|
| path 是要联系 Webhook 的可选 URL 路径。 |
|
|
port 是要联系 Webhook 的可选服务端口。 |
3.1.6. .spec.names
- 描述
- CustomResourceDefinitionNames 表示为这个 CustomResourceDefinition 提供的名称
- 类型
-
object
- 必填
-
plural
-
kind
-
属性 | 类型 | 描述 |
---|---|---|
|
|
类别是此自定义资源所属的分组资源列表(如 'all')。这在 API 发现文档中发布,供客户端用于支持诸如 |
|
|
kind 是资源的序列化类型。它通常是 CamelCase 和 singular。自定义资源实例将使用这个值作为 API 调用中的 |
|
| listKind 是此资源列表的序列化类型。默认为 "'kind'List"。 |
|
|
plural 是要服务的资源的复数名称。自定义资源在 /apis//< |
|
|
shortNames 是资源的短名称,在 API 发现文档中公开,供客户端用来支持诸如 |
|
|
单数是资源的单数名称。它必须都是小写。默认为小写 |
3.1.7. .spec.versions
- 描述
- version 是定义的自定义资源的所有 API 版本列表。版本名称用于计算在 API 发现中列出提供版本的顺序。如果版本字符串为 "kube-like",它将按字典顺序排序为非类似"kube-like"版本字符串。"类似于kube-like"版本以 "v" 开头,然后跟一个数字(主要版本),然后是字符串 "alpha" 或 "beta" 以及另一个数字(次版本)。它们首先按 GA > beta > alpha 排序(其中 GA 是一个没有后缀的版本,如 beta 或 alpha),然后比较主版本,然后比较次版本。一个排序版本列表示例: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10。
- 类型
-
array
3.1.8. .spec.versions[]
- 描述
- CustomResourceDefinitionVersion 描述了 CRD 的版本。
- 类型
-
object
- 必填
-
name
-
served
-
storage
-
属性 | 类型 | 描述 |
---|---|---|
|
| additionalPrinterColumns 指定表输出中返回的额外列。详情请查看 https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables。如果没有指定列,则使用一行显示自定义资源的年龄。 |
|
| CustomResourceColumnDefinition 为服务器端打印指定一个列。 |
|
| 弃用表示自定义资源 API 的这个版本已弃用。当设置为 true 时,对此版本的 API 请求会在服务器响应中接收警告标头。默认为false。 |
|
|
deprecationWarning 覆盖返回到 API 客户端的默认警告。只有在 |
|
|
name 是版本名称,如 "v1", "v2beta1" 等。如果提供为 true,则自定义资源在此版本 |
|
| CustomResourceValidation 是 CustomResources 的验证方法列表。 |
|
| 服务是一个标志,启用/禁用此版本通过 REST API 提供 |
|
| Storage 表示在将自定义资源持久化到存储时应使用此版本。必须只有一个带有 storage=true 版本。 |
|
| CustomResourceSubresources 为 CustomResources 定义 status 和 scale 子资源。 |
3.1.9. .spec.versions[].additionalPrinterColumns
- 描述
- additionalPrinterColumns 指定表输出中返回的额外列。详情请查看 https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables。如果没有指定列,则使用一行显示自定义资源的年龄。
- 类型
-
array
3.1.10. .spec.versions[].additionalPrinterColumns[]
- 描述
- CustomResourceColumnDefinition 为服务器端打印指定一个列。
- 类型
-
object
- 必填
-
name
-
type
-
jsonPath
-
属性 | 类型 | 描述 |
---|---|---|
|
| description 是此列的人类可读描述。 |
|
| Format 是此列的可选 OpenAPI 类型定义。'name' 格式应用于主标识符列,以帮助客户端识别列是资源名称。详情请查看 https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types。 |
|
| jsonpath 是一个一个简单的 JSON 路径(例如,使用数组表示法),它会针对每个自定义资源进行评估,以便为此列生成值。 |
|
| name 是该列的人类可读名称。 |
|
| 优先级是一个整数,定义此列的相对重要性,与其他列相比。较低数字被视为优先级更高。在有限空间场景中可能会省略的列应赋予优先级大于 0。 |
|
| type 是此列的 OpenAPI 类型定义。详情请查看 https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types。 |
3.1.11. .spec.versions[].schema
- 描述
- CustomResourceValidation 是 CustomResources 的验证方法列表。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
| openAPIV3Schema 是 OpenAPI v3 模式,用于验证和修剪。 |
3.1.12. .spec.versions[].subresources
- 描述
- CustomResourceSubresources 为 CustomResources 定义 status 和 scale 子资源。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| CustomResourceSubresourceScale 定义如何为 CustomResource 提供 scale 子资源。 |
|
|
CustomResourceSubresourceStatus 定义如何为 CustomResources 提供 status 子资源。状态由 CustomResource 中的 |
3.1.13. .spec.versions[].subresources.scale
- 描述
- CustomResourceSubresourceScale 定义如何为 CustomResource 提供 scale 子资源。
- 类型
-
object
- 必填
-
specReplicasPath
-
statusReplicasPath
-
属性 | 类型 | 描述 |
---|---|---|
|
|
labelSelectorPath 在自定义资源中定义与 Scale |
|
|
specReplicasPath 定义自定义资源中的 JSON 路径,该路径对应于 Scale |
|
|
statusReplicasPath 定义自定义资源中的 JSON 路径,对应于 Scale |
3.1.14. .spec.versions[].subresources.status
- 描述
-
CustomResourceSubresourceStatus 定义如何为 CustomResources 提供 status 子资源。状态由 CustomResource 中的
.status
JSON 路径表示。设置后,Ceph 会公开自定义资源 * PUT 请求到 /status 子资源的 /status 子资源获取自定义资源对象,并忽略除 status 小节之外的任何状态片段更改的 /status 子资源忽略对 status 小节的更改。 - 类型
-
对象
3.1.15. .status
- 描述
- CustomResourceDefinitionStatus 表示 CustomResourceDefinition 的状态
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| CustomResourceDefinitionNames 表示为这个 CustomResourceDefinition 提供的名称 |
|
| conditions 表示 CustomResourceDefinition 的特定方面的状态 |
|
| CustomResourceDefinitionCondition 包含此 pod 的当前条件的详情。 |
|
|
storedVersions 列出之前保留的所有 CustomResource 版本。跟踪这些版本允许 etcd 中保存版本的迁移路径。该字段是可变的,因此迁移控制器可以完成到另一个版本的迁移(确保存储中没有保留旧对象),然后从此列表中删除其余版本。在此列表中存在时,可能无法从 |
3.1.16. .status.acceptedNames
- 描述
- CustomResourceDefinitionNames 表示为这个 CustomResourceDefinition 提供的名称
- 类型
-
object
- 必填
-
plural
-
kind
-
属性 | 类型 | 描述 |
---|---|---|
|
|
类别是此自定义资源所属的分组资源列表(如 'all')。这在 API 发现文档中发布,供客户端用于支持诸如 |
|
|
kind 是资源的序列化类型。它通常是 CamelCase 和 singular。自定义资源实例将使用这个值作为 API 调用中的 |
|
| listKind 是此资源列表的序列化类型。默认为 "'kind'List"。 |
|
|
plural 是要服务的资源的复数名称。自定义资源在 /apis//< |
|
|
shortNames 是资源的短名称,在 API 发现文档中公开,供客户端用来支持诸如 |
|
|
单数是资源的单数名称。它必须都是小写。默认为小写 |
3.1.17. .status.conditions
- 描述
- conditions 表示 CustomResourceDefinition 的特定方面的状态
- 类型
-
array
3.1.18. .status.conditions[]
- 描述
- CustomResourceDefinitionCondition 包含此 pod 的当前条件的详情。
- 类型
-
object
- 必填
-
type
-
status
-
属性 | 类型 | 描述 |
---|---|---|
| lastTransitionTime 时间,条件从一个状态转换到另一个状态。 | |
|
| Message 是人类可读的消息,表示有关最后一次转换的详细信息。 |
|
| reason 是条件最后一次转换的唯一一词 CamelCase 原因。 |
|
| status 是条件的状态。可以是 True, False, Unknown。 |
|
| type 是条件的类型。类型包括 Established、NamesAccepted 和 Terminating。 |