From 0076f7d95061de413357f7ae3595671a11044338 Mon Sep 17 00:00:00 2001 From: "xin.li" Date: Mon, 8 May 2023 22:47:31 +0800 Subject: [PATCH] [zh-cn]sync validating-webhook-configuration-v1.md Signed-off-by: xin.li --- .../validating-webhook-configuration-v1.md | 168 +++++++++++++++--- 1 file changed, 143 insertions(+), 25 deletions(-) diff --git a/content/zh-cn/docs/reference/kubernetes-api/extend-resources/validating-webhook-configuration-v1.md b/content/zh-cn/docs/reference/kubernetes-api/extend-resources/validating-webhook-configuration-v1.md index 2fb63e20126..e93037bea2b 100644 --- a/content/zh-cn/docs/reference/kubernetes-api/extend-resources/validating-webhook-configuration-v1.md +++ b/content/zh-cn/docs/reference/kubernetes-api/extend-resources/validating-webhook-configuration-v1.md @@ -226,10 +226,110 @@ ValidatingWebhookConfiguration 描述准入 Webhook 的配置,该 Webhook 可 FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail. --> - - **webhooks.failurePolicy** (string) failurePolicy 定义了如何处理来自准入端点的无法识别的错误 - 允许的值是 Ignore 或 Fail。默认为 Fail。 + + + - **webhooks.matchConditions** ([]MatchCondition) + + **补丁策略:根据 `name` 键的取值合并** + + **Map:name 键的唯一值将在合并期间保留** + + + matchConditions 是将请求发送到此 webhook 之前必须满足的条件列表。 + 匹配条件过滤已经被 rules、namespaceSelector、objectSelector 匹配的请求。 + matchConditions 取值为空列表时匹配所有请求。最多允许 64 个匹配条件。 + + + 精确匹配逻辑是(按顺序): + 1. 如果任一 matchCondition 的计算结果为 FALSE,则跳过该 webhook。 + 2. 如果所有 matchConditions 的计算结果为 TRUE,则调用该 webhook。 + 3. 如果任一 matchCondition 的计算结果为错误(但都不是 FALSE): + - 如果 failurePolicy=Fail,拒绝该请求; + - 如果 failurePolicy=Ignore,忽略错误并跳过该 webhook。 + + + 这是一个 Alpha 功能特性,由 AdmissionWebhookMatchConditions 特性门控管理。 + + + **MatchCondition 表示将请求发送到 Webhook 之前必须满足的条件。** + + + - **webhooks.matchConditions.expression** (string), 必需 + + expression 表示将由 CEL 求值的表达式。求值结果必须是 bool 值。CEL 表达式可以访问 + 以 CEL 变量的形式给出的 AdmissionRequest 和 Authorizer 的内容: + + + - 'object' - 来自传入请求的对象。对于 DELETE 请求,该值为 null。 + - 'oldObject' - 现有对象。对于 CREATE 请求,该值为 null。 + - 'request' - 准入请求的属性(/pkg/apis/admission/types.go#AdmissionRequest)。 + - 'authorizer' - CEL 授权者。可用于对请求的主体(用户或服务帐户)执行授权检查。 + + + + 参阅:https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + + + - 'authorizer.requestResource' - CEL ResourceCheck 从"授权方"构建并配置请求资源。 + + CEL 文档:https://kubernetes.io/zh-cn/docs/reference/using-api/cel/ + + 此字段为必需字段。 + + + - **webhooks.matchConditions.name** (string), 必需 + + name 是此匹配条件的标识符,用于 MatchConditions 的策略性合并, + 以及提供用于日志目的的标识符。一个好的 name 应该是对相关表达式的描述。 + name 必须是由字母数字字符 `-`、`_` 或 `.` 组成的限定名称, + 并且必须以字母、数字字符开头和结尾(例如 `MyName`、`my.name` 或 `123-abc`, + 用于验证 name 的正则表达式是 `([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]`)。 + 带有可选的 DNS 子域前缀和 `/`(例如 `example.com/MyName`) + + 此字段为必需字段。 +- **sendInitialEvents** (**查询参数**): boolean + + }}">sendInitialEvents + +- **sendInitialEvents** (**查询参数**): boolean + + }}">sendInitialEvents +