From 8d4d81eaa9850868952e5e59ca727c23c86c5042 Mon Sep 17 00:00:00 2001 From: my-git9 Date: Mon, 15 May 2023 11:16:27 +0800 Subject: [PATCH] [zh-cn]sync extend-resources/mutating-webhook-configuration-v1.md (#41121) Signed-off-by: xin.li --- .../mutating-webhook-configuration-v1.md | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) diff --git a/content/zh-cn/docs/reference/kubernetes-api/extend-resources/mutating-webhook-configuration-v1.md b/content/zh-cn/docs/reference/kubernetes-api/extend-resources/mutating-webhook-configuration-v1.md index ce4ecee1ca3..4d949bc17a6 100644 --- a/content/zh-cn/docs/reference/kubernetes-api/extend-resources/mutating-webhook-configuration-v1.md +++ b/content/zh-cn/docs/reference/kubernetes-api/extend-resources/mutating-webhook-configuration-v1.md @@ -234,6 +234,115 @@ MutatingWebhookConfiguration 描述准入 Webhook 的配置,该 Webhook 可接 failurePolicy 定义如何处理来自准入端点的无法识别的错误 - 允许的值是 Ignore 或 Fail。默认为 Fail。 + + + - **webhooks.matchConditions** ([]MatchCondition) + + **补丁策略:根据 `name` 键执行合并操作** + + **映射:键 `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 +