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


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

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[]

对象

验证webhook 描述了准入 Webhook,以及它应用到的资源和操作。

30.3.1.1. .webhooks

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

30.3.1.2. .webhooks[]

描述
验证webhook 描述了准入 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,则拒绝请求 - 如果 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 发送请求。- "Exact" 表示请求应仅发送到 webhook (如果请求完全与给定规则匹配)。

name

字符串

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

namespaceSelector

labelSelector

namespaceSelector 决定是否在对象上运行 webhook,具体取决于该对象的命名空间是否与选择器匹配。如果对象本身是一个命名空间,则匹配会在 object.metadata.labels 上执行。如果对象是另一个集群范围的资源,它永远不会跳过 Webhook。

例如,要在命名空间没有与 "0" 或 "1" 关联的 "runlevel" 或 "1" 运行 webhook;您要将选择器设置为如下: "namespaceSelector": { "matchExpressions": [ { "key": "runlevel", "operator": "NotIn", "values": [ "0", "1" ] } ] }

如果您只想在命名空间与 "prod" 或 "staging" 关联的 "environment" 或 "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 决定是否根据对象是否有匹配的 labels. objectSelector 运行 webhook。objectSelector 是针对要发送到 webhook 的 oldObject 和 newObject 评估的,并被视为匹配对象是否与选择器匹配。null 对象(如果为 create,则为 newObject,则为 newObject )或没有标签(如 DeploymentRollback 或 PodProxyOptions 对象)的对象不被视为匹配。只有在 Webhook 是 opt-in 时,才使用对象选择器,因为最终用户可以通过设置标签来跳过准入 Webhook。默认为空 LabelSelector,它与所有内容匹配。

rules

array

规则描述了 Webhook 关注的 resources/subresources 的操作。如果 与任何 规则匹配,webhook 会处理某个操作。但是,为了防止 ValidatingAdmissionWebhooks 和 MutatingAdmissionWebhooks 使集群处于无法完全禁用插件的状态,ValidatingAdmissionWebhooks 和 MutatingAdmissionWebhooks 永不会调用 ValidatingWebhookConfiguration 和 MutatingWebhookConfiguration 对象的准入请求。

rules[]

对象

RuleWithOperations 是操作和资源的元组。建议确保所有元组扩展都有效。

sideEffects

字符串

