MatchResources

MatchResources вирішує, чи запускати політику контролю доступу до обʼєкта на основі того, чи відповідає він критеріям відповідності. Правила виключення мають пріоритет над правилами включення (якщо ресурс відповідає має збіг з обома, він виключається)

apiVersion: admissionregistration.k8s.io/v1

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

MatchResources

MatchResources вирішує, чи запускати політику контролю доступу до обʼєкта на основі того, чи відповідає він критеріям відповідності. Правила виключення мають пріоритет над правилами включення (якщо ресурс відповідає має збіг з обома, він виключається)


ПолеОпис
excludeResourceRules
NamedRuleWithOperations array
excludeResourceRules описує, які операції над якими ресурсами/субресурсами ValidatingAdmissionPolicy не повинна враховувати. Правила виключення мають пріоритет над правилами включення (якщо ресурс відповідає обом, він виключається)
matchPolicy
string
matchPolicy визначає, як список "MatchResources" використовується для відповідності вхідним запитам. Дозволені значення: "Exact" або "Equivalent".
  • Exact: відповідність запиту лише якщо він точно відповідає зазначеному правилу. Наприклад, якщо розгортання можна змінювати через apps/v1, apps/v1beta1 та extensions/v1beta1, але "rules" включали лише apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"], запит до apps/v1beta1 або extensions/v1beta1 не буде надіслано до ValidatingAdmissionPolicy.
  • Equivalent: відповідність запиту, якщо він змінює ресурс, зазначений у правилах, навіть через іншу групу API або версію. Наприклад, якщо розгортання можна змінювати через apps/v1, apps/v1beta1 та extensions/v1beta1, і "rules" включали лише apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"], запит до apps/v1beta1 або extensions/v1beta1 буде перетворено на apps/v1 і надіслано до ValidatingAdmissionPolicy.
Стандартне значення: "Equivalent"

Можливі значення enum:
  • "Equivalent" означає, що запити повинні бути надіслані до вебхука, якщо вони змінюють ресурс, зазначений у правилах, через іншу групу API або версію.
  • "Exact" означає, що запити повинні бути надіслані до вебхука лише якщо вони точно відповідають заданому правилу.
namespaceSelector
LabelSelector
namespaceSelector вирішує, чи запускати політику контролю допуску до обʼєкта на основі того, чи відповідає простір імен для цього обʼєкта селектору. Якщо обʼєкт сам є простором імен, відповідність перевіряється на object.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, який відповідає всьому.
objectSelector
LabelSelector
objectSelector вирішує, чи запускати валідацію на основі того, чи має обʼєкт відповідні мітки. objectSelector оцінюється як для oldObject, так і для newObject, які будуть надіслані до cel валідації, і вважається, що він відповідає, якщо будь-який з обʼєктів відповідає селектору. Null обʼєкт (oldObject у випадку створення або newObject у випадку видалення) або обʼєкт, який не може мати мітки (наприклад, DeploymentRollback або PodProxyOptions), не вважається відповідним. Використовуйте objectSelector лише якщо вебхук є опціональним, оскільки кінцеві користувачі можуть пропустити вебхук, встановивши мітки. Стандартно використовується порожній LabelSelector, який відповідає всьому.
resourceRules
NamedRuleWithOperations array
resourceRules описує, які операції над якими ресурсами/підресурсами відповідають ValidatingAdmissionPolicy. Політика враховує операцію, якщо вона відповідає будь-якому правилу.
Востаннє змінено June 10, 2026 at 8:00 PM PST: [uk] Ukrainian translation (all-in-one) (4e8fe0f729)