扩展 API
扩展 API 的参考指南
摘要
第 1 章 扩展 API
1.1. APIService [apiregistration.k8s.io/v1]
- 描述
- APIService 代表特定 GroupVersion 的服务器。name 必须是 "version.group"。
- 类型
-
对象
1.2. CustomResourceDefinition [apiextensions.k8s.io/v1]
- 描述
- CustomResourceDefinition 代表应在 API 服务器上公开的资源。其名称必须采用 <.spec.name>.<.spec.group> 格式。
- 类型
-
对象
1.3. MutatingWebhookConfiguration [admissionregistration.k8s.io/v1]
- 描述
- MutatingWebhookConfiguration 描述了接受或拒绝并更改对象的和准入 Webhook 的配置。
- 类型
-
object
1.4. ValidatingAdmissionPolicy [admissionregistration.k8s.io/v1]
- 描述
- ValidatingAdmissionPolicy 描述了准入验证策略的定义,该策略的定义接受或拒绝对象而不更改它。
- 类型
-
object
1.5. ValidatingAdmissionPolicyBinding [admissionregistration.k8s.io/v1]
- 描述
ValidatingAdmissionPolicyBinding 将 ValidatingAdmissionPolicy 与参数化资源绑定。ValidatingAdmissionPolicyBinding 和参数 CRD 定义了集群管理员如何为集群配置策略。
对于给定的准入请求,每个绑定都会导致评估 N 次,其中 N 是不使用 params 的策略/绑定,否则 N 是绑定选择的参数数。
策略的 CEL 表达式必须在最大 CEL 预算下计算计算 CEL 成本。策略的每个评估都会获得独立的 CEL 成本预算。添加/删除策略、绑定或参数会影响给定(策略、绑定、参数)组合是否在其自身的 CEL 预算内。
- 类型
-
对象
1.6. ValidatingWebhookConfiguration [admissionregistration.k8s.io/v1]
- 描述
- ValidatingWebhookConfiguration 描述了 和 admission webhook 的配置,它们接受或拒绝和对象,而不更改它。
- 类型
-
对象
第 2 章 APIService [apiregistration.k8s.io/v1]
- 描述
- APIService 代表特定 GroupVersion 的服务器。name 必须是 "version.group"。
- 类型
-
对象
2.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 | |
|
| APIServiceSpec 包含查找和与服务器通信的信息。仅支持 https,但您可以禁用证书验证。 |
|
| APIServiceStatus 包含有关 API 服务器的派生信息 |
2.1.1. .spec
- 描述
- APIServiceSpec 包含查找和与服务器通信的信息。仅支持 https,但您可以禁用证书验证。
- 类型
-
object
- 必填
-
groupPriorityMinimum
-
versionPriority
-
属性 | 类型 | 描述 |
---|---|---|
|
| cabundle 是 PEM 编码的 CA 捆绑包,它将用于验证 API 服务器的 serving 证书。如果未指定,则使用 apiserver 上的系统信任 root。 |
|
| group 是这个服务器主机的 API 组名称 |
|
| GroupPriorityMinimum 是此组至少应该具有的优先级。优先级更高的意味着客户端优先于优先级较低的组。请注意,此组的其他版本可能会指定更高的 GroupPriorityMinimum 值,以便整个组具有更高的优先级。主排序基于 GroupPriorityMinimum,将最高数字排序为最低(10 之前的 20 个)。辅助排序基于对象名称的字母比较。(v1.bar before v1.foo)我们推荐类似:18000 和 PaaSes (OpenShift, Deis)中的内容。 |
|
| insecureSkipTLSVerify 在与此服务器通信时禁用 TLS 证书验证。强烈建议不要这样做。您应该改为使用 CABundle。 |
|
| ServiceReference 包含对 Service.legacy.k8s.io 的引用 |
|
| version 是这个服务器主机的 API 版本。例如:"v1" |
|
| VersionPriority 控制其组中此 API 版本的顺序。必须大于零。主排序基于 VersionPriority,最高排序为最低值(20 之前的 10 个)。由于它位于组内部,因此数字可能很小,可能位于 10s 中。如果版本优先级相等,版本字符串将用于计算组中的顺序。如果版本字符串为 "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。 |
2.1.2. .spec.service
- 描述
- ServiceReference 包含对 Service.legacy.k8s.io 的引用
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| name 是服务的名称 |
|
| namespace 是服务的命名空间 |
|
|
如果指定,托管 Webhook 的服务上的端口。默认为 443,以便向后兼容。 |
2.1.3. .status
- 描述
- APIServiceStatus 包含有关 API 服务器的派生信息
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| apiService 的当前状态。 |
|
| APIServiceCondition 描述了特定点上的 APIService 状态 |
2.1.4. .status.conditions
- 描述
- apiService 的当前状态。
- 类型
-
array
2.1.5. .status.conditions[]
- 描述
- APIServiceCondition 描述了特定点上的 APIService 状态
- 类型
-
object
- 必填
-
type
-
status
-
属性 | 类型 | 描述 |
---|---|---|
| 条件从一个状态转换到另一个状态最后一次的时间。 | |
|
| 人类可读的消息,指示最后一次转换的详细信息。 |
|
| 条件最后一次转换的唯一、一词、CamelCase 原因。 |
|
| status 是条件的状态。可以是 True, False, Unknown。 |
|
| type 是条件的类型。 |
2.2. API 端点
可用的 API 端点如下:
/apis/apiregistration.k8s.io/v1/apiservices
-
DELETE
: 删除 APIService 集合 -
GET
: 列出或监视类型为 APIService 的对象 -
POST
:创建 APIService
-
/apis/apiregistration.k8s.io/v1/watch/apiservices
-
GET
: 观察单个对 APIService 列表的更改。已弃用:使用带列表操作的 'watch' 参数。
-
/apis/apiregistration.k8s.io/v1/apiservices/{name}
-
DELETE
:删除 APIService -
GET
:读取指定的 APIService -
PATCH
: 部分更新指定的 APIService -
PUT
:替换指定的 APIService
-
/apis/apiregistration.k8s.io/v1/watch/apiservices/{name}
-
GET
: 观察对类型为 APIService 的对象的更改。已弃用:使用带有 list 操作的 'watch' 参数,而是过滤到带有 'fieldSelector' 参数的单个项目。
-
/apis/apiregistration.k8s.io/v1/apiservices/{name}/status
-
GET
:指定 APIService 的读取状态 -
PATCH
: 部分更新指定 APIService 的状态 -
PUT
:替换指定 APIService 的状态
-
2.2.1. /apis/apiregistration.k8s.io/v1/apiservices
- HTTP 方法
-
DELETE
- 描述
- 删除 APIService 集合
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出或监视由 APIService 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 APIService
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized | 空 |
2.2.2. /apis/apiregistration.k8s.io/v1/watch/apiservices
- HTTP 方法
-
GET
- 描述
- 观察单个对 APIService 列表的更改。已弃用:使用带列表操作的 'watch' 参数。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
2.2.3. /apis/apiregistration.k8s.io/v1/apiservices/{name}
参数 | 类型 | 描述 |
---|---|---|
|
| APIService 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 APIService
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
202 - Accepted |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 读取指定的 APIService
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 APIService
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 APIService
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
2.2.4. /apis/apiregistration.k8s.io/v1/watch/apiservices/{name}
参数 | 类型 | 描述 |
---|---|---|
|
| APIService 的名称 |
- HTTP 方法
-
GET
- 描述
- 观察对类型为 APIService 的对象的更改。已弃用:使用带列表操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
2.2.5. /apis/apiregistration.k8s.io/v1/apiservices/{name}/status
参数 | 类型 | 描述 |
---|---|---|
|
| APIService 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 APIService 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定 APIService 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 APIService 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
第 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 的验证方法列表。 |
|
| selectableFields 指定可能用作字段选择器的字段的路径。允许最多 8 个可选择字段。请参阅 https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors |
|
| SelectableField 指定可用于字段选择器的字段的 JSON 路径。 |
|
| 服务是一个标志,启用/禁用此版本通过 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[].selectableFields
- 描述
- selectableFields 指定可能用作字段选择器的字段的路径。允许最多 8 个可选择字段。请参阅 https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors
- 类型
-
数组
3.1.13. .spec.versions[].selectableFields[]
- 描述
- SelectableField 指定可用于字段选择器的字段的 JSON 路径。
- 类型
-
object
- 必填
-
jsonPath
-
属性 | 类型 | 描述 |
---|---|---|
|
| jsonpath 是一个一个简单的 JSON 路径,用于针对每个自定义资源进行评估,以生成字段选择器值。只允许没有数组表示法的 JSON 路径。必须指向类型为字符串、布尔值或整数的字段。允许带有 enum 值和字符串的类型。如果 JSONPath 引用了资源中的 absent 字段,则 jsonPath 会评估为空字符串。不得指向 metdata 字段。必需。 |
3.1.14. .spec.versions[].subresources
- 描述
- CustomResourceSubresources 为 CustomResources 定义 status 和 scale 子资源。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| CustomResourceSubresourceScale 定义如何为 CustomResource 提供 scale 子资源。 |
|
|
CustomResourceSubresourceStatus 定义如何为 CustomResources 提供 status 子资源。状态由 CustomResource 中的 |
3.1.15. .spec.versions[].subresources.scale
- 描述
- CustomResourceSubresourceScale 定义如何为 CustomResource 提供 scale 子资源。
- 类型
-
object
- 必填
-
specReplicasPath
-
statusReplicasPath
-
属性 | 类型 | 描述 |
---|---|---|
|
|
labelSelectorPath 在自定义资源中定义与 Scale |
|
|
specReplicasPath 定义自定义资源中的 JSON 路径,该路径对应于 Scale |
|
|
statusReplicasPath 定义自定义资源中的 JSON 路径,对应于 Scale |
3.1.16. .spec.versions[].subresources.status
- 描述
-
CustomResourceSubresourceStatus 定义如何为 CustomResources 提供 status 子资源。状态由 CustomResource 中的
.status
JSON 路径表示。设置后,Ceph 会公开自定义资源 * PUT 请求到 /status 子资源的 /status 子资源获取自定义资源对象,并忽略除 status 小节之外的任何状态片段更改的 /status 子资源忽略对 status 小节的更改。 - 类型
-
对象
3.1.17. .status
- 描述
- CustomResourceDefinitionStatus 表示 CustomResourceDefinition 的状态
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| CustomResourceDefinitionNames 表示为这个 CustomResourceDefinition 提供的名称 |
|
| conditions 表示 CustomResourceDefinition 的特定方面的状态 |
|
| CustomResourceDefinitionCondition 包含此 pod 的当前条件的详情。 |
|
|
storedVersions 列出之前保留的所有 CustomResource 版本。跟踪这些版本允许 etcd 中保存版本的迁移路径。该字段是可变的,因此迁移控制器可以完成到另一个版本的迁移(确保存储中没有保留旧对象),然后从此列表中删除其余版本。在此列表中存在时,可能无法从 |
3.1.18. .status.acceptedNames
- 描述
- CustomResourceDefinitionNames 表示为这个 CustomResourceDefinition 提供的名称
- 类型
-
object
- 必填
-
plural
-
kind
-
属性 | 类型 | 描述 |
---|---|---|
|
|
类别是此自定义资源所属的分组资源列表(如 'all')。这在 API 发现文档中发布,供客户端用于支持诸如 |
|
|
kind 是资源的序列化类型。它通常是 CamelCase 和 singular。自定义资源实例将使用这个值作为 API 调用中的 |
|
| listKind 是此资源列表的序列化类型。默认为 "'kind'List"。 |
|
|
plural 是要服务的资源的复数名称。自定义资源在 /apis//< |
|
|
shortNames 是资源的短名称,在 API 发现文档中公开,供客户端用来支持诸如 |
|
|
单数是资源的单数名称。它必须都是小写。默认为小写 |
3.1.19. .status.conditions
- 描述
- conditions 表示 CustomResourceDefinition 的特定方面的状态
- 类型
-
array
3.1.20. .status.conditions[]
- 描述
- CustomResourceDefinitionCondition 包含此 pod 的当前条件的详情。
- 类型
-
object
- 必填
-
type
-
status
-
属性 | 类型 | 描述 |
---|---|---|
| lastTransitionTime 时间,条件从一个状态转换到另一个状态。 | |
|
| Message 是人类可读的消息,表示有关最后一次转换的详细信息。 |
|
| reason 是条件最后一次转换的唯一一词 CamelCase 原因。 |
|
| status 是条件的状态。可以是 True, False, Unknown。 |
|
| type 是条件的类型。类型包括 Established、NamesAccepted 和 Terminating。 |
3.2. API 端点
可用的 API 端点如下:
/apis/apiextensions.k8s.io/v1/customresourcedefinitions
-
DELETE
: 删除 CustomResourceDefinition 集合 -
GET
: 列出或监视类型为 CustomResourceDefinition 的对象 -
POST
:创建 CustomResourceDefinition
-
/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions
-
GET
: 观察单个对 CustomResourceDefinition 列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
-
/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}
-
DELETE
:删除 CustomResourceDefinition -
GET
:读取指定的 CustomResourceDefinition -
PATCH
: 部分更新指定的 CustomResourceDefinition -
PUT
:替换指定的 CustomResourceDefinition
-
/apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions/{name}
-
GET
: 观察对类型为 CustomResourceDefinition 的对象的更改。已弃用:使用带有 list 操作的 'watch' 参数,而是过滤为带有 'fieldSelector' 参数的单个项目。
-
/apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status
-
GET
:指定 CustomResourceDefinition 的读取状态 -
PATCH
: 部分更新指定 CustomResourceDefinition 的状态 -
PUT
:替换指定 CustomResourceDefinition 的状态
-
3.2.1. /apis/apiextensions.k8s.io/v1/customresourcedefinitions
- HTTP 方法
-
DELETE
- 描述
- 删除 CustomResourceDefinition 集合
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出或监视类型为 CustomResourceDefinition 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 CustomResourceDefinition
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空 |
3.2.2. /apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions
- HTTP 方法
-
GET
- 描述
- 观察单个对 CustomResourceDefinition 列表的更改。已弃用:改为使用 'watch' 参数和 list 操作。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
3.2.3. /apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}
参数 | 类型 | 描述 |
---|---|---|
|
| CustomResourceDefinition 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 CustomResourceDefinition
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
202 - Accepted |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 读取指定的 CustomResourceDefinition
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 CustomResourceDefinition
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 CustomResourceDefinition
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
3.2.4. /apis/apiextensions.k8s.io/v1/watch/customresourcedefinitions/{name}
参数 | 类型 | 描述 |
---|---|---|
|
| CustomResourceDefinition 的名称 |
- HTTP 方法
-
GET
- 描述
- 观察对类型为 CustomResourceDefinition 的对象的更改。已弃用:使用带列表操作的 'watch' 参数,而是过滤成带有 'fieldSelector' 参数的单个项目。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
3.2.5. /apis/apiextensions.k8s.io/v1/customresourcedefinitions/{name}/status
参数 | 类型 | 描述 |
---|---|---|
|
| CustomResourceDefinition 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 CustomResourceDefinition 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定 CustomResourceDefinition 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定 CustomResourceDefinition 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
第 4 章 MutatingWebhookConfiguration [admissionregistration.k8s.io/v1]
- 描述
- MutatingWebhookConfiguration 描述了接受或拒绝并更改对象的和准入 Webhook 的配置。
- 类型
-
对象
4.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。 | |
|
| Webhook 是 Webhook 以及受影响的资源和操作的列表。 |
|
| mutatingwebhook 描述了准入 Webhook 以及它应用到的资源和操作。 |
4.1.1. .webhooks
- 描述
- Webhook 是 Webhook 以及受影响的资源和操作的列表。
- 类型
-
array
4.1.2. .webhooks[]
- 描述
- mutatingwebhook 描述了准入 Webhook 以及它应用到的资源和操作。
- 类型
-
object
- 必填
-
name
-
clientConfig
-
sideEffects
-
admissionReviewVersions
-
属性 | 类型 | 描述 |
---|---|---|
|
|
admissionReviewVersions 是 Webhook 期望的首选 |
|
| WebhookClientConfig 包含与 webhook 进行 TLS 连接的信息 |
|
| failurePolicy 定义如何处理准入端点中未识别的错误 - 允许的值是 Ignore 或 Fail。默认为 Fail。
可能枚举值: - |
|
| MatchConditions 是发送到此 webhook 的请求必须满足的条件列表。匹配条件过滤请求,它们已与 rules、namespaceSelector 和 objectSelector 匹配。空 matchConditions 列表与所有请求匹配。允许最多有 64 个匹配条件。 完全匹配逻辑为(按顺序):1。如果 ANY matchCondition 评估为 FALSE,则会跳过 Webhook。2.如果 ALL matchConditions 评估为 TRUE,则会调用 Webhook。3.如果任何 matchCondition 评估为错误(但没有是 FALSE):- 如果 failurePolicy=Fail,拒绝请求 - If failurePolicy=Ignore,则忽略错误,并跳过 Webhook |
|
| MatchCondition 代表一个条件,需要满足该条件才能将请求发送到 webhook。 |
|
| matchPolicy 定义如何使用 "rules" 列表来匹配传入的请求。允许的值是 "Exact" 或 "Equivalent"。
- exact :仅在与指定规则完全匹配时才匹配请求。例如,如果可通过 apps/v1、apps/v1beta1 和 extensions/v1beta1 修改部署,但 "rules" 仅包含
- equivalent :如果修改规则中列出的资源,即使通过另一个 API 组或版本来匹配请求。例如,如果可通过 apps/v1、apps/v1beta1 和 extensions/v1beta1 和 "rules" 修改部署,则只有 默认为 "Equivalent"
可能枚举值:- |
|
| 准入 Webhook 的名称。名称应该是完全限定的,如 imagepolicy.kubernetes.io,其中 "imagepolicy" 是 webhook 的名称,kubernetes.io 是机构的名称。必需。 |
| namespaceSelector 决定是否根据该对象的命名空间与选择器匹配而在对象上运行 Webhook。如果对象本身是命名空间,则在 object.metadata.labels 上执行匹配。如果对象是另一个集群范围的资源,则永远不会跳过 Webhook。 例如,要在命名空间没有与 "0" 或 "1" 的 "runlevel" 关联的对象上运行 webhook;您将设置选择器,如下所示: "namespaceSelector": { "matchExpressions": [ { "key": "runlevel", "operator": "NotIn", "values": [ "0", "1" ] } ] } 如果您希望仅在任何命名空间与 "prod" 或 "staging" 关联的对象上运行 webhook;您将按如下方式设置选择器: "namespaceSelector": { "matchExpressions": [ { "key": "environment", "operator": "In", "values": [ "prod", "staging" ] } ] } 有关标签选择器的更多信息,请参阅 https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/。 默认为空 LabelSelector,它将匹配所有内容。 | |
| objectSelector 决定是否根据对象是否匹配标签运行 webhook。将针对要发送到 webhook 的 oldObject 和 newObject 评估 objectSelector,并在其中一个对象与选择器匹配时被视为匹配。一个 null 对象(如果是 create, 或 newObject in the delete 时),或没有标签(如 DeploymentRollback 或 PodProxyOptions 对象)的对象不会被认为匹配。只有在 webhook 是 opt-in 时才使用对象选择器,因为最终用户可以通过设置标签来跳过准入 Webhook。默认为空 LabelSelector,它将匹配所有内容。 | |
|
| reinvocationPolicy 表示此 webhook 是否应该多次作为单个准入评估的一部分调用。允许的值是 "Never" 和 "IfNeeded"。 Never:在单个准入评估中不会多次调用 Webhook。 IfNeeded :如果对象在初始 webhook 调用后被其他准入插件修改,则 webhook 将至少被称为一个额外的时间作为准入评估的一部分。指定此选项的 Webhook 必须 是幂等的,能够处理之前接受的对象。注: 无法保证额外的调用数量完全匹配。* 如果额外的调用会对对象进行进一步修改,无法保证再次调用 Webhook。* 使用此选项的 Webhook 可以重新排序,以最小化额外调用的数量。* 要在所有变异完成后验证对象,请使用验证准入 Webhook。 默认为 "Never"。
可能枚举值:- |
|
| 规则描述了 webhook 对资源/子资源执行的操作。如果 webhook 匹配任何 规则,则 webhook 会小心操作。但是,为了防止 ValidatingAdmissionWebhooks 和 MutatingAdmissionWebhooks 将集群置于状态,在没有完全禁用插件的情况下,无法完全禁用插件,ValidatingAdmissionWebhooks 和 MutatingAdmissionWebhooks 不会对 ValidatingWebhookConfiguration 和 MutatingWebhookConfiguration 对象的准入请求调用。 |
|
| RuleWithOperations 是 Operations 和 Resources 的元组。建议确保所有元组扩展都有效。 |
|
| SideEffects 说明此 webhook 是否有副作用。可接受值为: None, NoneOnDryRun (通过 v1beta1 创建的webhook 也可能会指定 some 或 Unknown)。具有副作用的 Webhook 必须实施协调系统,因为准入链中的未来步骤可能会拒绝请求,因此需要撤销副作用。如果带有 dryRun 属性的请求与带有 sideEffects == Unknown 或 some 的 webhook 匹配,则会自动拒绝请求。
可能枚举值: - |
|
| timeoutSeconds 指定此 webhook 的超时时间。在超时通过后,webhook 调用将被忽略,或者 API 调用将根据失败策略失败。超时值必须在 1 到 30 秒之间。默认值为 10 秒。 |
4.1.3. .webhooks[].clientConfig
- 描述
- WebhookClientConfig 包含与 webhook 进行 TLS 连接的信息
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
|
|
|
| ServiceReference 包含对 Service.legacy.k8s.io 的引用 |
|
|
URL 以标准 URL 格式提供 webhook 的位置(
请注意,使用 方案必须是 "https";URL 必须以 "https://" 开头。 路径是可选的,如果存在可以是 URL 中允许的字符串。您可以使用路径将任意字符串传递给 webhook,例如集群标识符。 不允许使用用户或基本身份验证,如 "user:password@"。不允许 slices ("""…")和查询参数("?…")。 |
4.1.4. .webhooks[].clientConfig.service
- 描述
- ServiceReference 包含对 Service.legacy.k8s.io 的引用
- 类型
-
object
- 必填
-
namespace
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
如果指定,托管 Webhook 的服务上的端口。默认为 443,以便向后兼容。 |
4.1.5. .webhooks[].matchConditions
- 描述
MatchConditions 是发送到此 webhook 的请求必须满足的条件列表。匹配条件过滤请求,它们已与 rules、namespaceSelector 和 objectSelector 匹配。空 matchConditions 列表与所有请求匹配。允许最多有 64 个匹配条件。
完全匹配逻辑为(按顺序):1。如果 ANY matchCondition 评估为 FALSE,则会跳过 Webhook。2.如果 ALL matchConditions 评估为 TRUE,则会调用 Webhook。3.如果任何 matchCondition 评估为错误(但没有是 FALSE):- 如果 failurePolicy=Fail,拒绝请求 - If failurePolicy=Ignore,则忽略错误,并跳过 Webhook
- 类型
-
数组
4.1.6. .webhooks[].matchConditions[]
- 描述
- MatchCondition 代表一个条件,需要满足该条件才能将请求发送到 webhook。
- 类型
-
object
- 必填
-
名称
-
expression
-
属性 | 类型 | 描述 |
---|---|---|
|
| expression 代表将由 CEL 评估的表达式。必须评估 bool。CEL 表达式可以访问 AdmissionRequest 和 Authorizer 的内容,并组织成 CEL 变量: 'object' - 来自传入请求的对象。对于 DELETE 请求,值为 null。'oldObject' - 现有对象。CREATE 请求的值是 null。'request' - 准入请求的属性(/pkg/apis/admission/types.go:AdmissionRequest)'authorizer' - A CEL Authorizer。可用于对请求的主体(用户或服务帐户)执行授权检查。请参阅 https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz 'authorizer.requestResource' - 从 'authorizer' 构建并使用请求资源配置的 CEL ResourceCheck。有关 CEL 的文档 :https://kubernetes.io/docs/reference/using-api/cel/ 必需。 |
|
| name 是此匹配条件的标识符,用于战略合并 MatchConditions,并提供用于日志记录目的的标识符。相关表达式的描述性应为一个好名称。name 必须是包括字母数字字符、'-'、'' 或 '.' 的合格名称,且必须以字母数字字符开头和结尾(例如。'MyName', 或 'my.name', 或 '123-abc', 用于验证的 regex 为 '([A-Za-z0-9][-A-Za-z0-9.]*)?[A-Za-z0-9]'),带有可选的 DNS 子域前缀和 '/'(如 'example.com/MyName') 必需。 |
4.1.7. .webhooks[].rules
- 描述
- 规则描述了 webhook 对资源/子资源执行的操作。如果 webhook 匹配任何 规则,则 webhook 会小心操作。但是,为了防止 ValidatingAdmissionWebhooks 和 MutatingAdmissionWebhooks 将集群置于状态,在没有完全禁用插件的情况下,无法完全禁用插件,ValidatingAdmissionWebhooks 和 MutatingAdmissionWebhooks 不会对 ValidatingWebhookConfiguration 和 MutatingWebhookConfiguration 对象的准入请求调用。
- 类型
-
array
4.1.8. .webhooks[].rules[]
- 描述
- RuleWithOperations 是 Operations 和 Resources 的元组。建议确保所有元组扩展都有效。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| apiGroups 是资源所属的 API 组。'' 是所有组。如果存在 '',则片段的长度必须是一。必需。 |
|
| APIVersions 是资源所属的 API 版本。'' 是所有版本。如果存在 '',则片段的长度必须是一。必需。 |
|
| 操作是准入 hook 为所有操作以及添加的任何准入操作( CREATE、UPDATE、DELETE、CONNECT 或 *)的操作。如果 '*' 存在,则片段的长度必须是一。必需。 |
|
| resources 是一组这个规则应用到的资源列表。 例如: 'pods' 表示 pod。'pods/log' 表示 pod 的日志子资源。' ' 表示所有资源,但不是子资源。'pods/' 表示所有 pod 子资源。'/scale' 表示所有 scale 子资源。'Suffix' 表示所有资源及其子资源。 如果存在通配符,验证规则将确保资源不会相互重叠。 根据封闭对象,可能无法允许子资源。必需。 |
|
| scope 指定此规则的范围。有效值为 "Cluster", "Namespaced", 和 "" "Cluster" 表示只有集群范围的资源与此规则匹配。命名空间 API 对象是集群范围的。"namespaced" 表示只有命名空间的资源将与此规则匹配。"" 表示没有范围限制。子资源与其父资源的范围匹配。默认为 "*"。 |
4.2. API 端点
可用的 API 端点如下:
/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations
-
DELETE
: 删除 MutatingWebhookConfiguration 集合 -
GET
: list 或 watch kind MutatingWebhookConfiguration -
POST
:创建 MutatingWebhookConfiguration
-
/apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations
-
GET
: 观察单个更改对 MutatingWebhookConfiguration 列表。弃用:改为使用 'watch' 参数和列表操作。
-
/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name}
-
DELETE
: 删除 MutatingWebhookConfiguration -
GET
:读取指定的 MutatingWebhookConfiguration -
PATCH
: 部分更新指定的 MutatingWebhookConfiguration -
PUT
:替换指定的 MutatingWebhookConfiguration
-
/apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations/{name}
-
GET
: 观察对类型为 MutatingWebhookConfiguration 的对象的更改。已弃用:使用带有 list 操作的 'watch' 参数,而是过滤为带有 'fieldSelector' 参数的单个项目。
-
4.2.1. /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations
- HTTP 方法
-
DELETE
- 描述
- 删除 MutatingWebhookConfiguration 集合
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出或监视类型为 MutatingWebhookConfiguration 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 MutatingWebhookConfiguration
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空 |
4.2.2. /apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations
- HTTP 方法
-
GET
- 描述
- 观察单个对 MutatingWebhookConfiguration 列表的更改。已弃用:使用带列表操作的 'watch' 参数。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
4.2.3. /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name}
参数 | 类型 | 描述 |
---|---|---|
|
| MutatingWebhookConfiguration 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 MutatingWebhookConfiguration
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
202 - Accepted |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 阅读指定的 MutatingWebhookConfiguration
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 MutatingWebhookConfiguration
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 MutatingWebhookConfiguration
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
4.2.4. /apis/admissionregistration.k8s.io/v1/watch/mutatingwebhookconfigurations/{name}
参数 | 类型 | 描述 |
---|---|---|
|
| MutatingWebhookConfiguration 的名称 |
- HTTP 方法
-
GET
- 描述
- 观察对类型为 MutatingWebhookConfiguration 的对象的更改。已弃用:使用带有 list 操作的 'watch' 参数,而是过滤到带有 'fieldSelector' 参数的单个项目。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
第 5 章 ValidatingAdmissionPolicy [admissionregistration.k8s.io/v1]
- 描述
- ValidatingAdmissionPolicy 描述了准入验证策略的定义,该策略的定义接受或拒绝对象而不更改它。
- 类型
-
对象
5.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。 | |
|
| ValidatingAdmissionPolicySpec 是 AdmissionPolicy 所需的行为的规格。 |
|
| ValidatingAdmissionPolicyStatus 代表准入验证策略的状态。 |
5.1.1. .spec
- 描述
- ValidatingAdmissionPolicySpec 是 AdmissionPolicy 所需的行为的规格。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| auditAnnotations 包含 CEL 表达式,用于为 API 请求的审计事件生成审计注解。验证和 auditAnnotations 可能并不为空;至少需要一个验证或 auditAnnotations。 |
|
| AuditAnnotation 描述了如何为 API 请求生成审计注解。 |
|
| failurePolicy 定义如何处理准入策略失败。CEL 表达式解析错误、类型检查错误、运行时错误和无效或配置的策略定义或绑定可能会出现失败。 如果 spec.paramKind 指向不存在的 Kind,则策略无效。如果 spec.paramRef.name 指的是不存在的资源,则绑定无效。 failurePolicy 不定义如何处理评估为 false 的验证。 当 failurePolicy 设置为 Fail 时,ValidatingAdmissionPolicyBinding validationActions 定义如何强制实施失败。 允许的值是 Ignore 或 Fail。默认为 Fail。
可能枚举值: - |
|
| MatchConditions 是验证请求必须满足的条件列表。匹配条件过滤请求,它们已与 rules、namespaceSelector 和 objectSelector 匹配。空 matchConditions 列表与所有请求匹配。允许最多有 64 个匹配条件。
如果提供了参数对象,它可以通过 完全匹配逻辑为(按顺序):1。如果 ANY matchCondition 评估为 FALSE,则会跳过策略。2.如果 ALL matchConditions 评估为 TRUE,则会评估策略。3.如果任何 matchCondition 评估为错误(但没有是 FALSE): - 如果 failurePolicy=Fail,拒绝请求 - If failurePolicy=Ignore,则会跳过策略 |
|
| MatchCondition 代表一个条件,需要满足该条件才能将请求发送到 webhook。 |
|
| MatchResources 决定是否根据它是否满足匹配标准在对象上运行准入控制策略。排除规则优先于 include 规则(如果资源同时匹配,则会排除它) |
|
| ParamKind 是 Group Kind 和 Version 的元组。 |
|
| 验证包含用于应用验证的 CEL 表达式。验证和审计注解可能并不为空,至少需要一个 Validations 或 AuditAnnotations。 |
|
| validation 指定用来应用验证的 CEL 表达式。 |
|
|
变量包含可用于组成其他表达式的变量的定义。每个变量都定义为命名的 CEL 表达式。这里定义的变量将在策略的其他表达式中的 变量的表达式可以引用之前在列表中定义的其他变量,但不能引用之后定义的变量。因此,变量必须按照第一个外观和 acyclic 的顺序进行排序。 |
|
| 变量是变量的定义,用于组成。变量定义为命名表达式。 |
5.1.2. .spec.auditAnnotations
- 描述
- auditAnnotations 包含 CEL 表达式,用于为 API 请求的审计事件生成审计注解。验证和 auditAnnotations 可能并不为空;至少需要一个验证或 auditAnnotations。
- 类型
-
数组
5.1.3. .spec.auditAnnotations[]
- 描述
- AuditAnnotation 描述了如何为 API 请求生成审计注解。
- 类型
-
object
- 必填
-
key
-
valueExpression
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 指定审计注解键。ValidatingAdmissionPolicy 的 audit 注解键必须是唯一的。密钥必须是限定名称([A-Za-z0-9][-A-Za-z0-9_.]*)长度不超过 63 字节。 键与 ValidatingAdmissionPolicy 的资源名称相结合,以构造审计注解键:"{ValidatingAdmissionPolicy name}/{key}"。 如果准入 webhook 使用与这个 ValidatingAdmissionPolicy 和相同的审计注解键相同的资源名称,则注解键将相同。在这种情况下,使用密钥编写的第一个注解将包含在审计事件中,所有具有相同键的后续注解都会被丢弃。 必需。 |
|
| valueExpression 代表 CEL 评估的表达式来生成审计注解值。表达式必须评估为字符串或 null 值。如果表达式评估为字符串,则 audit 注解会包含在字符串值中。如果表达式评估为 null 或空字符串,则会省略 audit 注解。值Expression 长度不超过 5kb。如果 valueExpression 的结果长度超过 10kb,它将被截断为 10kb。 如果多个 ValidatingAdmissionPolicyBinding 资源与 API 请求匹配,则会为每个绑定评估 valueExpression。valueExpressions 生成的所有唯一值都将在以逗号分隔的列表中合并。 必需。 |
5.1.4. .spec.matchConditions
- 描述
MatchConditions 是验证请求必须满足的条件列表。匹配条件过滤请求,它们已与 rules、namespaceSelector 和 objectSelector 匹配。空 matchConditions 列表与所有请求匹配。允许最多有 64 个匹配条件。
如果提供了参数对象,它可以通过
params
处理,其方式与验证表达式相同。完全匹配逻辑为(按顺序):1。如果 ANY matchCondition 评估为 FALSE,则会跳过策略。2.如果 ALL matchConditions 评估为 TRUE,则会评估策略。3.如果任何 matchCondition 评估为错误(但没有是 FALSE): - 如果 failurePolicy=Fail,拒绝请求 - If failurePolicy=Ignore,则会跳过策略
- 类型
-
数组
5.1.5. .spec.matchConditions[]
- 描述
- MatchCondition 代表一个条件,需要满足该条件才能将请求发送到 webhook。
- 类型
-
object
- 必填
-
名称
-
expression
-
属性 | 类型 | 描述 |
---|---|---|
|
| expression 代表将由 CEL 评估的表达式。必须评估 bool。CEL 表达式可以访问 AdmissionRequest 和 Authorizer 的内容,并组织成 CEL 变量: 'object' - 来自传入请求的对象。对于 DELETE 请求,值为 null。'oldObject' - 现有对象。CREATE 请求的值是 null。'request' - 准入请求的属性(/pkg/apis/admission/types.go:AdmissionRequest)'authorizer' - A CEL Authorizer。可用于对请求的主体(用户或服务帐户)执行授权检查。请参阅 https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz 'authorizer.requestResource' - 从 'authorizer' 构建并使用请求资源配置的 CEL ResourceCheck。有关 CEL 的文档 :https://kubernetes.io/docs/reference/using-api/cel/ 必需。 |
|
| name 是此匹配条件的标识符,用于战略合并 MatchConditions,并提供用于日志记录目的的标识符。相关表达式的描述性应为一个好名称。name 必须是包括字母数字字符、'-'、'' 或 '.' 的合格名称,且必须以字母数字字符开头和结尾(例如。'MyName', 或 'my.name', 或 '123-abc', 用于验证的 regex 为 '([A-Za-z0-9][-A-Za-z0-9.]*)?[A-Za-z0-9]'),带有可选的 DNS 子域前缀和 '/'(如 'example.com/MyName') 必需。 |
5.1.6. .spec.matchConstraints
- 描述
- MatchResources 决定是否根据它是否满足匹配标准在对象上运行准入控制策略。排除规则优先于 include 规则(如果资源同时匹配,则会排除它)
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| ExcludeResourceRules 描述了 ValidatingAdmissionPolicy 不应关注哪些资源/子资源的操作。排除规则优先于 include 规则(如果资源同时匹配,则会排除它) |
|
| NamedRuleWithOperations 是 Operations 和 ResourceNames 的元组。 |
|
| matchPolicy 定义如何使用 "MatchResources" 列表来匹配传入的请求。允许的值是 "Exact" 或 "Equivalent"。
- exact :仅在与指定规则完全匹配时才匹配请求。例如,如果可通过 apps/v1、apps/v1beta1 和 extensions/v1beta1 修改部署,但 "rules" 仅包含
- equivalent :如果修改规则中列出的资源,即使通过另一个 API 组或版本来匹配请求。例如,如果可通过 apps/v1、apps/v1beta1 和 extensions/v1beta1 和 "rules" 修改部署,则只有 默认为 "Equivalent"
可能枚举值:- |
| namespaceSelector 决定是否根据该对象的命名空间与选择器匹配来在对象上运行准入控制策略。如果对象本身是命名空间,则在 object.metadata.labels 上执行匹配。如果对象是另一个集群范围的资源,则永远不会跳过策略。 例如,要在命名空间没有与 "0" 或 "1" 的 "runlevel" 关联的对象上运行 webhook;您将设置选择器,如下所示: "namespaceSelector": { "matchExpressions": [ { "key": "runlevel", "operator": "NotIn", "values": [ "0", "1" ] } ] } 如果您希望仅在任何命名空间与 "prod" 或 "staging" 关联的对象上运行策略;您将选择器设置为如下所示: "namespaceSelector": { "matchExpressions": [ { "key": "environment", "operator": "In", "values": [ "prod", "staging" ] } ] } 有关标签选择器的更多信息,请参阅 https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/。 默认为空 LabelSelector,它将匹配所有内容。 | |
| objectSelector 决定是否根据对象是否匹配标签运行验证。objectSelector 针对发送到 cel 验证的 oldObject 和 newObject 评估,如果任何一个对象与选择器匹配,则被视为匹配。一个 null 对象(如果是 create, 或 newObject in the delete 时),或没有标签(如 DeploymentRollback 或 PodProxyOptions 对象)的对象不会被认为匹配。只有在 webhook 是 opt-in 时才使用对象选择器,因为最终用户可以通过设置标签来跳过准入 Webhook。默认为空 LabelSelector,它将匹配所有内容。 | |
|
| resourceRules 描述了 ValidatingAdmissionPolicy 匹配的资源/资源什么操作。如果某个操作 与任何 规则匹配,则策略会监视它。 |
|
| NamedRuleWithOperations 是 Operations 和 ResourceNames 的元组。 |
5.1.7. .spec.matchConstraints.excludeResourceRules
- 描述
- ExcludeResourceRules 描述了 ValidatingAdmissionPolicy 不应关注哪些资源/子资源的操作。排除规则优先于 include 规则(如果资源同时匹配,则会排除它)
- 类型
-
数组
5.1.8. .spec.matchConstraints.excludeResourceRules[]
- 描述
- NamedRuleWithOperations 是 Operations 和 ResourceNames 的元组。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| apiGroups 是资源所属的 API 组。'' 是所有组。如果存在 '',则片段的长度必须是一。必需。 |
|
| APIVersions 是资源所属的 API 版本。'' 是所有版本。如果存在 '',则片段的长度必须是一。必需。 |
|
| 操作是准入 hook 为所有操作以及添加的任何准入操作( CREATE、UPDATE、DELETE、CONNECT 或 *)的操作。如果 '*' 存在,则片段的长度必须是一。必需。 |
|
| resourceNames 是一个可选的规则应用到的名称白名单。空集表示所有都会被允许。 |
|
| resources 是一组这个规则应用到的资源列表。 例如: 'pods' 表示 pod。'pods/log' 表示 pod 的日志子资源。' ' 表示所有资源,但不是子资源。'pods/' 表示所有 pod 子资源。'/scale' 表示所有 scale 子资源。'Suffix' 表示所有资源及其子资源。 如果存在通配符,验证规则将确保资源不会相互重叠。 根据封闭对象,可能无法允许子资源。必需。 |
|
| scope 指定此规则的范围。有效值为 "Cluster", "Namespaced", 和 "" "Cluster" 表示只有集群范围的资源与此规则匹配。命名空间 API 对象是集群范围的。"namespaced" 表示只有命名空间的资源将与此规则匹配。"" 表示没有范围限制。子资源与其父资源的范围匹配。默认为 "*"。 |
5.1.9. .spec.matchConstraints.resourceRules
- 描述
- resourceRules 描述了 ValidatingAdmissionPolicy 匹配的资源/资源什么操作。如果某个操作 与任何 规则匹配,则策略会监视它。
- 类型
-
数组
5.1.10. .spec.matchConstraints.resourceRules[]
- 描述
- NamedRuleWithOperations 是 Operations 和 ResourceNames 的元组。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| apiGroups 是资源所属的 API 组。'' 是所有组。如果存在 '',则片段的长度必须是一。必需。 |
|
| APIVersions 是资源所属的 API 版本。'' 是所有版本。如果存在 '',则片段的长度必须是一。必需。 |
|
| 操作是准入 hook 为所有操作以及添加的任何准入操作( CREATE、UPDATE、DELETE、CONNECT 或 *)的操作。如果 '*' 存在,则片段的长度必须是一。必需。 |
|
| resourceNames 是一个可选的规则应用到的名称白名单。空集表示所有都会被允许。 |
|
| resources 是一组这个规则应用到的资源列表。 例如: 'pods' 表示 pod。'pods/log' 表示 pod 的日志子资源。' ' 表示所有资源,但不是子资源。'pods/' 表示所有 pod 子资源。'/scale' 表示所有 scale 子资源。'Suffix' 表示所有资源及其子资源。 如果存在通配符,验证规则将确保资源不会相互重叠。 根据封闭对象,可能无法允许子资源。必需。 |
|
| scope 指定此规则的范围。有效值为 "Cluster", "Namespaced", 和 "" "Cluster" 表示只有集群范围的资源与此规则匹配。命名空间 API 对象是集群范围的。"namespaced" 表示只有命名空间的资源将与此规则匹配。"" 表示没有范围限制。子资源与其父资源的范围匹配。默认为 "*"。 |
5.1.11. .spec.paramKind
- 描述
- ParamKind 是 Group Kind 和 Version 的元组。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| apiVersion 是资源所属的 API 组版本。格式为 "group/version"。必需。 |
|
| kind 是资源所属的 API 类型。必需。 |
5.1.12. .spec.validations
- 描述
- 验证包含用于应用验证的 CEL 表达式。验证和审计注解可能并不为空,至少需要一个 Validations 或 AuditAnnotations。
- 类型
-
数组
5.1.13. .spec.validations[]
- 描述
- validation 指定用来应用验证的 CEL 表达式。
- 类型
-
object
- 必填
-
expression
-
属性 | 类型 | 描述 |
---|---|---|
|
| expression 代表 CEL 评估的表达式。https://github.com/google/cel-spec CEL 表达式可以访问 API 请求/响应的内容,并被组织到 CEL 变量中,以及其他一些有用的变量: - 'object' - 来自传入请求的对象。对于 DELETE 请求,值为 null。- 'oldObject' - 现有对象。对于 CREATE 请求,值为 null。- 'request' - API 请求的属性([ref](/pkg/apis/admission/types.goReactAdmissionRequest))。- 'params' - Parameter resource 引用由策略绑定被评估。只有策略有一个 ParamKind. - 'namespaceObject' - 传入对象所属命名空间对象时填充。对于集群范围的资源,值为 null。- 'variables' - 组合变量的映射,从其名称到 lazily 评估的值。例如,名为 'foo' 的变量可作为 'variables.foo'. - 'authorizer' - A CEL Authorizer 访问。可用于对请求的主体(用户或服务帐户)执行授权检查。请参阅 https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - 'authorizer.requestResource' - 从 'authorizer' 构建并使用请求资源配置的 CEL ResourceCheck。
只有
等于列表类型为 'set' 或 'map' 的数组,即 [1, 2] == [2, 1]。与 x-kubernetes-list-type 的数组连接会使用列表类型的语义: - 'set': |
|
| Message 代表验证失败时显示的消息。如果 Expression 包含换行符,则需要消息。消息不得包含换行符。如果未设置,则消息为 "failed rule: {Rule}"。例如,如果 Expression 包含换行符,则必须是一个与 spec.host 匹配的主机的 URL。需要消息。消息不得包含换行符。如果未设置,则消息为 "failed Expression: {Expression}"。 |
|
|
messageExpression 声明了一个 CEL 表达式,它评估到此规则失败时返回的验证失败消息。由于 messageExpression 用作失败消息,它必须评估为字符串。如果验证中同时存在 message 和 messageExpression,则在验证失败时将使用 messageExpression。如果 messageExpression 导致运行时错误,则会记录运行时错误,并且生成验证失败消息,就像 messageExpression 字段未设置一样。如果 messageExpression 评估为空字符串、仅包含空格的字符串,或者包含换行符的字符串,则也会生成验证失败消息,就如 messageExpression 字段未设置,并且消息Expression 生成一个空字符串/字符串,且只有有换行符的空格/字符串会被记录。messageExpression 可以访问与 'authorizer' 和 'authorizer.request' 以外的 |
|
| reason 表示此验证失败的原因的机器可读描述。如果这是列表中的第一个验证失败,这个原因以及相应的 HTTP 响应代码将在 HTTP 响应中用于客户端。目前支持的原因包括:"Unauthorized", "Forbidden", "Invalid", "RequestEntityTooLarge"。如果没有设置,则对客户端的响应将使用 StatusReasonInvalid。 |
5.1.14. .spec.variables
- 描述
变量包含可用于组成其他表达式的变量的定义。每个变量都定义为命名的 CEL 表达式。这里定义的变量将在策略的其他表达式中的
变量
下提供,但 MatchConditions 除外,因为 MatchConditions 在策略的其余部分之前评估。变量的表达式可以引用之前在列表中定义的其他变量,但不能引用之后定义的变量。因此,变量必须按照第一个外观和 acyclic 的顺序进行排序。
- 类型
-
数组
5.1.15. .spec.variables[]
- 描述
- 变量是变量的定义,用于组成。变量定义为命名表达式。
- 类型
-
object
- 必填
-
名称
-
expression
-
属性 | 类型 | 描述 |
---|---|---|
|
| expression 是将评估为 变量的值的表达式。CEL 表达式可以访问与 Validation 中的 CEL 表达式相同的标识符。 |
|
|
name 是变量的名称。名称必须是有效的 CEL 标识符,且在所有变量中是唯一的。变量可以通过变量访问其他表达式中,例如,如果 name 是 "foo",则变量将作为 |
5.1.16. .status
- 描述
- ValidatingAdmissionPolicyStatus 代表准入验证策略的状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
| 条件代表策略当前状态的最新可用影响。 | |
|
| 控制器观察到的生成。 |
|
| TypeChecking 包含在 ValidatingAdmissionPolicy 中检查表达式的类型结果 |
5.1.17. .status.typeChecking
- 描述
- TypeChecking 包含在 ValidatingAdmissionPolicy 中检查表达式的类型结果
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 每个表达式的类型检查警告。 |
|
| ExpressionWarning 是一个以特定表达式为目标的警告信息。 |
5.1.18. .status.typeChecking.expressionWarnings
- 描述
- 每个表达式的类型检查警告。
- 类型
-
数组
5.1.19. .status.typeChecking.expressionWarnings[]
- 描述
- ExpressionWarning 是一个以特定表达式为目标的警告信息。
- 类型
-
object
- 必填
-
fieldRef
-
warning
-
属性 | 类型 | 描述 |
---|---|---|
|
| 引用表达式的字段的路径。例如,引用验证的第一个项的表达式为 "spec.validations[0].expression" |
|
| 以人类可读形式检查信息的类型内容。警告的每一行包含表达式被检查的类型,后跟编译器中的类型检查错误。 |
5.2. API 端点
可用的 API 端点如下:
/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies
-
DELETE
: 删除 ValidatingAdmissionPolicy 的集合 -
GET
: list 或 watch kind ValidatingAdmissionPolicy -
POST
: 创建一个 ValidatingAdmissionPolicy
-
/apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicies
-
GET
: 观察单个对 ValidatingAdmissionPolicy. deprecated: 使用带有列表操作的 'watch' 参数。
-
/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}
-
DELETE
: delete a ValidatingAdmissionPolicy -
GET
: 读取指定的 ValidatingAdmissionPolicy -
PATCH
: 部分更新指定的 ValidatingAdmissionPolicy -
PUT
:替换指定的 ValidatingAdmissionPolicy
-
/apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicies/{name}
-
GET
: 观察对类型为 ValidatingAdmissionPolicy. deprecated: 使用带有 list 操作的 'watch' 参数的更改,而是过滤成带有 'fieldSelector' 参数的单个项目。
-
/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status
-
GET
: 指定 ValidatingAdmissionPolicy 的读取状态 -
PATCH
: 部分更新指定 ValidatingAdmissionPolicy 的状态 -
PUT
:替换指定 ValidatingAdmissionPolicy 的状态
-
5.2.1. /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies
- HTTP 方法
-
DELETE
- 描述
- 删除 ValidatingAdmissionPolicy 集合
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出或监视类型为 ValidatingAdmissionPolicy 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 ValidatingAdmissionPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized | 空 |
5.2.2. /apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicies
- HTTP 方法
-
GET
- 描述
- 观察单个对 ValidatingAdmissionPolicy 列表的更改。已弃用:使用带有 list 操作的 'watch' 参数。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
5.2.3. /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}
参数 | 类型 | 描述 |
---|---|---|
|
| ValidatingAdmissionPolicy 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 ValidatingAdmissionPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
202 - Accepted |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 阅读指定的 ValidatingAdmissionPolicy
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 ValidatingAdmissionPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 ValidatingAdmissionPolicy
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
5.2.4. /apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicies/{name}
参数 | 类型 | 描述 |
---|---|---|
|
| ValidatingAdmissionPolicy 的名称 |
- HTTP 方法
-
GET
- 描述
- 观察对类型为 ValidatingAdmissionPolicy 的对象的更改。已弃用:使用带有 list 操作的 'watch' 参数,而是过滤到带有 'fieldSelector' 参数的单个项目。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
5.2.5. /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status
参数 | 类型 | 描述 |
---|---|---|
|
| ValidatingAdmissionPolicy 的名称 |
- HTTP 方法
-
GET
- 描述
- 指定 ValidatingAdmissionPolicy 的读取状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定 ValidatingAdmissionPolicy 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 ValidatingAdmissionPolicy 的状态
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized | 空 |
第 6 章 ValidatingAdmissionPolicyBinding [admissionregistration.k8s.io/v1]
- 描述
ValidatingAdmissionPolicyBinding 将 ValidatingAdmissionPolicy 与参数化资源绑定。ValidatingAdmissionPolicyBinding 和参数 CRD 定义了集群管理员如何为集群配置策略。
对于给定的准入请求,每个绑定都会导致评估 N 次,其中 N 是不使用 params 的策略/绑定,否则 N 是绑定选择的参数数。
策略的 CEL 表达式必须在最大 CEL 预算下计算计算 CEL 成本。策略的每个评估都会获得独立的 CEL 成本预算。添加/删除策略、绑定或参数会影响给定(策略、绑定、参数)组合是否在其自身的 CEL 预算内。
- 类型
-
对象
6.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。 | |
|
| ValidatingAdmissionPolicyBindingSpec 是 ValidatingAdmissionPolicyBinding 的规格。 |
6.1.1. .spec
- 描述
- ValidatingAdmissionPolicyBindingSpec 是 ValidatingAdmissionPolicyBinding 的规格。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| MatchResources 决定是否根据它是否满足匹配标准在对象上运行准入控制策略。排除规则优先于 include 规则(如果资源同时匹配,则会排除它) |
|
| ParamRef 描述了如何找到 params,以用作由策略绑定应用的规则表达式的输入。 |
|
| policyName 引用 ValidatingAdmissionPolicyBinding 绑定的 ValidatingAdmissionPolicy 名称。如果引用的资源不存在,则此绑定被视为无效,并将会被忽略。 |
|
| validationActions 声明如何强制实施引用的 ValidatingAdmissionPolicy 的 Validations。如果验证评估为 false,则总是根据这些操作强制执行它。 只有在 FailurePolicy 被设置为 Fail 时,由 ValidatingAdmissionPolicy 的 FailurePolicy 定义的失败才会根据这些操作强制实施,否则失败会被忽略。这包括编译错误、运行时错误和策略错误配置。 validationActions 被声明为一组操作值。顺序无关紧要。验证操作可能不包含同一操作的副本。 支持的操作值有: "deny"指定验证失败会导致请求被拒绝。 "warn"指定在 HTTP Warning 标头中向请求客户端报告验证失败,警告代码为 299。对于允许或拒绝的准入响应,可以发送警告。
"audit"指定在请求的已发布的审计事件中包含验证失败。审计事件将包含一个 客户端应该通过忽略任何无法识别的值来处理额外的值。 "拒绝"和"Warn"可能无法一起使用,因为组合需要在 API 响应正文和 HTTP 警告标头中重复验证失败。 必需。 |
6.1.2. .spec.matchResources
- 描述
- MatchResources 决定是否根据它是否满足匹配标准在对象上运行准入控制策略。排除规则优先于 include 规则(如果资源同时匹配,则会排除它)
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| ExcludeResourceRules 描述了 ValidatingAdmissionPolicy 不应关注哪些资源/子资源的操作。排除规则优先于 include 规则(如果资源同时匹配,则会排除它) |
|
| NamedRuleWithOperations 是 Operations 和 ResourceNames 的元组。 |
|
| matchPolicy 定义如何使用 "MatchResources" 列表来匹配传入的请求。允许的值是 "Exact" 或 "Equivalent"。
- exact :仅在与指定规则完全匹配时才匹配请求。例如,如果可通过 apps/v1、apps/v1beta1 和 extensions/v1beta1 修改部署,但 "rules" 仅包含
- equivalent :如果修改规则中列出的资源,即使通过另一个 API 组或版本来匹配请求。例如,如果可通过 apps/v1、apps/v1beta1 和 extensions/v1beta1 和 "rules" 修改部署,则只有 默认为 "Equivalent"
可能枚举值:- |
| namespaceSelector 决定是否根据该对象的命名空间与选择器匹配来在对象上运行准入控制策略。如果对象本身是命名空间,则在 object.metadata.labels 上执行匹配。如果对象是另一个集群范围的资源,则永远不会跳过策略。 例如,要在命名空间没有与 "0" 或 "1" 的 "runlevel" 关联的对象上运行 webhook;您将设置选择器,如下所示: "namespaceSelector": { "matchExpressions": [ { "key": "runlevel", "operator": "NotIn", "values": [ "0", "1" ] } ] } 如果您希望仅在任何命名空间与 "prod" 或 "staging" 关联的对象上运行策略;您将选择器设置为如下所示: "namespaceSelector": { "matchExpressions": [ { "key": "environment", "operator": "In", "values": [ "prod", "staging" ] } ] } 有关标签选择器的更多信息,请参阅 https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/。 默认为空 LabelSelector,它将匹配所有内容。 | |
| objectSelector 决定是否根据对象是否匹配标签运行验证。objectSelector 针对发送到 cel 验证的 oldObject 和 newObject 评估,如果任何一个对象与选择器匹配,则被视为匹配。一个 null 对象(如果是 create, 或 newObject in the delete 时),或没有标签(如 DeploymentRollback 或 PodProxyOptions 对象)的对象不会被认为匹配。只有在 webhook 是 opt-in 时才使用对象选择器,因为最终用户可以通过设置标签来跳过准入 Webhook。默认为空 LabelSelector,它将匹配所有内容。 | |
|
| resourceRules 描述了 ValidatingAdmissionPolicy 匹配的资源/资源什么操作。如果某个操作 与任何 规则匹配,则策略会监视它。 |
|
| NamedRuleWithOperations 是 Operations 和 ResourceNames 的元组。 |
6.1.3. .spec.matchResources.excludeResourceRules
- 描述
- ExcludeResourceRules 描述了 ValidatingAdmissionPolicy 不应关注哪些资源/子资源的操作。排除规则优先于 include 规则(如果资源同时匹配,则会排除它)
- 类型
-
数组
6.1.4. .spec.matchResources.excludeResourceRules[]
- 描述
- NamedRuleWithOperations 是 Operations 和 ResourceNames 的元组。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| apiGroups 是资源所属的 API 组。'' 是所有组。如果存在 '',则片段的长度必须是一。必需。 |
|
| APIVersions 是资源所属的 API 版本。'' 是所有版本。如果存在 '',则片段的长度必须是一。必需。 |
|
| 操作是准入 hook 为所有操作以及添加的任何准入操作( CREATE、UPDATE、DELETE、CONNECT 或 *)的操作。如果 '*' 存在,则片段的长度必须是一。必需。 |
|
| resourceNames 是一个可选的规则应用到的名称白名单。空集表示所有都会被允许。 |
|
| resources 是一组这个规则应用到的资源列表。 例如: 'pods' 表示 pod。'pods/log' 表示 pod 的日志子资源。' ' 表示所有资源,但不是子资源。'pods/' 表示所有 pod 子资源。'/scale' 表示所有 scale 子资源。'Suffix' 表示所有资源及其子资源。 如果存在通配符,验证规则将确保资源不会相互重叠。 根据封闭对象,可能无法允许子资源。必需。 |
|
| scope 指定此规则的范围。有效值为 "Cluster", "Namespaced", 和 "" "Cluster" 表示只有集群范围的资源与此规则匹配。命名空间 API 对象是集群范围的。"namespaced" 表示只有命名空间的资源将与此规则匹配。"" 表示没有范围限制。子资源与其父资源的范围匹配。默认为 "*"。 |
6.1.5. .spec.matchResources.resourceRules
- 描述
- resourceRules 描述了 ValidatingAdmissionPolicy 匹配的资源/资源什么操作。如果某个操作 与任何 规则匹配,则策略会监视它。
- 类型
-
数组
6.1.6. .spec.matchResources.resourceRules[]
- 描述
- NamedRuleWithOperations 是 Operations 和 ResourceNames 的元组。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| apiGroups 是资源所属的 API 组。'' 是所有组。如果存在 '',则片段的长度必须是一。必需。 |
|
| APIVersions 是资源所属的 API 版本。'' 是所有版本。如果存在 '',则片段的长度必须是一。必需。 |
|
| 操作是准入 hook 为所有操作以及添加的任何准入操作( CREATE、UPDATE、DELETE、CONNECT 或 *)的操作。如果 '*' 存在,则片段的长度必须是一。必需。 |
|
| resourceNames 是一个可选的规则应用到的名称白名单。空集表示所有都会被允许。 |
|
| resources 是一组这个规则应用到的资源列表。 例如: 'pods' 表示 pod。'pods/log' 表示 pod 的日志子资源。' ' 表示所有资源,但不是子资源。'pods/' 表示所有 pod 子资源。'/scale' 表示所有 scale 子资源。'Suffix' 表示所有资源及其子资源。 如果存在通配符,验证规则将确保资源不会相互重叠。 根据封闭对象,可能无法允许子资源。必需。 |
|
| scope 指定此规则的范围。有效值为 "Cluster", "Namespaced", 和 "" "Cluster" 表示只有集群范围的资源与此规则匹配。命名空间 API 对象是集群范围的。"namespaced" 表示只有命名空间的资源将与此规则匹配。"" 表示没有范围限制。子资源与其父资源的范围匹配。默认为 "*"。 |
6.1.7. .spec.paramRef
- 描述
- ParamRef 描述了如何找到 params,以用作由策略绑定应用的规则表达式的输入。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| name 是被引用的资源的名称。
必须设置
可以通过设置 |
|
|
namespace 是引用资源的命名空间。允许将搜索限制在特定命名空间中。适用于
通过在策略中指定命名空间范围的
- 如果
- 如果 |
|
|
允许的值是 必填 |
| 选择器可用于根据标签匹配多个 param 对象。provide selector: {} 以匹配 ParamKind 的所有资源。 如果找到多个参数,它们都会通过策略表达式进行评估,结果则会被同时评估。
必须设置 |
6.2. API 端点
可用的 API 端点如下:
/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings
-
DELETE
: delete collection of ValidatingAdmissionPolicyBinding -
GET
: list 或 watch kind ValidatingAdmissionPolicyBinding -
POST
: 创建一个 ValidatingAdmissionPolicyBinding
-
/apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicybindings
-
GET
: 观察单个对 ValidatingAdmissionPolicyBinding 列表的更改。已弃用:使用带列表操作的 'watch' 参数。
-
/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name}
-
DELETE
: delete a ValidatingAdmissionPolicyBinding -
GET
: 读取指定的 ValidatingAdmissionPolicyBinding -
PATCH
: 部分更新指定的 ValidatingAdmissionPolicyBinding -
PUT
:替换指定的 ValidatingAdmissionPolicyBinding
-
/apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicybindings/{name}
-
GET
: 观察对类型为 ValidatingAdmissionPolicyBinding 的对象的更改。已弃用:使用带有列表操作的 'watch' 参数,而是过滤为带有 'fieldSelector' 参数的单个项目。
-
6.2.1. /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings
- HTTP 方法
-
DELETE
- 描述
- 删除 ValidatingAdmissionPolicyBinding 集合
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出或监视类型为 ValidatingAdmissionPolicyBinding 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 ValidatingAdmissionPolicyBinding
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空 |
6.2.2. /apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicybindings
- HTTP 方法
-
GET
- 描述
- 观察单个对 ValidatingAdmissionPolicyBinding 列表的更改。已弃用:改为使用带有 list 操作的 'watch' 参数。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
6.2.3. /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name}
参数 | 类型 | 描述 |
---|---|---|
|
| ValidatingAdmissionPolicyBinding 的名称 |
- HTTP 方法
-
DELETE
- 描述
- delete a ValidatingAdmissionPolicyBinding
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
202 - Accepted |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 阅读指定的 ValidatingAdmissionPolicyBinding
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 ValidatingAdmissionPolicyBinding
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 ValidatingAdmissionPolicyBinding
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
6.2.4. /apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicybindings/{name}
参数 | 类型 | 描述 |
---|---|---|
|
| ValidatingAdmissionPolicyBinding 的名称 |
- HTTP 方法
-
GET
- 描述
- 观察对类型为 ValidatingAdmissionPolicyBinding 的对象的更改。已弃用:使用带有 list 操作的 'watch' 参数,而是过滤到带有 'fieldSelector' 参数的单个项目。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
第 7 章 ValidatingWebhookConfiguration [admissionregistration.k8s.io/v1]
- 描述
- ValidatingWebhookConfiguration 描述了 和 admission webhook 的配置,它们接受或拒绝和对象,而不更改它。
- 类型
-
对象
7.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。 | |
|
| Webhook 是 Webhook 以及受影响的资源和操作的列表。 |
|
| validatingwebhook 描述了准入 Webhook 以及它应用到的资源和操作。 |
7.1.1. .webhooks
- 描述
- Webhook 是 Webhook 以及受影响的资源和操作的列表。
- 类型
-
array
7.1.2. .webhooks[]
- 描述
- validatingwebhook 描述了准入 Webhook 以及它应用到的资源和操作。
- 类型
-
object
- 必填
-
name
-
clientConfig
-
sideEffects
-
admissionReviewVersions
-
属性 | 类型 | 描述 |
---|---|---|
|
|
admissionReviewVersions 是 Webhook 期望的首选 |
|
| WebhookClientConfig 包含与 webhook 进行 TLS 连接的信息 |
|
| failurePolicy 定义如何处理准入端点中未识别的错误 - 允许的值是 Ignore 或 Fail。默认为 Fail。
可能枚举值: - |
|
| MatchConditions 是发送到此 webhook 的请求必须满足的条件列表。匹配条件过滤请求,它们已与 rules、namespaceSelector 和 objectSelector 匹配。空 matchConditions 列表与所有请求匹配。允许最多有 64 个匹配条件。 完全匹配逻辑为(按顺序):1。如果 ANY matchCondition 评估为 FALSE,则会跳过 Webhook。2.如果 ALL matchConditions 评估为 TRUE,则会调用 Webhook。3.如果任何 matchCondition 评估为错误(但没有是 FALSE):- 如果 failurePolicy=Fail,拒绝请求 - If failurePolicy=Ignore,则忽略错误,并跳过 Webhook |
|
| MatchCondition 代表一个条件,需要满足该条件才能将请求发送到 webhook。 |
|
| matchPolicy 定义如何使用 "rules" 列表来匹配传入的请求。允许的值是 "Exact" 或 "Equivalent"。
- exact :仅在与指定规则完全匹配时才匹配请求。例如,如果可通过 apps/v1、apps/v1beta1 和 extensions/v1beta1 修改部署,但 "rules" 仅包含
- equivalent :如果修改规则中列出的资源,即使通过另一个 API 组或版本来匹配请求。例如,如果可通过 apps/v1、apps/v1beta1 和 extensions/v1beta1 和 "rules" 修改部署,则只有 默认为 "Equivalent"
可能枚举值:- |
|
| 准入 Webhook 的名称。名称应该是完全限定的,如 imagepolicy.kubernetes.io,其中 "imagepolicy" 是 webhook 的名称,kubernetes.io 是机构的名称。必需。 |
| namespaceSelector 决定是否根据该对象的命名空间与选择器匹配而在对象上运行 Webhook。如果对象本身是命名空间,则在 object.metadata.labels 上执行匹配。如果对象是另一个集群范围的资源,则永远不会跳过 Webhook。 例如,要在命名空间没有与 "0" 或 "1" 的 "runlevel" 关联的对象上运行 webhook;您将设置选择器,如下所示: "namespaceSelector": { "matchExpressions": [ { "key": "runlevel", "operator": "NotIn", "values": [ "0", "1" ] } ] } 如果您希望仅在任何命名空间与 "prod" 或 "staging" 关联的对象上运行 webhook;您将按如下方式设置选择器: "namespaceSelector": { "matchExpressions": [ { "key": "environment", "operator": "In", "values": [ "prod", "staging" ] } ] } 有关标签选择器的更多信息,请参阅 https://kubernetes.io/docs/concepts/overview/working-with-objects/labels。 默认为空 LabelSelector,它将匹配所有内容。 | |
| objectSelector 决定是否根据对象是否匹配标签运行 webhook。将针对要发送到 webhook 的 oldObject 和 newObject 评估 objectSelector,并在其中一个对象与选择器匹配时被视为匹配。一个 null 对象(如果是 create, 或 newObject in the delete 时),或没有标签(如 DeploymentRollback 或 PodProxyOptions 对象)的对象不会被认为匹配。只有在 webhook 是 opt-in 时才使用对象选择器,因为最终用户可以通过设置标签来跳过准入 Webhook。默认为空 LabelSelector,它将匹配所有内容。 | |
|
| 规则描述了 webhook 对资源/子资源执行的操作。如果 webhook 匹配任何 规则,则 webhook 会小心操作。但是,为了防止 ValidatingAdmissionWebhooks 和 MutatingAdmissionWebhooks 将集群置于状态,在没有完全禁用插件的情况下,无法完全禁用插件,ValidatingAdmissionWebhooks 和 MutatingAdmissionWebhooks 不会对 ValidatingWebhookConfiguration 和 MutatingWebhookConfiguration 对象的准入请求调用。 |
|
| RuleWithOperations 是 Operations 和 Resources 的元组。建议确保所有元组扩展都有效。 |
|
| SideEffects 说明此 webhook 是否有副作用。可接受值为: None, NoneOnDryRun (通过 v1beta1 创建的webhook 也可能会指定 some 或 Unknown)。具有副作用的 Webhook 必须实施协调系统,因为准入链中的未来步骤可能会拒绝请求,因此需要撤销副作用。如果带有 dryRun 属性的请求与带有 sideEffects == Unknown 或 some 的 webhook 匹配,则会自动拒绝请求。
可能枚举值: - |
|
| timeoutSeconds 指定此 webhook 的超时时间。在超时通过后,webhook 调用将被忽略,或者 API 调用将根据失败策略失败。超时值必须在 1 到 30 秒之间。默认值为 10 秒。 |
7.1.3. .webhooks[].clientConfig
- 描述
- WebhookClientConfig 包含与 webhook 进行 TLS 连接的信息
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
|
|
|
| ServiceReference 包含对 Service.legacy.k8s.io 的引用 |
|
|
URL 以标准 URL 格式提供 webhook 的位置(
请注意,使用 方案必须是 "https";URL 必须以 "https://" 开头。 路径是可选的,如果存在可以是 URL 中允许的字符串。您可以使用路径将任意字符串传递给 webhook,例如集群标识符。 不允许使用用户或基本身份验证,如 "user:password@"。不允许 slices ("""…")和查询参数("?…")。 |
7.1.4. .webhooks[].clientConfig.service
- 描述
- ServiceReference 包含对 Service.legacy.k8s.io 的引用
- 类型
-
object
- 必填
-
namespace
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
如果指定,托管 Webhook 的服务上的端口。默认为 443,以便向后兼容。 |
7.1.5. .webhooks[].matchConditions
- 描述
MatchConditions 是发送到此 webhook 的请求必须满足的条件列表。匹配条件过滤请求,它们已与 rules、namespaceSelector 和 objectSelector 匹配。空 matchConditions 列表与所有请求匹配。允许最多有 64 个匹配条件。
完全匹配逻辑为(按顺序):1。如果 ANY matchCondition 评估为 FALSE,则会跳过 Webhook。2.如果 ALL matchConditions 评估为 TRUE,则会调用 Webhook。3.如果任何 matchCondition 评估为错误(但没有是 FALSE):- 如果 failurePolicy=Fail,拒绝请求 - If failurePolicy=Ignore,则忽略错误,并跳过 Webhook
- 类型
-
数组
7.1.6. .webhooks[].matchConditions[]
- 描述
- MatchCondition 代表一个条件,需要满足该条件才能将请求发送到 webhook。
- 类型
-
object
- 必填
-
名称
-
expression
-
属性 | 类型 | 描述 |
---|---|---|
|
| expression 代表将由 CEL 评估的表达式。必须评估 bool。CEL 表达式可以访问 AdmissionRequest 和 Authorizer 的内容,并组织成 CEL 变量: 'object' - 来自传入请求的对象。对于 DELETE 请求,值为 null。'oldObject' - 现有对象。CREATE 请求的值是 null。'request' - 准入请求的属性(/pkg/apis/admission/types.go:AdmissionRequest)'authorizer' - A CEL Authorizer。可用于对请求的主体(用户或服务帐户)执行授权检查。请参阅 https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz 'authorizer.requestResource' - 从 'authorizer' 构建并使用请求资源配置的 CEL ResourceCheck。有关 CEL 的文档 :https://kubernetes.io/docs/reference/using-api/cel/ 必需。 |
|
| name 是此匹配条件的标识符,用于战略合并 MatchConditions,并提供用于日志记录目的的标识符。相关表达式的描述性应为一个好名称。name 必须是包括字母数字字符、'-'、'' 或 '.' 的合格名称,且必须以字母数字字符开头和结尾(例如。'MyName', 或 'my.name', 或 '123-abc', 用于验证的 regex 为 '([A-Za-z0-9][-A-Za-z0-9.]*)?[A-Za-z0-9]'),带有可选的 DNS 子域前缀和 '/'(如 'example.com/MyName') 必需。 |
7.1.7. .webhooks[].rules
- 描述
- 规则描述了 webhook 对资源/子资源执行的操作。如果 webhook 匹配任何 规则,则 webhook 会小心操作。但是,为了防止 ValidatingAdmissionWebhooks 和 MutatingAdmissionWebhooks 将集群置于状态,在没有完全禁用插件的情况下,无法完全禁用插件,ValidatingAdmissionWebhooks 和 MutatingAdmissionWebhooks 不会对 ValidatingWebhookConfiguration 和 MutatingWebhookConfiguration 对象的准入请求调用。
- 类型
-
array
7.1.8. .webhooks[].rules[]
- 描述
- RuleWithOperations 是 Operations 和 Resources 的元组。建议确保所有元组扩展都有效。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| apiGroups 是资源所属的 API 组。'' 是所有组。如果存在 '',则片段的长度必须是一。必需。 |
|
| APIVersions 是资源所属的 API 版本。'' 是所有版本。如果存在 '',则片段的长度必须是一。必需。 |
|
| 操作是准入 hook 为所有操作以及添加的任何准入操作( CREATE、UPDATE、DELETE、CONNECT 或 *)的操作。如果 '*' 存在,则片段的长度必须是一。必需。 |
|
| resources 是一组这个规则应用到的资源列表。 例如: 'pods' 表示 pod。'pods/log' 表示 pod 的日志子资源。' ' 表示所有资源,但不是子资源。'pods/' 表示所有 pod 子资源。'/scale' 表示所有 scale 子资源。'Suffix' 表示所有资源及其子资源。 如果存在通配符,验证规则将确保资源不会相互重叠。 根据封闭对象,可能无法允许子资源。必需。 |
|
| scope 指定此规则的范围。有效值为 "Cluster", "Namespaced", 和 "" "Cluster" 表示只有集群范围的资源与此规则匹配。命名空间 API 对象是集群范围的。"namespaced" 表示只有命名空间的资源将与此规则匹配。"" 表示没有范围限制。子资源与其父资源的范围匹配。默认为 "*"。 |
7.2. API 端点
可用的 API 端点如下:
/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations
-
DELETE
: 删除 ValidatingWebhookConfiguration 集合 -
GET
: list 或 watch kind ValidatingWebhookConfiguration -
POST
:创建 ValidatingWebhookConfiguration
-
/apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations
-
GET
: 观察单个对 ValidatingWebhookConfiguration 列表的更改。已弃用:改为使用 'watch' 参数和列表操作。
-
/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name}
-
DELETE
: 删除 ValidatingWebhookConfiguration -
GET
: 读取指定的 ValidatingWebhookConfiguration -
PATCH
: 部分更新指定的 ValidatingWebhookConfiguration -
PUT
:替换指定的 ValidatingWebhookConfiguration
-
/apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations/{name}
-
GET
: 观察对类型为 ValidatingWebhookConfiguration 的对象的更改。已弃用:使用带有 list 操作的 'watch' 参数,而是过滤为带有 'fieldSelector' 参数的单个项目。
-
7.2.1. /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations
- HTTP 方法
-
DELETE
- 描述
- 删除 ValidatingWebhookConfiguration 集合
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 列出或监视类型为 ValidatingWebhookConfiguration 的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
POST
- 描述
- 创建 ValidatingWebhookConfiguration
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
202 - Accepted | |
401 - Unauthorized | 空 |
7.2.2. /apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations
- HTTP 方法
-
GET
- 描述
- 观察单个对 ValidatingWebhookConfiguration 列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
7.2.3. /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name}
参数 | 类型 | 描述 |
---|---|---|
|
| ValidatingWebhookConfiguration 的名称 |
- HTTP 方法
-
DELETE
- 描述
- 删除 ValidatingWebhookConfiguration
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
202 - Accepted |
|
401 - Unauthorized | 空 |
- HTTP 方法
-
GET
- 描述
- 阅读指定的 ValidatingWebhookConfiguration
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PATCH
- 描述
- 部分更新指定的 ValidatingWebhookConfiguration
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
- HTTP 方法
-
PUT
- 描述
- 替换指定的 ValidatingWebhookConfiguration
参数 | 类型 | 描述 |
---|---|---|
|
| 出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理 |
|
| fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK | |
201 - Created | |
401 - Unauthorized | 空 |
7.2.4. /apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations/{name}
参数 | 类型 | 描述 |
---|---|---|
|
| ValidatingWebhookConfiguration 的名称 |
- HTTP 方法
-
GET
- 描述
- 观察对类型为 ValidatingWebhookConfiguration 的对象的更改。已弃用:使用带有 list 操作的 'watch' 参数,而是过滤到带有 'fieldSelector' 参数的单个项目。
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - Unauthorized | 空 |
Legal Notice
Copyright © 2024 Red Hat, Inc.
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.