SideEffects 指出此 webhook 是否产生副作用。可接受值为: None, NoneOnDryRun (webhooks via v1beta1 创建,也可以指定 some 或 Unknown。具有副作用的 Webhook 实现了协调系统,因为准入链中的将来步骤可能会拒绝请求,因此需要撤销副作用。具有 dryRun 属性的请求如果与带有 sideEffects == Unknown 或 some 的 webhook 匹配,则会自动拒绝。

可能的 enum 值: - "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 (如 kube-apiserver )中,主机可以通过外部 DNS 解析,因为 kube-apiserver 无法解析集群 DNS,因为这将是分层违反情况。主机 也可以是 IP 地址。

请注意,使用 localhost127.0.0.1 作为主机有风险,除非您特别注意在运行 apiserver 的所有主机上运行这个 webhook,这可能需要调用此 webhook。此类安装可能是不可移植的,例如,无法在新集群中轻松打开。

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

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

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

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,以便向后兼容。端口 应该是有效的端口号(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,则拒绝请求 - 如果 failurePolicy=Ignore,则忽略错误并跳过 Webhook

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

类型
数组

30.3.1.6. .webhooks[].matchConditions[]

描述
MatchCondition 代表必须实现才能使请求发送到 webhook 的条件。
类型
object
必填
  • name
  • expression
属性类型描述

expression

string

表达式代表 CEL 将评估的表达式。必须评估 bool。CEL 表达式可以访问 AdmissionRequest 和 Authorizer 的内容,被组织为 CEL 变量:

'object' - 传入请求中的对象。DELETE 请求的值是 null。'oldObject' - 现有对象。对于 CREATE requests,值为 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,并使用 request 资源进行配置。CEL 的文档: https://kubernetes.io/docs/reference/using-api/cel/

必需。

name

string

name 是此匹配条件的标识符,用于 MatchConditions 的策略合并,并提供用于日志目的的标识符。相关表达式应当有一个好的名称。name 必须是由字母数字字符、'-'、'' 或 '.' 组成的合格名称,且必须以字母数字字符开头和结尾(例如:'MyName' 或 'my.name', 或 '123-abc', regex is '([A-Za-z0-9][-A-Za-z0-9.]*)?[A-Za-z0-9]'),带有可选的 DNS 子域前缀和 '/'(如 'example.com/MyName')

必需。

30.3.1.7. .webhooks[].rules

描述
规则描述了 Webhook 关注的 resources/subresources 的操作。如果 与任何 规则匹配,webhook 会处理某个操作。但是,为了防止 ValidatingAdmissionWebhooks 和 MutatingAdmissionWebhooks 使集群处于无法完全禁用插件的状态,ValidatingAdmissionWebhooks 和 MutatingAdmissionWebhooks 永不会调用 ValidatingWebhookConfiguration 和 MutatingWebhookConfiguration 对象的准入请求。
类型
array

30.3.1.8. .webhooks[].rules[]

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

apiGroups

数组(字符串)

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

apiVersions

数组(字符串)

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

操作

数组(字符串)

操作是准入 hook 关注的操作 - CREATE、UPDATE、DELETE、CONNECT 或 *(对于所有这些操作)以及添加的任何未来准入操作。如果 '*' 存在,分片的长度必须为一。必需。

资源

数组(字符串)

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

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

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

根据括起对象,可能不允许子资源。必需。

scope

字符串

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

30.3.2. API 端点

可用的 API 端点如下:

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

    • DELETE :删除 ValidatingWebhookConfiguration 的集合
    • GET: 列出或监视类型为 ValidatingWebhookConfiguration 的对象
    • POST: 创建一个 ValidatingWebhookConfiguration
  • /apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations

    • GET: 观察单个对 ValidatingWebhookConfiguration 列表的更改。已弃用:使用 'watch' 参数和 list 操作。
  • /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. deprecated 的对象的更改。已弃用:使用带有列表操作的 '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 错误的令牌的列表请求,服务器将使用从下一个密钥开始的列表进行响应,但从最新的快照开始,从上一个列表结果(创建、修改或删除)后,创建、修改或删除第一个列表请求将包含在响应中,只要它们的键位于"下一密钥"后。

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

dryRun

字符串

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

fieldSelector

字符串

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

gracePeriodSeconds

整数

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

labelSelector

字符串

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

limit

整数

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

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

orphanDependents

布尔值

deprecated :请使用 PropagationPolicy,此字段将在 1.7 中弃用。依赖的对象应该被孤立。如果为 true/false,则"orphan"终结器将从对象的终结器列表添加到/删除。可以设置此字段或 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 的列表调用设置 resourceVersionMatch,详情请参阅 https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions

默认为未设置

sendInitialEvents

布尔值

'sendInitialEvents=true' 可以与 'watch=true' 一起设置。在这种情况下,监视流将以 synthetic 事件开头,以生成集合中对象的当前状态。发送完所有此类事件后,将发送一个合成"Bookmark"事件。书签将报告与一组对象对应的 ResourceVersion (RV),并标有 '"k8s.io/initial-events-end": "true"' 注解。之后,监视流会照常进行,将与更改对应的监控事件(subsequent to the RV)发送到被监视的对象。

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

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

timeoutSeconds

整数

list/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 错误的令牌的列表请求,服务器将使用从下一个密钥开始的列表进行响应,但从最新的快照开始,从上一个列表结果(创建、修改或删除)后,创建、修改或删除第一个列表请求将包含在响应中,只要它们的键位于"下一密钥"后。

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

fieldSelector

字符串

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

labelSelector

字符串

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

limit

整数

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

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

resourceVersion

字符串

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

默认为未设置

resourceVersionMatch

字符串

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

默认为未设置

sendInitialEvents

布尔值

'sendInitialEvents=true' 可以与 'watch=true' 一起设置。在这种情况下,监视流将以 synthetic 事件开头,以生成集合中对象的当前状态。发送完所有此类事件后,将发送一个合成"Bookmark"事件。书签将报告与一组对象对应的 ResourceVersion (RV),并标有 '"k8s.io/initial-events-end": "true"' 注解。之后,监视流会照常进行,将与更改对应的监控事件(subsequent to the RV)发送到被监视的对象。

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

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

timeoutSeconds

整数

list/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 错误的令牌的列表请求,服务器将使用从下一个密钥开始的列表进行响应,但从最新的快照开始,从上一个列表结果(创建、修改或删除)后,创建、修改或删除第一个列表请求将包含在响应中,只要它们的键位于"下一密钥"后。

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

fieldSelector

字符串

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

labelSelector

字符串

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

limit

整数

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

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

pretty

字符串

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

resourceVersion

字符串

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

默认为未设置

resourceVersionMatch

字符串

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

默认为未设置

sendInitialEvents

布尔值

'sendInitialEvents=true' 可以与 'watch=true' 一起设置。在这种情况下,监视流将以 synthetic 事件开头,以生成集合中对象的当前状态。发送完所有此类事件后,将发送一个合成"Bookmark"事件。书签将报告与一组对象对应的 ResourceVersion (RV),并标有 '"k8s.io/initial-events-end": "true"' 注解。之后,监视流会照常进行,将与更改对应的监控事件(subsequent to the RV)发送到被监视的对象。

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

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

timeoutSeconds

整数

list/watch 调用的超时。这限制了调用的持续时间,而不考虑任何活动或不活跃。

watch

布尔值

观察对上述资源的更改,并将其恢复为添加、更新和删除通知的流。指定 resourceVersion。

HTTP 方法
GET
描述
观察单个对 ValidatingWebhookConfiguration 列表的更改。已弃用: 使用 'watch' 参数和 list 操作。
表 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

布尔值

deprecated :请使用 PropagationPolicy,此字段将在 1.7 中弃用。依赖的对象应该被孤立。如果为 true/false,则"orphan"终结器将从对象的终结器列表添加到/删除。可以设置此字段或 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、strategicMergePatch)是可选的。

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 错误的令牌的列表请求,服务器将使用从下一个密钥开始的列表进行响应,但从最新的快照开始,从上一个列表结果(创建、修改或删除)后,创建、修改或删除第一个列表请求将包含在响应中,只要它们的键位于"下一密钥"后。

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

fieldSelector

字符串

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

labelSelector

字符串

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

limit

整数

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

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

pretty

字符串

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

resourceVersion

字符串

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

默认为未设置

resourceVersionMatch

字符串

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

默认为未设置

sendInitialEvents

布尔值

'sendInitialEvents=true' 可以与 'watch=true' 一起设置。在这种情况下,监视流将以 synthetic 事件开头,以生成集合中对象的当前状态。发送完所有此类事件后,将发送一个合成"Bookmark"事件。书签将报告与一组对象对应的 ResourceVersion (RV),并标有 '"k8s.io/initial-events-end": "true"' 注解。之后,监视流会照常进行,将与更改对应的监控事件(subsequent to the RV)发送到被监视的对象。

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

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

timeoutSeconds

整数

list/watch 调用的超时。这限制了调用的持续时间,而不考虑任何活动或不活跃。

watch

布尔值

观察对上述资源的更改,并将其恢复为添加、更新和删除通知的流。指定 resourceVersion。

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

200 - OK

WatchEvent 模式

401 - Unauthorized

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.