ValidatingWebhookConfiguration

    apiVersion: admissionregistration.k8s.io/v1

    import "k8s.io/api/admissionregistration/v1"

    ValidatingWebhookConfiguration 描述准入 Webhook 的配置,该 Webhook 可在不更改对象的情况下接受或拒绝对象请求。


    • apiVersion: admissionregistration.k8s.io/v1

    • kind: ValidatingWebhookConfiguration

    • metadata ()

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

    • webhooks ([]ValidatingWebhook)

      补丁策略:根据 name 键执行合并操作

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

      ValidatingWebhook 描述了一个准入 Webhook 及其适用的资源和操作。

      • webhooks.admissionReviewVersions ([]string), 必需

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

      • webhooks.name (string), 必需

        准入 Webhook 的名称。应该是完全限定的名称,例如 imagepolicy.kubernetes.io,其中 “imagepolicy” 是 Webhook 的名称, kubernetes.io 是组织的名称。必需。

      • webhooks.sideEffects (string), 必需

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

      • webhooks.failurePolicy (string)

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

      • webhooks.matchPolicy (string)

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

        • Exact: 仅当请求与指定规则完全匹配时才匹配请求。 例如,如果可以通过 apps/v1、apps/v1beta1 和 extensions/v1beta1 修改 deployments 资源, 但 “rules” 仅包含 apiGroups:["apps"]、apiVersions:["v1"]、resources:["deployments "], 对 apps/v1beta1 或 extensions/v1beta1 的请求不会被发送到 Webhook。

        • Equivalent: 如果针对的资源包含在 “rules” 中,即使是通过另一个 API 组或版本,也视作匹配请求。 例如,如果可以通过 apps/v1、apps/v1beta1 和 extensions/v1beta1 修改 deployments 资源, 并且 “rules” 仅包含 apiGroups:["apps"]、apiVersions:["v1"]、resources:["deployments "], 对 apps/v1beta1 或 extensions/v1beta1 的请求将被转换为 apps/v1 并发送到 Webhook。

        默认为 “Equivalent”。

      • webhooks.namespaceSelector ()

        如果对象本身是命名空间,则在 object.metadata.labels 上执行匹配。 如果对象是另一个集群范围的资源,则永远不会跳过 Webhook 执行匹配。

        例如,在命名空间与 “0” 或 “1” 的 “runlevel” 不关联的任何对象上运行 Webhook; 你可以按如下方式设置 selector :

        你可以按如下方式设置 selector:

        https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/labels

        默认为空的 LabelSelector,匹配所有对象。

      • webhooks.objectSelector ()

        objectSelector 根据对象是否具有匹配的标签来决定是否运行 Webhook。 objectSelector 针对将被发送到 Webhook 的 oldObject 和 newObject 进行评估,如果任一对象与选择器匹配,则视为匹配。 空对象(create 时为 oldObject,delete 时为 newObject)或不能有标签的对象(如 DeploymentRollback 或 PodProxyOptions 对象) 认为是不匹配的。 仅当 Webhook 支持时才能使用对象选择器,因为最终用户可以通过设置标签来跳过准入 webhook。 默认为空的 LabelSelector,匹配所有内容。

      • webhooks.rules ([]RuleWithOperations)

        rules 描述了 Webhook 关心的资源/子资源上有哪些操作。Webhook 关心操作是否匹配任何rules。 但是,为了防止 ValidatingAdmissionWebhooks 和 MutatingAdmissionWebhooks 将集群置于只能完全禁用插件才能恢复的状态, ValidatingAdmissionWebhooks 和 MutatingAdmissionWebhooks 永远不会在处理 ValidatingWebhookConfiguration 和 MutatingWebhookConfiguration 对象的准入请求被调用。

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

        • webhooks.rules.apiGroups ([]string)

          原子性: 合并期间会被替换

          apiGroups 是资源所属的 API 组列表。’‘ 是所有组。 如果存在 ‘‘,则列表的长度必须为 1。必需。

        • webhooks.rules.apiVersions ([]string)

          原子性: 合并期间会被替换

          apiVersions 是资源所属的 API 版本列表。’‘ 是所有版本。 如果存在 ‘‘,则列表的长度必须为 1。必需。

        • webhooks.rules.operations ([]string)

          operations 是准入 Webhook 所关心的操作 —— CREATE、UPDATE、DELETE、CONNECT 或用来指代所有已知操作以及将来可能添加的准入操作的 *。 如果存在 ‘*‘,则列表的长度必须为 1。必需。

        • webhooks.rules.resources ([]string)

          原子性: 合并期间会被替换

          resources 是此规则适用的资源列表。

          ‘pods’ 表示 pods,’pods/log’ 表示 pods 的日志子资源。’‘ 表示所有资源,但不是子资源。 ‘pods/‘ 表示 pods 的所有子资源, ‘/scale’ 表示所有 scale 子资源, ‘/*‘ 表示所有资源及其子资源。

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

          根据所指定的对象,可能不允许使用子资源。必需。

        • webhooks.rules.scope (string)

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

      • webhooks.timeoutSeconds (int32)

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

    ValidatingWebhookConfigurationList 是 ValidatingWebhookConfiguration 的列表。



    HTTP 请求

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

    参数

    • name (路径参数): string, 必需

      ValidatingWebhookConfiguration 的名称。

    • pretty (查询参数): string

      pretty

    响应

    200 (ValidatingWebhookConfiguration): OK

    401: Unauthorized

    list 列出或观察 ValidatingWebhookConfiguration 类型的对象

    HTTP 请求

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

    参数

    • allowWatchBookmarks (查询参数): boolean

      allowWatchBookmarks

    • continue (查询参数): string

    • fieldSelector (查询参数): string

      fieldSelector

    • fieldSelector (查询参数): string

    • limit (查询参数): integer

      limit

    • pretty (查询参数): string

    • resourceVersion (查询参数): string

      resourceVersion

    • resourceVersionMatch (查询参数): string

    • watch (查询参数): boolean

      watch

    响应

    200 (ValidatingWebhookConfigurationList): OK

    401: Unauthorized

    HTTP 请求

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

    参数

    响应

    200 (ValidatingWebhookConfiguration): OK

    201 (): Created

    202 (ValidatingWebhookConfiguration): Accepted

    401: Unauthorized

    update 替换指定的 ValidatingWebhookConfiguration

    HTTP 请求

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

    参数

    • name (路径参数): string, 必需

      ValidatingWebhookConfiguration 的名称。

    • body: ValidatingWebhookConfiguration, 必需

    • fieldManager (查询参数): string

      fieldManager

    • fieldValidation (查询参数): string

    • pretty (查询参数): string

      pretty

    响应

    200 (ValidatingWebhookConfiguration): OK

    201 (): Created

    401: Unauthorized

    HTTP 请求

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

    参数

    • name (路径参数): string, 必需

      ValidatingWebhookConfiguration 的名称。

    • body: , 必需

    • dryRun (查询参数): string

      dryRun

    • fieldManager (查询参数): string

    • fieldValidation (查询参数): string

      fieldValidation

    • force (查询参数): boolean

    • pretty (查询参数): string

      pretty

    响应

    200 (ValidatingWebhookConfiguration): OK

    201 (): Created

    401: Unauthorized

    delete 删除 ValidatingWebhookConfiguration

    HTTP 请求

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

    参数

    • name (路径参数): string, 必需

      ValidatingWebhookConfiguration 的名称。

    • body:

    • dryRun (查询参数): string

      dryRun

    • gracePeriodSeconds (查询参数): integer

    • pretty (查询参数): string

      pretty

    • propagationPolicy (查询参数): string

    响应

    200 (): OK

    202 (Status): Accepted

    401: Unauthorized

    HTTP 请求

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

    参数

    • body: DeleteOptions

    • continue (查询参数): string

    • dryRun (查询参数): string

      dryRun

    • fieldSelector (查询参数): string

    • gracePeriodSeconds (查询参数): integer

      gracePeriodSeconds

    • labelSelector (查询参数): string

    • limit (查询参数): integer

      limit

    • pretty (查询参数): string

    • propagationPolicy (查询参数): string

      propagationPolicy

    • resourceVersion (查询参数): string

    • resourceVersionMatch (查询参数): string

      resourceVersionMatch

    响应

    401: Unauthorized