30.3. ValidatingWebhookConfiguration [admissionregistration.k8s.io/v1]


描述
ValidatingWebhookConfiguration 描述了 和 admission webhook 的配置,它们接受或拒绝和对象,而不更改它。
类型
对象

30.3.1. 规格

属性类型描述

apiVersion

字符串

APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind

字符串

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

标准对象元数据;更多信息 :https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata。

Webhook

array

Webhook 是 Webhook 以及受影响的资源和操作的列表。

webhooks[]

对象

validatingwebhook 描述了准入 Webhook 以及它应用到的资源和操作。

30.3.1.1. .webhooks

描述
Webhook 是 Webhook 以及受影响的资源和操作的列表。
类型
array

30.3.1.2. .webhooks[]

描述
validatingwebhook 描述了准入 Webhook 以及它应用到的资源和操作。
类型
object
必填
  • name
  • clientConfig
  • sideEffects
  • admissionReviewVersions
属性类型描述

admissionReviewVersions

数组(字符串)

admissionReviewVersions 是 Webhook 期望的首选 AdmissionReview 版本的顺序列表。API 服务器将尝试使用支持列表中的第一个版本。如果 API 服务器支持此列表中没有指定的版本,则此对象的验证会失败。如果持久的 webhook 配置指定了允许的版本,且不包含任何 API 服务器已知的版本,则对 Webhook 的调用将失败,并受失败策略的影响。

clientConfig

对象

WebhookClientConfig 包含与 webhook 进行 TLS 连接的信息

failurePolicy

字符串

failurePolicy 定义如何处理准入端点中未识别的错误 - 允许的值是 Ignore 或 Fail。默认为 Fail。

可能枚举值: - "Fail" 表示调用 Webhook 的错误会导致准入失败。- "Ignore" 表示调用 Webhook 的错误会被忽略。

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

这是一个 alpha 功能,由 AdmissionWebhookMatchConditions 功能门管理。

matchConditions[]

object

MatchCondition 代表一个条件,需要满足该条件才能将请求发送到 webhook。

matchPolicy

字符串

matchPolicy 定义如何使用 "rules" 列表来匹配传入的请求。允许的值是 "Exact" 或 "Equivalent"。

- exact :仅在与指定规则完全匹配时才匹配请求。例如,如果可通过 apps/v1、apps/v1beta1 和 extensions/v1beta1 修改部署,但 "rules" 仅包含 apiGroups:["apps"], apiVersions:["v1"],resources: ["deployments"],对 apps/v1beta1 或 extensions/v1beta1 的请求不会发送到 webhook。

- equivalent :如果修改规则中列出的资源,即使通过另一个 API 组或版本来匹配请求。例如,如果可通过 apps/v1、apps/v1beta1 和 extensions/v1beta1 和 "rules" 修改部署,则只有 apiGroups:["apps"], apiVersions:["v1"],resources: ["deployments"],请求 apps/v1beta1 或 extensions/v1beta1 将转换为 apps/v1beta1,并发送到 webhook。

默认为 "Equivalent"

可能枚举值:- "Equivalent" 表示如果请求通过另一个 API 组或版本修改规则中列出的资源,则应只将请求发送到 webhook。

name

字符串

准入 Webhook 的名称。名称应该是完全限定的,如 imagepolicy.kubernetes.io,其中 "imagepolicy" 是 webhook 的名称,kubernetes.io 是机构的名称。必需。

namespaceSelector

labelSelector

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

labelSelector

objectSelector 决定是否根据对象是否匹配标签运行 webhook。将针对要发送到 webhook 的 oldObject 和 newObject 评估 objectSelector,并在其中一个对象与选择器匹配时被视为匹配。一个 null 对象(如果是 create, 或 newObject in the delete 时),或没有标签(如 DeploymentRollback 或 PodProxyOptions 对象)的对象不会被认为匹配。只有在 webhook 是 opt-in 时才使用对象选择器,因为最终用户可以通过设置标签来跳过准入 Webhook。默认为空 LabelSelector,它将匹配所有内容。

rules

array

规则描述了 webhook 对资源/子资源执行的操作。如果 webhook 匹配任何 规则,则 webhook 会小心操作。但是,为了防止 ValidatingAdmissionWebhooks 和 MutatingAdmissionWebhooks 将集群置于状态,在没有完全禁用插件的情况下,无法完全禁用插件,ValidatingAdmissionWebhooks 和 MutatingAdmissionWebhooks 不会对 ValidatingWebhookConfiguration 和 MutatingWebhookConfiguration 对象的准入请求调用。

