Spec-Zone.ru › Kubernetes 1.24

ValidatingWebhookConfiguration

ValidatingWebhookConfiguration описывает конфигурацию вебхука для проверки, который принимает или отклоняет объект без изменения.

apiVersion: admissionregistration.k8s.io/v1

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

ValidatingWebhookConfiguration

ValidatingWebhookConfiguration описывает конфигурацию вебхука для проверки, который принимает или отклоняет объект без изменения.

  • apiVersion: admissionregistration.k8s.io/v1

  • kind: ValidatingWebhookConfiguration

  • metadata (ObjectMeta)

    Стандартные метаданные объекта; Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.

  • webhooks ([]ValidatingWebhook)

    Стратегия исправления: merge по ключу name

    Список веб-хуков и ресурсов и операций, на которые они влияют.

    ValidatingWebhook описывает веб-хук проверки и ресурсы и операции, к которым он применяется.

    • webhooks.admissionReviewVersions ([]string), required

      AdmissionReviewVersions — упорядоченный список предпочитаемых AdmissionReview версий, ожидаемых веб-хуком. Сервер API попытается использовать первую версию в списке, которую он поддерживает. Если ни одна из версий, указанных в этом списке, не поддерживается сервером API, проверка этого объекта завершится неудачей. Если в конфигурации сохраненного веб-хука указаны разрешенные версии и они не включают никакие версии, известные серверу API, вызовы веб-хука завершатся неудачей и будут подчиняться политике обработки ошибок.

    • webhooks.clientConfig (WebhookClientConfig), required

      ClientConfig определяет способ взаимодействия с хуком. Требуется

      WebhookClientConfig содержит информацию для создания TLS-соединения с веб-хуком

      • webhooks.clientConfig.caBundle ([]byte)

        caBundle представляет собой закодированный в PEM пакет сертификатов CA, который будет использоваться для проверки сертификата сервера веб-хука. Если не указано, используются системные корневые сертификаты доверия сервера API.

      • webhooks.clientConfig.service (ServiceReference)

        service — ссылка на службу для этого веб-хука. Должен быть указан либо service, либо url.

        Если веб-хук работает внутри кластера, используйте service.

        ServiceReference содержит ссылку на Service.legacy.k8s.io

        • webhooks.clientConfig.service.name (string), required

          name — имя службы. Требуется.

        • webhooks.clientConfig.service.namespace (string), required

          namespace — пространство имен службы. Требуется.

        • webhooks.clientConfig.service.path (string)

          path — необязательный путь URL, который будет отправлен в любом запросе к этой службе.

        • webhooks.clientConfig.service.port (int32)

          Если указано, порт службы, на котором размещен веб-хук. По умолчанию 443 для обеспечения обратной совместимости. port должно быть корректным номером порта (включительно от 1 до 65535).

      • webhooks.clientConfig.url (string)

        url указывает расположение веб-хука в стандартном формате URL (scheme://host:port/path). Должен быть указан ровно один из url или service.

        host не должен ссылаться на службу, работающую в кластере; используйте поле service. Хост может быть разрешен с помощью внешнего DNS в некоторых серверах API (например, kube-apiserver не может разрешить DNS внутри кластера, так как это будет нарушение уровней). host также может быть IP-адресом.

        Обратите внимание, что использование localhost или 127.0.0.1 в качестве host рискованно, если вы не позаботитесь о том, чтобы этот веб-хук работал на всех узлах, на которых запущен сервер API, которому может потребоваться обращение к этому веб-хуку. Такие установки, вероятно, будут непереносимыми, т. е. нелегко развертываются в новом кластере.

        Схема должна быть "https"; URL должен начинаться с "https://".

        Путь является необязательным и, если он указан, может быть любой строкой, допустимой в URL. Вы можете использовать путь для передачи произвольной строки в веб-хук, например, идентификатора кластера.

        Попытка использовать аутентификацию пользователя или базовые данные, например "user:password@", запрещена. Фрагменты ("#...") и параметры запроса ("?...") также запрещены.

    • webhooks.name (string), required

      Имя веб-хука проверки. Имя должно быть полностью квалифицированным, например, imagepolicy.kubernetes.io, где "imagepolicy" — имя веб-хука, а kubernetes.io — имя организации. Требуется.

    • webhooks.sideEffects (string), required

      SideEffects указывает, имеет ли этот веб-хук побочные эффекты. Допустимые значения: None, NoneOnDryRun (веб-хуки, созданные с помощью v1beta1, также могут указать Some или Unknown). Веб-хуки с побочными эффектами ОБЯЗАТЕЛЬНО должны реализовывать систему согласования, так как запрос может быть отклонен на последующем шаге в цепочке доступа, и поэтому побочные эффекты должны быть отменены. Запросы с атрибутом dryRun будут автоматически отклоняться, если они соответствуют веб-хуку с sideEffects == Unknown или Some.

    • webhooks.failurePolicy (string)

      FailurePolicy определяет, как обрабатываются нераспознанные ошибки из точки входа доступа — допустимые значения Ignore или Fail. По умолчанию Fail.

    • webhooks.matchPolicy (string)

      matchPolicy определяет, как используется список "правил" для сопоставления входящих запросов. Допустимые значения: "Exact" или "Equivalent".

      • Exact: сопоставляет запрос только в том случае, если он точно соответствует указанному правилу. Например, если развертывания могут быть изменены через apps/v1, apps/v1beta1 и extensions/v1beta1, но "правила" содержали только apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"], запрос к apps/v1beta1 или extensions/v1beta1 не будет отправлен в веб-хук.

      • Equivalent: сопоставляет запрос, если он изменяет ресурс, указанный в правилах, даже через другую группу API или версию. Например, если развертывания могут быть изменены через apps/v1, apps/v1beta1 и extensions/v1beta1, и "правила" содержали только apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"], запрос к apps/v1beta1 или extensions/v1beta1 будет преобразован в apps/v1 и отправлен в веб-хук.

      По умолчанию "Equivalent"

    • webhooks.namespaceSelector (LabelSelector)

      NamespaceSelector определяет, нужно ли запускать веб-хук для объекта, основываясь на том, соответствует ли пространство имен этого объекта селектору. Если сам объект является пространством имен, сопоставление выполняется по меткам объекта.metadata.labels. Если объект — другой ресурс, охватывающий весь кластер, веб-хук никогда не пропускается.

      Например, чтобы запустить веб-хук для всех объектов, пространство имен которых не связано с "runlevel" "0" или "1", вы установите селектор следующим образом: "namespaceSelector": { "matchExpressions": [ { "key": "runlevel", "operator": "NotIn", "values": [ "0", "1" ] } ] }

      Если вы хотите запустить веб-хук только для объектов, пространство имен которых связано с "environment" "prod" или "staging", вы установите селектор следующим образом: "namespaceSelector": { "matchExpressions": [ { "key": "environment", "operator": "In", "values": [ "prod", "staging" ] } ] }

      См. https://kubernetes.io/docs/concepts/overview/working-with-objects/labels для получения дополнительных примеров селекторов меток.

      По умолчанию пустой LabelSelector, который соответствует всему.

    • webhooks.objectSelector (LabelSelector)

      ObjectSelector определяет, нужно ли запускать веб-хук, основываясь на совпадении меток объекта. objectSelector оценивается как для старого объекта, так и для нового объекта, которые будут отправлены в веб-хук, и считается совпадающим, если этому селектору соответствует любой из объектов. Нулевой объект (oldObject в случае создания или newObject в случае удаления) или объект, не имеющий меток (например, DeploymentRollback или PodProxyOptions), не считается подходящим. Используйте селектор объекта только в том случае, если веб-хук является добровольным, так как конечные пользователи могут пропустить веб-хук доступа, установив метки. По умолчанию пустой LabelSelector, который соответствует всему.

    • webhooks.rules ([]RuleWithOperations)

      Правила описывают, какие операции с какими ресурсами/подресурсами интересуют веб-хук. Веб-хук интересуется операцией, если она соответствует любому правилу. Однако, чтобы предотвратить ValidatingAdmissionWebhooks и MutatingAdmissionWebhooks от приведения кластера в состояние, из которого невозможно восстановиться без полного отключения плагина, ValidatingAdmissionWebhooks и MutatingAdmissionWebhooks никогда не вызываются для запросов допуска к объектам ValidatingWebhookConfiguration и MutatingWebhookConfiguration.

      RuleWithOperations — это кортеж из Operations и Resources. Рекомендуется убедиться, что все расширения кортежа действительны.

      • webhooks.rules.apiGroups ([]string)

        APIGroups — группы API, к которым относятся ресурсы. '' — все группы. Если '' присутствует, длина среза должна быть равна одному. Требуется.

      • webhooks.rules.apiVersions ([]string)

        APIVersions — версии API, к которым относятся ресурсы. '' — все версии. Если '' присутствует, длина среза должна быть равна одному. Требуется.

      • webhooks.rules.operations ([]string)

        Operations — операции, о которых заботится веб-хук доступа — CREATE, UPDATE, DELETE, CONNECT или * для всех этих операций и любых будущих операций доступа, которые будут добавлены. Если '*' присутствует, длина среза должна быть равна одному. Требуется.

      • webhooks.rules.resources ([]string)

        Resources — список ресурсов, к которым применяется данное правило.

        Например: 'pods' означает pods. 'pods/log' означает подресурс журнала pods. '' означает все ресурсы, но не подресурсы. 'pods/' означает все подресурсы pods. '*/scale' означает все подресурсы scale. '*/' означает все ресурсы и их подресурсы.

        Если присутствует символ подстановки, правило валидации гарантирует, что ресурсы не перекрывают друг друга.

        В зависимости от содержащего объекта подресурсы могут быть недопустимы. Требуется.

      • webhooks.rules.scope (string)

        scope указывает область применения данного правила. Допустимые значения: "Cluster", "Namespaced", и "" "Cluster" означает, что этому правилу будут соответствовать только ресурсы, охватывающие весь кластер. Объекты API пространства имен имеют глобальный охват. "Namespaced" означает, что этому правилу будут соответствовать только ресурсы пространства имен. "" означает, что ограничений по области нет. Подресурсы соответствуют области своего родительского ресурса. По умолчанию "*".

    • webhooks.timeoutSeconds (int32)

      TimeoutSeconds указывает время ожидания для данного веб-хука. По истечении времени ожидания вызов веб-хука будет проигнорирован или вызов API завершится неудачей в зависимости от политики обработки ошибок. Значение времени ожидания должно быть от 1 до 30 секунд. По умолчанию 10 секунд.

СписокValidatingWebhookConfiguration

ValidatingWebhookConfigurationList — список ValidatingWebhookConfiguration.

  • apiVersion: admissionregistration.k8s.io/v1

  • kind: Список проверочных вебхуков

  • metadata (ListMeta)

    Стандартные метаданные списка. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

  • items ([]ValidatingWebhookConfiguration), обязательное

    Список проверочных вебхуков.

© 2022 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2022 The Linux Foundation ®. All rights reserved.
https://v1-24.docs.kubernetes.io/docs/reference/kubernetes-api/extend-resources/validating-webhook-configuration-v1/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API