ValidatingAdmissionPolicy
apiVersion: admissionregistration.k8s.io/v1
import "k8s.io/api/admissionregistration/v1"
ValidatingAdmissionPolicy
ValidatingAdmissionPolicy описывает определение политики проверки при допуске, которая принимает или отклоняет объект, не изменяя его.
| Поле | Описание |
|---|---|
apiVersionstring |
APIVersion определяет версионированную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
kindstring |
Kind — строковое значение, представляющее ресурс REST, который описывает этот объект. Серверы могут определить его по конечной точке, на которую клиент отправляет запросы. Не может быть изменено. В формате CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
metadataObjectMeta |
metadata — стандартные метаданные объекта. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. |
specValidatingAdmissionPolicySpec |
spec определяет желаемое поведение ValidatingAdmissionPolicy. |
statusValidatingAdmissionPolicyStatus |
status отражает текущее состояние ValidatingAdmissionPolicy, включая предупреждения, которые помогают определить, работает ли политика ожидаемым образом. Заполняется системой. Только для чтения. |
ValidatingAdmissionPolicySpec
ValidatingAdmissionPolicySpec — это спецификация желаемого поведения AdmissionPolicy.
| Поле | Описание |
|---|---|
auditAnnotationsAuditAnnotation array |
auditAnnotations содержит выражения CEL, используемые для создания аудиторских аннотаций для события аудита запроса API. validations и auditAnnotations не могут быть одновременно пустыми; требуется хотя бы одно из них. |
failurePolicystring |
failurePolicy определяет, как обрабатывать сбои политики допуска. Сбои могут возникать из-за ошибок разбора выражений CEL, ошибок проверки типов, ошибок времени выполнения, а также недопустимых или неправильно настроенных определений политик или привязок. Политика недопустима, если spec.paramKind ссылается на несуществующий Kind. Привязка недопустима, если spec.paramRef.name ссылается на несуществующий ресурс. failurePolicy не определяет, как обрабатываются проверки, результатом которых является false. Если для failurePolicy задано значение Fail, действия validationActions в ValidatingAdmissionPolicyBinding определяют, как применяются сбои. Допустимые значения: Ignore или Fail. По умолчанию — Fail. Возможные значения перечисления: - `"Fail"` означает, что ошибка при вызове веб-перехватчика приводит к отклонению запроса на допуск. - `"Ignore"` означает, что ошибка при вызове веб-перехватчика игнорируется. |
matchConditionsMatchCondition array patch strategy: merge on key name
|
matchConditions — список условий, которые должны быть выполнены, чтобы запрос прошёл проверку. Условия сопоставления фильтруют запросы, уже сопоставленные с помощью rules, namespaceSelector и objectSelector. Пустой список matchConditions соответствует всем запросам. Допускается не более 64 условий сопоставления. Если предоставлен объект параметров, к нему можно обращаться через дескриптор `params` так же, как в выражениях проверки. Точная логика сопоставления (в указанном порядке): 1. Если любое matchCondition принимает значение FALSE, политика пропускается. 2. Если все matchConditions принимают значение TRUE, политика применяется. 3. Если какое-либо matchCondition приводит к ошибке (но ни одно не принимает значение FALSE): - Если failurePolicy=Fail, запрос отклоняется. - Если failurePolicy=Ignore, политика пропускается. |
matchConstraintsMatchResources |
matchConstraints указывает, для каких ресурсов предназначена эта политика проверки. AdmissionPolicy обрабатывает запрос, если он соответствует _всем_ ограничениям. Однако, чтобы не допустить перехода кластера в нестабильное состояние, из которого нельзя восстановиться через API, ValidatingAdmissionPolicy не может соответствовать ValidatingAdmissionPolicy и ValidatingAdmissionPolicyBinding. Обязательно. |
paramKindParamKind |
paramKind указывает тип ресурсов, используемых для параметризации этой политики. Если поле отсутствует, у политики нет параметров, и переменная CEL param не будет предоставлена выражениям проверки. Если ParamKind ссылается на несуществующий тип, определение политики настроено неправильно и применяется FailurePolicy. Если paramKind указан, но paramRef не задан в ValidatingAdmissionPolicyBinding, переменная params будет иметь значение null. |
validationsValidation array |
validations содержит выражения CEL, используемые для выполнения проверки. Validations и AuditAnnotations не могут быть одновременно пустыми; требуется как минимум одно значение Validations или AuditAnnotations. |
variablesVariable array patch strategy: merge on key name
|
variables содержит определения переменных, которые можно использовать при составлении других выражений. Каждая переменная задаётся как именованное выражение CEL. Определённые здесь переменные будут доступны в других выражениях политики через `variables`, за исключением MatchConditions, поскольку MatchConditions вычисляются до остальной части политики. Выражение переменной может ссылаться на другие переменные, определённые ранее в списке, но не на переменные, следующие за ней. Поэтому Variables должны быть упорядочены по первому появлению и не должны образовывать циклов. |
ValidatingAdmissionPolicyStatus
ValidatingAdmissionPolicyStatus отражает состояние политики проверки при допуске.
| Поле | Описание |
|---|---|
conditionsCondition array |
conditions отражает последние доступные сведения о текущем состоянии политики. |
observedGenerationinteger |
observedGeneration — поколение, наблюдаемое контроллером. |
typeCheckingTypeChecking |
typeChecking содержит результаты проверки типов для каждого выражения. Наличие этого поля указывает на завершение проверки типов. |
ValidatingAdmissionPolicyList
ValidatingAdmissionPolicyList — это список ValidatingAdmissionPolicy.
| Поле | Описание |
|---|---|
apiVersionstring |
APIVersion определяет версионированную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
items *ValidatingAdmissionPolicy array |
Список ValidatingAdmissionPolicy. |
kindstring |
Kind — строковое значение, представляющее ресурс REST, который описывает этот объект. Серверы могут определить его по конечной точке, на которую клиент отправляет запросы. Не может быть изменено. В формате CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
metadataListMeta |
metadata — стандартные метаданные списка. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
AuditAnnotation
AuditAnnotation описывает способ создания аудиторской аннотации для запроса API.
| Поле | Описание |
|---|---|
key *string |
key задаёт ключ аудиторской аннотации. Ключи аудиторских аннотаций ValidatingAdmissionPolicy должны быть уникальными. Ключ должен быть квалифицированным именем ([A-Za-z0-9][-A-Za-z0-9_.*]) длиной не более 63 байт. Ключ объединяется с именем ресурса ValidatingAdmissionPolicy для создания ключа аудиторской аннотации: "{ValidatingAdmissionPolicy name}/{key}". Если веб-перехватчик допуска использует то же имя ресурса, что и эта ValidatingAdmissionPolicy, и тот же ключ аудиторской аннотации, ключ аннотации будет идентичным. В этом случае в событие аудита будет включена первая аннотация, записанная с этим ключом, а все последующие аннотации с тем же ключом будут отброшены. Обязательно. |
valueExpression *string |
valueExpression задаёт выражение, которое вычисляется CEL для получения значения аудиторской аннотации. Выражение должно вычисляться либо в строку, либо в значение null. Если результатом выражения является строка, аудиторская аннотация добавляется с этим строковым значением. Если результатом выражения является null или пустая строка, аудиторская аннотация не добавляется. Длина valueExpression не должна превышать 5 КБ. Если результат valueExpression превышает 10 КБ, он будет усечён до 10 КБ. Если запросу API соответствуют несколько ресурсов ValidatingAdmissionPolicyBinding, valueExpression будет вычислено для каждой привязки. Все уникальные значения, полученные при вычислении valueExpressions, будут объединены в список с разделителями-запятыми. Обязательно. |
ExpressionWarning
ExpressionWarning — это предупреждение, относящееся к определённому выражению.
| Поле | Описание |
|---|---|
fieldRef *string |
fieldRef — путь к полю, ссылающемуся на выражение. Например, ссылка на выражение первого элемента validations — "spec.validations[0].expression" |
warning *string |
warning содержит сведения о проверке типов в удобочитаемом формате. Каждая строка предупреждения содержит тип, которому должно соответствовать выражение, а затем ошибку проверки типов, полученную от компилятора. |
TypeChecking
TypeChecking содержит результаты проверки типов выражений в ValidatingAdmissionPolicy
| Поле | Описание |
|---|---|
expressionWarningsExpressionWarning array |
expressionWarnings содержит предупреждения проверки типов для каждого выражения. |
Validation
Validation задаёт выражение CEL, используемое для выполнения проверки.
| Поле | Описание |
|---|---|
expression *string |
expression задаёт выражение, которое будет вычислено CEL. Ссылка: https://github.com/google/cel-spec Выражения CEL имеют доступ к содержимому запроса/ответа API, представленному в виде переменных CEL, а также к некоторым другим полезным переменным: - 'object' — объект из входящего запроса. Для запросов DELETE значение равно null. - 'oldObject' — существующий объект. Для запросов CREATE значение равно null. - 'request' — атрибуты запроса API ([ссылка](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' — ресурс параметров, на который ссылается обрабатываемая привязка политики. Заполняется только в том случае, если у политики есть ParamKind. - 'namespaceObject' — объект пространства имён, к которому принадлежит входящий объект. Для ресурсов уровня кластера значение равно null. - 'variables' — карта составных переменных, сопоставляющая их имена с лениво вычисляемыми значениями. Например, к переменной с именем 'foo' можно обратиться как к 'variables.foo'. - 'authorizer' — авторизатор CEL. Может использоваться для проверки прав доступа субъекта (пользователя или сервисной учётной записи), отправившего запрос. См. https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - 'authorizer.requestResource' — ResourceCheck CEL, созданный на основе 'authorizer' и настроенный для ресурса запроса. К `apiVersion`, `kind`, `metadata.name` и `metadata.generateName` всегда можно обратиться из корня объекта. Другие свойства метаданных недоступны. Доступны только имена свойств вида `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*`. При обращении к доступным именам свойств в выражении применяются следующие правила экранирования: - '__' экранируется как '__underscores__' - '.' экранируется как '__dot__' - '-' экранируется как '__dash__' - '/' экранируется как '__slash__' - Имена свойств, в точности совпадающие с зарезервированным ключевым словом CEL, экранируются как '__{keyword}__'. Ключевые слова: "true", "false", "null", "in", "as", "break", "const", "continue", "else", "for", "function", "if", "import", "let", "loop", "package", "namespace", "return". Примеры: - Выражение, обращающееся к свойству с именем "namespace": {"Expression": "object.__namespace__ > 0"} - Выражение, обращающееся к свойству с именем "x-prop": {"Expression": "object.x__dash__prop > 0"} - Выражение, обращающееся к свойству с именем "redact__d": {"Expression": "object.redact__underscores__d > 0"} При сравнении на равенство массивов с типом списка 'set' или 'map' порядок элементов игнорируется, например [1, 2] == [2, 1]. Конкатенация массивов с x-kubernetes-list-type использует семантику соответствующего типа списка: - 'set': `X + Y` выполняет объединение, сохраняя позиции всех элементов в `X` и добавляя непересекающиеся элементы из `Y` с сохранением их относительного порядка. - 'map': `X + Y` выполняет слияние, сохраняя позиции всех ключей в `X`, но заменяя значения значениями из `Y`, если наборы ключей `X` и `Y` пересекаются. Элементы `Y` с непересекающимися ключами добавляются с сохранением их относительного порядка. Обязательно. |
messagestring |
message задаёт сообщение, отображаемое при неудачной проверке. Если Expression содержит переносы строк, сообщение обязательно. Сообщение не должно содержать переносов строк. Если поле не задано, сообщение имеет вид "сбой правила: {Rule}". Например: "должен быть URL-адресом с хостом, соответствующим spec.host". Если Expression содержит переносы строк, сообщение обязательно. Сообщение не должно содержать переносов строк. Если поле не задано, сообщение имеет вид "сбой Expression: {Expression}". |
messageExpressionstring |
messageExpression объявляет выражение CEL, которое вычисляется в сообщение о сбое проверки и возвращается при нарушении этого правила. Поскольку messageExpression используется в качестве сообщения об ошибке, оно должно вычисляться в строку. Если для проверки заданы и message, и messageExpression, при сбое проверки будет использоваться messageExpression. Если вычисление messageExpression приводит к ошибке времени выполнения, ошибка записывается в журнал, а сообщение о сбое проверки формируется так, как если бы поле messageExpression не было задано. Если messageExpression вычисляется в пустую строку, строку, содержащую только пробелы, или строку с переносами строк, сообщение о сбое проверки также формируется так, как если бы поле messageExpression не было задано; факт того, что messageExpression вернуло пустую строку, строку только с пробелами или строку с переносами строк, записывается в журнал. messageExpression имеет доступ ко всем тем же переменным, что и `expression`, кроме 'authorizer' и 'authorizer.requestResource'. Пример: "object.x должен быть меньше max ("+string(params.max)+")" |
reasonstring |
reason задаёт машиночитаемое описание причины сбоя проверки. Если это первая проверка в списке, завершившаяся с ошибкой, эта причина и соответствующий код ответа HTTP используются в ответе HTTP клиенту. В настоящее время поддерживаются следующие причины: "Unauthorized", "Forbidden", "Invalid", "RequestEntityTooLarge". Если значение не задано, в ответе клиенту используется StatusReasonInvalid. |
© 2026 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2026 The Linux Foundation ®. All rights reserved.
https://kubernetes.io/docs/reference/kubernetes-api/admissionregistration/validating-admission-policy-v1/