rules[]

对象

RuleWithOperations 是 Operations 和 Resources 的元组。建议确保所有元组扩展都有效。

sideEffects

字符串

SideEffects 说明此 webhook 是否有副作用。可接受值为: None, NoneOnDryRun (通过 v1beta1 创建的webhook 也可能会指定 some 或 Unknown)。具有副作用的 Webhook 必须实施协调系统,因为准入链中的未来步骤可能会拒绝请求,因此需要撤销副作用。如果带有 dryRun 属性的请求与带有 sideEffects == Unknown 或 some 的 webhook 匹配,则会自动拒绝请求。

可能枚举值: - "None" 表示调用 Webhook 将没有副作用。- "NoneOnDryRun" 表示调用 Webhook 可能具有副作用,但如果检查的请求具有 dry-run 属性,则侧效果将会被禁止。"Some" 表示调用 Webhook 可能具有副作用。如果具有 dry-run 属性的请求会触发对此 webhook 的调用,则请求将失败。- "Unknown" 表示没有已知调用 webhook 的副作用的信息。如果具有 dry-run 属性的请求会触发对此 webhook 的调用,则请求将失败。

timeoutSeconds

整数

timeoutSeconds 指定此 webhook 的超时时间。在超时通过后,webhook 调用将被忽略,或者 API 调用将根据失败策略失败。超时值必须在 1 到 30 秒之间。默认值为 10 秒。

30.3.1.3. .webhooks[].clientConfig

描述
WebhookClientConfig 包含与 webhook 进行 TLS 连接的信息
类型
object
属性类型描述

caBundle

字符串

cabundle 是 PEM 编码的 CA 捆绑包,它将用于验证 webhook 的服务器证书。如果未指定,则使用 apiserver 上的系统信任 root。

service

对象

ServiceReference 包含对 Service.legacy.k8s.io 的引用

url

字符串

