Spec-Zone.ru › Kubernetes

ValidatingAdmissionPolicy

ValidatingAdmissionPolicy описывает определение политики проверки при допуске, которая принимает или отклоняет объект, не изменяя его.

apiVersion: admissionregistration.k8s.io/v1

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

ValidatingAdmissionPolicy

ValidatingAdmissionPolicy описывает определение политики проверки при допуске, которая принимает или отклоняет объект, не изменяя его.

Поле Описание
apiVersion
string
APIVersion определяет версионированную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind
string
Kind — строковое значение, представляющее ресурс REST, который описывает этот объект. Серверы могут определить его по конечной точке, на которую клиент отправляет запросы. Не может быть изменено. В формате CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
ObjectMeta
metadata — стандартные метаданные объекта. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.
spec
ValidatingAdmissionPolicySpec
spec определяет желаемое поведение ValidatingAdmissionPolicy.
status
ValidatingAdmissionPolicyStatus
status отражает текущее состояние ValidatingAdmissionPolicy, включая предупреждения, которые помогают определить, работает ли политика ожидаемым образом. Заполняется системой. Только для чтения.

ValidatingAdmissionPolicySpec

ValidatingAdmissionPolicySpec — это спецификация желаемого поведения AdmissionPolicy.

Поле Описание
auditAnnotations
AuditAnnotation array
auditAnnotations содержит выражения CEL, используемые для создания аудиторских аннотаций для события аудита запроса API. validations и auditAnnotations не могут быть одновременно пустыми; требуется хотя бы одно из них.
failurePolicy
string
failurePolicy определяет, как обрабатывать сбои политики допуска. Сбои могут возникать из-за ошибок разбора выражений CEL, ошибок проверки типов, ошибок времени выполнения, а также недопустимых или неправильно настроенных определений политик или привязок. Политика недопустима, если spec.paramKind ссылается на несуществующий Kind. Привязка недопустима, если spec.paramRef.name ссылается на несуществующий ресурс. failurePolicy не определяет, как обрабатываются проверки, результатом которых является false. Если для failurePolicy задано значение Fail, действия validationActions в ValidatingAdmissionPolicyBinding определяют, как применяются сбои. Допустимые значения: Ignore или Fail. По умолчанию — Fail.

Возможные значения перечисления:
- `"Fail"` означает, что ошибка при вызове веб-перехватчика приводит к отклонению запроса на допуск.
- `"Ignore"` означает, что ошибка при вызове веб-перехватчика игнорируется.
matchConditions
MatchCondition 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, политика пропускается.
matchConstraints
MatchResources
matchConstraints указывает, для каких ресурсов предназначена эта политика проверки. AdmissionPolicy обрабатывает запрос, если он соответствует _всем_ ограничениям. Однако, чтобы не допустить перехода кластера в нестабильное состояние, из которого нельзя восстановиться через API, ValidatingAdmissionPolicy не может соответствовать ValidatingAdmissionPolicy и ValidatingAdmissionPolicyBinding. Обязательно.
paramKind
ParamKind
paramKind указывает тип ресурсов, используемых для параметризации этой политики. Если поле отсутствует, у политики нет параметров, и переменная CEL param не будет предоставлена выражениям проверки. Если ParamKind ссылается на несуществующий тип, определение политики настроено неправильно и применяется FailurePolicy. Если paramKind указан, но paramRef не задан в ValidatingAdmissionPolicyBinding, переменная params будет иметь значение null.
validations
Validation array
validations содержит выражения CEL, используемые для выполнения проверки. Validations и AuditAnnotations не могут быть одновременно пустыми; требуется как минимум одно значение Validations или AuditAnnotations.
variables
Variable array
patch strategy: merge on key name
variables содержит определения переменных, которые можно использовать при составлении других выражений. Каждая переменная задаётся как именованное выражение CEL. Определённые здесь переменные будут доступны в других выражениях политики через `variables`, за исключением MatchConditions, поскольку MatchConditions вычисляются до остальной части политики. Выражение переменной может ссылаться на другие переменные, определённые ранее в списке, но не на переменные, следующие за ней. Поэтому Variables должны быть упорядочены по первому появлению и не должны образовывать циклов.

ValidatingAdmissionPolicyStatus

ValidatingAdmissionPolicyStatus отражает состояние политики проверки при допуске.

Поле Описание
conditions
Condition array
conditions отражает последние доступные сведения о текущем состоянии политики.
observedGeneration
integer
observedGeneration — поколение, наблюдаемое контроллером.
typeChecking
TypeChecking
typeChecking содержит результаты проверки типов для каждого выражения. Наличие этого поля указывает на завершение проверки типов.

ValidatingAdmissionPolicyList

ValidatingAdmissionPolicyList — это список ValidatingAdmissionPolicy.

Поле Описание
apiVersion
string
APIVersion определяет версионированную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
items *
ValidatingAdmissionPolicy array
Список ValidatingAdmissionPolicy.
kind
string
Kind — строковое значение, представляющее ресурс REST, который описывает этот объект. Серверы могут определить его по конечной точке, на которую клиент отправляет запросы. Не может быть изменено. В формате CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
ListMeta
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

Поле Описание
expressionWarnings
ExpressionWarning 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` с непересекающимися ключами добавляются с сохранением их относительного порядка. Обязательно.
message
string
message задаёт сообщение, отображаемое при неудачной проверке. Если Expression содержит переносы строк, сообщение обязательно. Сообщение не должно содержать переносов строк. Если поле не задано, сообщение имеет вид "сбой правила: {Rule}". Например: "должен быть URL-адресом с хостом, соответствующим spec.host". Если Expression содержит переносы строк, сообщение обязательно. Сообщение не должно содержать переносов строк. Если поле не задано, сообщение имеет вид "сбой Expression: {Expression}".
messageExpression
string
messageExpression объявляет выражение CEL, которое вычисляется в сообщение о сбое проверки и возвращается при нарушении этого правила. Поскольку messageExpression используется в качестве сообщения об ошибке, оно должно вычисляться в строку. Если для проверки заданы и message, и messageExpression, при сбое проверки будет использоваться messageExpression. Если вычисление messageExpression приводит к ошибке времени выполнения, ошибка записывается в журнал, а сообщение о сбое проверки формируется так, как если бы поле messageExpression не было задано. Если messageExpression вычисляется в пустую строку, строку, содержащую только пробелы, или строку с переносами строк, сообщение о сбое проверки также формируется так, как если бы поле messageExpression не было задано; факт того, что messageExpression вернуло пустую строку, строку только с пробелами или строку с переносами строк, записывается в журнал. messageExpression имеет доступ ко всем тем же переменным, что и `expression`, кроме 'authorizer' и 'authorizer.requestResource'. Пример: "object.x должен быть меньше max ("+string(params.max)+")"
reason
string
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/

Spec-Zone.ru

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