URL 以标准 URL 格式提供 webhook 的位置(scheme://host:port/path)。必须指定 url 或服务 中的一个。

主机 不应引用集群中运行的服务;使用 service 字段。在一些 apiservers 中,主机可以通过外部 DNS 解析(例如,kube-apiserver 无法解析集群内部 DNS,因为这将是一个分层违反情况)。主机 也可以是 IP 地址。

请注意,使用 localhost127.0.0.1 作为主机有风险,除非您特别注意在运行 apiserver 的主机上运行此 webhook,这可能需要对此 webhook 发出调用。此类安装可能不可移植,即无法在新集群中启动。

方案必须是 "https";URL 必须以 "https://" 开头。

路径是可选的,如果存在可以是 URL 中允许的字符串。您可以使用路径将任意字符串传递给 webhook,例如集群标识符。

不允许使用用户或基本身份验证,如 "user:password@"。不允许 slices ("""…​")和查询参数("?…​")。

30.3.1.4. .webhooks[].clientConfig.service

描述
ServiceReference 包含对 Service.legacy.k8s.io 的引用
类型
object
必填
  • namespace
  • name
属性类型描述

name

字符串

name 是服务的名称。必填

namespace

字符串

namespace 是服务的命名空间。必填

path

字符串

path 是一个可选的 URL 路径,将在此服务的任何请求中发送。

port

整数

如果指定,托管 Webhook 的服务上的端口。默认为 443,以便向后兼容。port 应该是有效的端口号(1-65535,含)。

30.3.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

这是一个 alpha 功能,由 AdmissionWebhookMatchConditions 功能门管理。

类型
数组

30.3.1.6. .webhooks[].matchConditions[]

描述
MatchCondition 代表一个条件,需要满足该条件才能将请求发送到 webhook。
类型
object
必填
  • name
  • expression
属性类型描述

expression

string

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

string

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')

必需。

30.3.1.7. .webhooks[].rules

描述
规则描述了 webhook 对资源/子资源执行的操作。如果 webhook 匹配任何 规则,则 webhook 会小心操作。但是,为了防止 ValidatingAdmissionWebhooks 和 MutatingAdmissionWebhooks 将集群置于状态,在没有完全禁用插件的情况下,无法完全禁用插件,ValidatingAdmissionWebhooks 和 MutatingAdmissionWebhooks 不会对 ValidatingWebhookConfiguration 和 MutatingWebhookConfiguration 对象的准入请求调用。
类型
array

30.3.1.8. .webhooks[].rules[]

描述
RuleWithOperations 是 Operations 和 Resources 的元组。建议确保所有元组扩展都有效。
类型
object
属性类型描述

apiGroups

数组(字符串)

apiGroups 是资源所属的 API 组。'' 是所有组。如果存在 '',则片段的长度必须是一。必需。

apiVersions

数组(字符串)

APIVersions 是资源所属的 API 版本。'' 是所有版本。如果存在 '',则片段的长度必须是一。必需。

操作

数组(字符串)

操作是准入 hook 为所有操作以及添加的任何准入操作( CREATE、UPDATE、DELETE、CONNECT 或 *)的操作。如果 '*' 存在,则片段的长度必须是一。必需。

资源

数组(字符串)

resources 是一组这个规则应用到的资源列表。

例如: 'pods' 表示 pod。'pods/log' 表示 pod 的日志子资源。' ' 表示所有资源,但不是子资源。'pods/' 表示所有 pod 子资源。'/scale' 表示所有 scale 子资源。'Suffix' 表示所有资源及其子资源。

如果存在通配符,验证规则将确保资源不会相互重叠。

根据封闭对象,可能无法允许子资源。必需。

scope

字符串

scope 指定此规则的范围。有效值为 "Cluster", "Namespaced", 和 "" "Cluster" 表示只有集群范围的资源与此规则匹配。命名空间 API 对象是集群范围的。"namespaced" 表示只有命名空间的资源将与此规则匹配。"" 表示没有范围限制。子资源与其父资源的范围匹配。默认为 "*"。

30.3.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' 参数的单个项目。

30.3.2.1. /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations

表 30.27. 全局查询参数
参数类型描述

pretty

字符串

如果为 'true',则输出会经过 pretty print 处理。

HTTP 方法
DELETE
描述
删除 ValidatingWebhookConfiguration 集合
表 30.28. 查询参数
参数类型描述

继续

字符串

从服务器检索更多结果时,应设置 continue 选项。由于这个值是定义的服务器,因此客户端只能使用之前查询结果中的 continue 值,并带有相同的查询参数(除 continue 值除外),因此服务器可能会拒绝它无法识别的值。如果指定的 continue 值不再有效,无论是因为过期时间(通常为 5 到十五分钟)还是服务器上的配置更改,服务器将会与继续令牌一起响应 410 ResourceExpired 错误。如果客户端需要一致的列表,它必须重启其列表,而无需 continue 字段。否则,客户端可能会发送另一个带有 410 错误接收的令牌的列表请求,服务器将以从下一个密钥开始开始的列表响应,但从最新的快照开始,这与上一个列表结果中不一致 - 在第一个列表请求后将包含在响应中,只要它们的密钥位于 "next key" 后。

当 watch 为 true 时不支持此字段。客户端可以从服务器返回的最后一个 resourceVersion 值开始监视,而不丢失任何修改。

dryRun

字符串

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldSelector

字符串

一个选择器,用于限制其字段返回的对象列表。默认为任何内容。

gracePeriodSeconds

整数

应该删除对象前的持续时间(以秒为单位)。值必须是非负整数。值为零表示立即删除。如果这个值是 nil,则会使用指定类型的默认宽限期。如果没有指定,则默认为每个对象值。零表示立即删除。

labelSelector

字符串

一个选择器,用于限制其标签返回的对象列表。默认为任何内容。

limit

整数

limit 是列表调用返回的最大响应数。如果存在更多项目,服务器会将列表元数据上的"continue"字段设为可用于同一初始查询的值,以检索下一组结果。如果过滤所有请求的对象,则设置限制可能会返回少于请求项目数量(最多为零项),并且客户端只应使用 continue 字段的存在,以确定是否有更多结果可用。服务器可能会选择不支持 limit 参数,并返回所有可用的结果。如果指定了 limit,并且 continue 字段为空,客户端可能会假定没有更多结果可用。如果 watch 为 true,则不支持此字段。

服务器保证,在使用时返回的对象将与在没有限制限制的情况下发出单个列表调用相同 - 也就是说,在发出第一个请求后没有创建、修改或删除对象。这有时被称为一致的快照,并确保使用限制来接收非常大结果的较小的块的客户端可确保它们看到所有可能的对象。如果在块列表中更新对象,则返回第一个列表结果时存在的对象版本。

orphanDependents

布尔值

弃用:请使用 PropagationPolicy,此字段将在 1.7 中弃用。如果依赖对象是孤立的。如果为 true/false,则 "orphan" finalizer 将添加到对象的终结器列表中。可以设置此字段或 PropagationPolicy,但不能同时设置。

propagationPolicy

字符串

是否执行垃圾回收。可以设置此字段或 OrphanDependents,但不能同时设置两者。默认策略由 metadata.finalizers 和特定于资源的默认策略中设置的现有终结器决定。可接受的值有: 'Orphan' - 孤立的依赖项; 'Background' - 允许垃圾收集器删除依赖项,"Foreground' - 删除前台所有依赖的级联策略。

resourceVersion

字符串

resourceVersion 对可能给请求提供服务的资源版本设置一个约束。详情请查看 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions

默认为未设置

resourceVersionMatch

字符串

resourceVersionMatch 决定如何将 resourceVersion 应用到列表调用。强烈建议您为设置 resourceVersion 的 list 调用设置 resourceVersionMatch。详情请参阅 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions

默认为未设置

sendInitialEvents

布尔值

'sendInitialEvents=true' 可以与 'watch=true' 一起设置。在这种情况下,观察流将以复合事件开头,以生成集合中对象的当前状态。发送完所有这些事件后,将发送合成"Bookmark"事件。书签将报告与对象集合对应的 ResourceVersion (RV),并使用 '"k8s.io/initial-events-end": "true" 注解进行标记。之后,监视流将照常进行,从而向监视的对象发送与更改对应的监视事件(按 RV 排序)。

当设置 'sendInitialEvents' 选项时,我们还需要设置 'resourceVersionMatch' 选项。watch 请求的语义如下: - 'resourceVersionMatch' = NotOlderThan 被解释为"data"作为提供的 'resourceVersion'",当状态同步到 'resourceVersion' 时,书签 事件至少作为 ListOptions 提供的 "resourceVersion'。如果未设置 'resourceVersion',这会被解释为 "consistent read",当请求开始处理时至少会发送书签事件。- 'resourceVersionMatch' 设置为任何其他值或未设置 Invalid 错误。

如果 'resourceVersion=""' 或 'resourceVersion="0"' (出于向后兼容原因)和 false,则默认为 true。

timeoutSeconds

整数

列表/watch 调用的超时。这限制了调用的持续时间,无论任何活动或不活跃。

表 30.29. 主体参数
参数类型描述

正文(body)

DeleteOptions 模式

 
表 30.30. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
列出或监视类型为 ValidatingWebhookConfiguration 的对象
表 30.31. 查询参数
参数类型描述

allowWatchBookmarks

布尔值

allowWatchBookmarks请求类型为“BOOKMARK”的监视事件。没有实现书签的服务器可能会忽略这个标志和书签,由服务器自由裁量发送。客户端不应假设书签在任何特定间隔返回,也不会假定服务器在会话期间发送任何 BOOKMARK 事件。如果这不是监视,则忽略此字段。

继续

字符串

从服务器检索更多结果时,应设置 continue 选项。由于这个值是定义的服务器,因此客户端只能使用之前查询结果中的 continue 值,并带有相同的查询参数(除 continue 值除外),因此服务器可能会拒绝它无法识别的值。如果指定的 continue 值不再有效,无论是因为过期时间(通常为 5 到十五分钟)还是服务器上的配置更改,服务器将会与继续令牌一起响应 410 ResourceExpired 错误。如果客户端需要一致的列表,它必须重启其列表,而无需 continue 字段。否则,客户端可能会发送另一个带有 410 错误接收的令牌的列表请求,服务器将以从下一个密钥开始开始的列表响应,但从最新的快照开始,这与上一个列表结果中不一致 - 在第一个列表请求后将包含在响应中,只要它们的密钥位于 "next key" 后。

当 watch 为 true 时不支持此字段。客户端可以从服务器返回的最后一个 resourceVersion 值开始监视,而不丢失任何修改。

fieldSelector

字符串

一个选择器,用于限制其字段返回的对象列表。默认为任何内容。

labelSelector

字符串

一个选择器,用于限制其标签返回的对象列表。默认为任何内容。

limit

整数

limit 是列表调用返回的最大响应数。如果存在更多项目,服务器会将列表元数据上的"continue"字段设为可用于同一初始查询的值,以检索下一组结果。如果过滤所有请求的对象,则设置限制可能会返回少于请求项目数量(最多为零项),并且客户端只应使用 continue 字段的存在,以确定是否有更多结果可用。服务器可能会选择不支持 limit 参数,并返回所有可用的结果。如果指定了 limit,并且 continue 字段为空,客户端可能会假定没有更多结果可用。如果 watch 为 true,则不支持此字段。

服务器保证,在使用时返回的对象将与在没有限制限制的情况下发出单个列表调用相同 - 也就是说,在发出第一个请求后没有创建、修改或删除对象。这有时被称为一致的快照,并确保使用限制来接收非常大结果的较小的块的客户端可确保它们看到所有可能的对象。如果在块列表中更新对象,则返回第一个列表结果时存在的对象版本。

resourceVersion

字符串

resourceVersion 对可能给请求提供服务的资源版本设置一个约束。详情请查看 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions

默认为未设置

resourceVersionMatch

字符串

resourceVersionMatch 决定如何将 resourceVersion 应用到列表调用。强烈建议您为设置 resourceVersion 的 list 调用设置 resourceVersionMatch。详情请参阅 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions

默认为未设置

sendInitialEvents

布尔值

'sendInitialEvents=true' 可以与 'watch=true' 一起设置。在这种情况下,观察流将以复合事件开头,以生成集合中对象的当前状态。发送完所有这些事件后,将发送合成"Bookmark"事件。书签将报告与对象集合对应的 ResourceVersion (RV),并使用 '"k8s.io/initial-events-end": "true" 注解进行标记。之后,监视流将照常进行,从而向监视的对象发送与更改对应的监视事件(按 RV 排序)。

当设置 'sendInitialEvents' 选项时,我们还需要设置 'resourceVersionMatch' 选项。watch 请求的语义如下: - 'resourceVersionMatch' = NotOlderThan 被解释为"data"作为提供的 'resourceVersion'",当状态同步到 'resourceVersion' 时,书签 事件至少作为 ListOptions 提供的 "resourceVersion'。如果未设置 'resourceVersion',这会被解释为 "consistent read",当请求开始处理时至少会发送书签事件。- 'resourceVersionMatch' 设置为任何其他值或未设置 Invalid 错误。

如果 'resourceVersion=""' 或 'resourceVersion="0"' (出于向后兼容原因)和 false,则默认为 true。

timeoutSeconds

整数

列表/watch 调用的超时。这限制了调用的持续时间,无论任何活动或不活跃。

watch

布尔值

观察对所描述资源的更改,并将它们作为添加、更新和删除通知的流返回。指定 resourceVersion。

表 30.32. HTTP 响应
HTTP 代码响应正文

200 - OK

ValidatingWebhookConfigurationList 模式

401 - Unauthorized

HTTP 方法
POST
描述
创建 ValidatingWebhookConfiguration
表 30.33. 查询参数
参数类型描述

dryRun

字符串

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldManager

字符串

fieldmanager 是与进行这些更改的参与者或实体相关联的名称。该值必须小于或是 128 个字符长,且仅包含可打印的字符,如 https://golang.org/pkg/unicode/#IsPrint 所定义的那样。

fieldValidation

string

fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。

表 30.34. 主体参数
参数类型描述

正文(body)

ValidatingWebhookConfiguration 模式

 
表 30.35. HTTP 响应
HTTP 代码响应正文

200 - OK

ValidatingWebhookConfiguration 模式

201 - Created

ValidatingWebhookConfiguration 模式

202 - Accepted

ValidatingWebhookConfiguration 模式

401 - Unauthorized

30.3.2.2. /apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations

表 30.36. 全局查询参数
参数类型描述

allowWatchBookmarks

布尔值

allowWatchBookmarks请求类型为“BOOKMARK”的监视事件。没有实现书签的服务器可能会忽略这个标志和书签,由服务器自由裁量发送。客户端不应假设书签在任何特定间隔返回,也不会假定服务器在会话期间发送任何 BOOKMARK 事件。如果这不是监视,则忽略此字段。

继续

字符串

从服务器检索更多结果时,应设置 continue 选项。由于这个值是定义的服务器,因此客户端只能使用之前查询结果中的 continue 值,并带有相同的查询参数(除 continue 值除外),因此服务器可能会拒绝它无法识别的值。如果指定的 continue 值不再有效,无论是因为过期时间(通常为 5 到十五分钟)还是服务器上的配置更改,服务器将会与继续令牌一起响应 410 ResourceExpired 错误。如果客户端需要一致的列表,它必须重启其列表,而无需 continue 字段。否则,客户端可能会发送另一个带有 410 错误接收的令牌的列表请求,服务器将以从下一个密钥开始开始的列表响应,但从最新的快照开始,这与上一个列表结果中不一致 - 在第一个列表请求后将包含在响应中,只要它们的密钥位于 "next key" 后。

当 watch 为 true 时不支持此字段。客户端可以从服务器返回的最后一个 resourceVersion 值开始监视,而不丢失任何修改。

fieldSelector

字符串

一个选择器,用于限制其字段返回的对象列表。默认为任何内容。

labelSelector

字符串

一个选择器,用于限制其标签返回的对象列表。默认为任何内容。

limit

整数

limit 是列表调用返回的最大响应数。如果存在更多项目,服务器会将列表元数据上的"continue"字段设为可用于同一初始查询的值,以检索下一组结果。如果过滤所有请求的对象,则设置限制可能会返回少于请求项目数量(最多为零项),并且客户端只应使用 continue 字段的存在,以确定是否有更多结果可用。服务器可能会选择不支持 limit 参数,并返回所有可用的结果。如果指定了 limit,并且 continue 字段为空,客户端可能会假定没有更多结果可用。如果 watch 为 true,则不支持此字段。

服务器保证,在使用时返回的对象将与在没有限制限制的情况下发出单个列表调用相同 - 也就是说,在发出第一个请求后没有创建、修改或删除对象。这有时被称为一致的快照,并确保使用限制来接收非常大结果的较小的块的客户端可确保它们看到所有可能的对象。如果在块列表中更新对象,则返回第一个列表结果时存在的对象版本。

pretty

字符串

如果为 'true',则输出会经过 pretty print 处理。

resourceVersion

字符串

resourceVersion 对可能给请求提供服务的资源版本设置一个约束。详情请查看 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions

默认为未设置

resourceVersionMatch

字符串

resourceVersionMatch 决定如何将 resourceVersion 应用到列表调用。强烈建议您为设置 resourceVersion 的 list 调用设置 resourceVersionMatch。详情请参阅 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions

默认为未设置

sendInitialEvents

布尔值

'sendInitialEvents=true' 可以与 'watch=true' 一起设置。在这种情况下,观察流将以复合事件开头,以生成集合中对象的当前状态。发送完所有这些事件后,将发送合成"Bookmark"事件。书签将报告与对象集合对应的 ResourceVersion (RV),并使用 '"k8s.io/initial-events-end": "true" 注解进行标记。之后,监视流将照常进行,从而向监视的对象发送与更改对应的监视事件(按 RV 排序)。

当设置 'sendInitialEvents' 选项时,我们还需要设置 'resourceVersionMatch' 选项。watch 请求的语义如下: - 'resourceVersionMatch' = NotOlderThan 被解释为"data"作为提供的 'resourceVersion'",当状态同步到 'resourceVersion' 时,书签 事件至少作为 ListOptions 提供的 "resourceVersion'。如果未设置 'resourceVersion',这会被解释为 "consistent read",当请求开始处理时至少会发送书签事件。- 'resourceVersionMatch' 设置为任何其他值或未设置 Invalid 错误。

如果 'resourceVersion=""' 或 'resourceVersion="0"' (出于向后兼容原因)和 false,则默认为 true。

timeoutSeconds

整数

列表/watch 调用的超时。这限制了调用的持续时间,无论任何活动或不活跃。

watch

布尔值

观察对所描述资源的更改,并将它们作为添加、更新和删除通知的流返回。指定 resourceVersion。

HTTP 方法
GET
描述
观察单个对 ValidatingWebhookConfiguration 列表的更改。已弃用:改为使用 'watch' 参数及列表操作。
表 30.37. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

30.3.2.3. /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name}

表 30.38. 全局路径参数
参数类型描述

name

字符串

ValidatingWebhookConfiguration 的名称

表 30.39. 全局查询参数
参数类型描述

pretty

字符串

如果为 'true',则输出会经过 pretty print 处理。

HTTP 方法
DELETE
描述
删除 ValidatingWebhookConfiguration
表 30.40. 查询参数
参数类型描述

dryRun

字符串

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

gracePeriodSeconds

整数

应该删除对象前的持续时间(以秒为单位)。值必须是非负整数。值为零表示立即删除。如果这个值是 nil,则会使用指定类型的默认宽限期。如果没有指定,则默认为每个对象值。零表示立即删除。

orphanDependents

布尔值

弃用:请使用 PropagationPolicy,此字段将在 1.7 中弃用。如果依赖对象是孤立的。如果为 true/false,则 "orphan" finalizer 将添加到对象的终结器列表中。可以设置此字段或 PropagationPolicy,但不能同时设置。

propagationPolicy

字符串

是否执行垃圾回收。可以设置此字段或 OrphanDependents,但不能同时设置两者。默认策略由 metadata.finalizers 和特定于资源的默认策略中设置的现有终结器决定。可接受的值有: 'Orphan' - 孤立的依赖项; 'Background' - 允许垃圾收集器删除依赖项,"Foreground' - 删除前台所有依赖的级联策略。

表 30.41. 主体参数
参数类型描述

正文(body)

DeleteOptions 模式

 
表 30.42. HTTP 响应
HTTP 代码响应正文

200 - OK

Status 模式

202 - Accepted

Status 模式

401 - Unauthorized

HTTP 方法
GET
描述
阅读指定的 ValidatingWebhookConfiguration
表 30.43. HTTP 响应
HTTP 代码响应正文

200 - OK

ValidatingWebhookConfiguration 模式

401 - Unauthorized

HTTP 方法
PATCH
描述
部分更新指定的 ValidatingWebhookConfiguration
表 30.44. 查询参数
参数类型描述

dryRun

字符串

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldManager

字符串

fieldmanager 是与进行这些更改的参与者或实体相关联的名称。该值必须小于或是 128 个字符长,且仅包含可打印的字符,如 https://golang.org/pkg/unicode/#IsPrint 所定义的那样。应用请求(application/apply-patch)需要此字段,但对非应用补丁类型(JsonPatch、MergePatch、MergePatch)是可选的。

fieldValidation

string

fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。

force

布尔值

强制要"强制"应用请求。这意味着用户将重新分配由其他人员拥有的冲突字段。对于非应用补丁请求,必须取消设置 force 标志。

表 30.45. 主体参数
参数类型描述

正文(body)

Patch 模式

 
表 30.46. HTTP 响应
HTTP 代码响应正文

200 - OK

ValidatingWebhookConfiguration 模式

201 - Created

ValidatingWebhookConfiguration 模式

401 - Unauthorized

HTTP 方法
PUT
描述
替换指定的 ValidatingWebhookConfiguration
表 30.47. 查询参数
参数类型描述

dryRun

字符串

出现时,表示不应保留修改。无效的或未被识别的 dryRun 指令将导致错误响应,且请求不会被进一步处理。有效值为: - All: 所有预演阶段都将被处理

fieldManager

字符串

fieldmanager 是与进行这些更改的参与者或实体相关联的名称。该值必须小于或是 128 个字符长,且仅包含可打印的字符,如 https://golang.org/pkg/unicode/#IsPrint 所定义的那样。

fieldValidation

string

fieldValidation 指示服务器如何处理包含了未知或重复字段的请求 (POST/PUT/PATCH) 中的对象。有效值为: - Ignore :忽略从对象中静默丢弃的未知字段,并将忽略所有除最后一个重复字段以外的所有字段。这是 v1.23 版本之前的默认行为- Warn: 这会通过标准的警告响应头为从对象丢弃的每个未知字段以及遇到的每个重复字段,发送警告。如果没有其他错误,请求仍会成功,且只保留重复字段的最后一个。这是 v1.23+ 的的默认行为 - Strict: 如果从对象中删除了任何未知字段,或者存在任何重复字段,请求将失败并带有 BadRequest 错误。从服务器返回的错误将包含遇到的,以及重复的字段。

表 30.48. 主体参数
参数类型描述

正文(body)

ValidatingWebhookConfiguration 模式

 
表 30.49. HTTP 响应
HTTP 代码响应正文

200 - OK

ValidatingWebhookConfiguration 模式

201 - Created

ValidatingWebhookConfiguration 模式

401 - Unauthorized

30.3.2.4. /apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations/{name}

表 30.50. 全局路径参数
参数类型描述

name

字符串

ValidatingWebhookConfiguration 的名称

表 30.51. 全局查询参数
参数类型描述

allowWatchBookmarks

布尔值

allowWatchBookmarks请求类型为“BOOKMARK”的监视事件。没有实现书签的服务器可能会忽略这个标志和书签,由服务器自由裁量发送。客户端不应假设书签在任何特定间隔返回,也不会假定服务器在会话期间发送任何 BOOKMARK 事件。如果这不是监视,则忽略此字段。

继续

字符串

从服务器检索更多结果时,应设置 continue 选项。由于这个值是定义的服务器,因此客户端只能使用之前查询结果中的 continue 值,并带有相同的查询参数(除 continue 值除外),因此服务器可能会拒绝它无法识别的值。如果指定的 continue 值不再有效,无论是因为过期时间(通常为 5 到十五分钟)还是服务器上的配置更改,服务器将会与继续令牌一起响应 410 ResourceExpired 错误。如果客户端需要一致的列表,它必须重启其列表,而无需 continue 字段。否则,客户端可能会发送另一个带有 410 错误接收的令牌的列表请求,服务器将以从下一个密钥开始开始的列表响应,但从最新的快照开始,这与上一个列表结果中不一致 - 在第一个列表请求后将包含在响应中,只要它们的密钥位于 "next key" 后。

当 watch 为 true 时不支持此字段。客户端可以从服务器返回的最后一个 resourceVersion 值开始监视,而不丢失任何修改。

fieldSelector

字符串

一个选择器,用于限制其字段返回的对象列表。默认为任何内容。

labelSelector

字符串

一个选择器,用于限制其标签返回的对象列表。默认为任何内容。

limit

整数

limit 是列表调用返回的最大响应数。如果存在更多项目,服务器会将列表元数据上的"continue"字段设为可用于同一初始查询的值,以检索下一组结果。如果过滤所有请求的对象,则设置限制可能会返回少于请求项目数量(最多为零项),并且客户端只应使用 continue 字段的存在,以确定是否有更多结果可用。服务器可能会选择不支持 limit 参数,并返回所有可用的结果。如果指定了 limit,并且 continue 字段为空,客户端可能会假定没有更多结果可用。如果 watch 为 true,则不支持此字段。

服务器保证,在使用时返回的对象将与在没有限制限制的情况下发出单个列表调用相同 - 也就是说,在发出第一个请求后没有创建、修改或删除对象。这有时被称为一致的快照,并确保使用限制来接收非常大结果的较小的块的客户端可确保它们看到所有可能的对象。如果在块列表中更新对象,则返回第一个列表结果时存在的对象版本。

pretty

字符串

如果为 'true',则输出会经过 pretty print 处理。

resourceVersion

字符串

resourceVersion 对可能给请求提供服务的资源版本设置一个约束。详情请查看 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions

默认为未设置

resourceVersionMatch

字符串

resourceVersionMatch 决定如何将 resourceVersion 应用到列表调用。强烈建议您为设置 resourceVersion 的 list 调用设置 resourceVersionMatch。详情请参阅 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions

默认为未设置

sendInitialEvents

布尔值

'sendInitialEvents=true' 可以与 'watch=true' 一起设置。在这种情况下,观察流将以复合事件开头,以生成集合中对象的当前状态。发送完所有这些事件后,将发送合成"Bookmark"事件。书签将报告与对象集合对应的 ResourceVersion (RV),并使用 '"k8s.io/initial-events-end": "true" 注解进行标记。之后,监视流将照常进行,从而向监视的对象发送与更改对应的监视事件(按 RV 排序)。

当设置 'sendInitialEvents' 选项时,我们还需要设置 'resourceVersionMatch' 选项。watch 请求的语义如下: - 'resourceVersionMatch' = NotOlderThan 被解释为"data"作为提供的 'resourceVersion'",当状态同步到 'resourceVersion' 时,书签 事件至少作为 ListOptions 提供的 "resourceVersion'。如果未设置 'resourceVersion',这会被解释为 "consistent read",当请求开始处理时至少会发送书签事件。- 'resourceVersionMatch' 设置为任何其他值或未设置 Invalid 错误。

如果 'resourceVersion=""' 或 'resourceVersion="0"' (出于向后兼容原因)和 false,则默认为 true。

timeoutSeconds

整数

列表/watch 调用的超时。这限制了调用的持续时间,无论任何活动或不活跃。

watch

布尔值

观察对所描述资源的更改,并将它们作为添加、更新和删除通知的流返回。指定 resourceVersion。

HTTP 方法
GET
描述
观察对类型为 ValidatingWebhookConfiguration 的对象的更改。已弃用:使用带有 list 操作的 'watch' 参数,而是过滤到带有 'fieldSelector' 参数的单个项目。
表 30.52. HTTP 响应
HTTP 代码响应正文

200 - OK

WatchEvent 模式

401 - Unauthorized

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.