MutatingAdmissionPolicy
apiVersion: admissionregistration.k8s.io/v1
import "k8s.io/api/admissionregistration/v1"
MutatingAdmissionPolicy
MutatingAdmissionPolicy описывает определение политики мутации при допуске, которая изменяет объект, поступающий в цепочку допуска.
| Поле | Описание |
|---|---|
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. |
specMutatingAdmissionPolicySpec |
spec определяет желаемое поведение MutatingAdmissionPolicy. |
MutatingAdmissionPolicySpec
MutatingAdmissionPolicySpec определяет желаемое поведение политики допуска.
| Поле | Описание |
|---|---|
failurePolicystring |
failurePolicy определяет порядок обработки ошибок политики допуска. Ошибки могут возникать из-за ошибок разбора выражений CEL, ошибок проверки типов, ошибок выполнения, а также недопустимых или неправильно настроенных определений политик и привязок. Политика недопустима, если paramKind ссылается на несуществующий Kind. Привязка недопустима, если paramRef.name ссылается на несуществующий ресурс. failurePolicy не определяет, как обрабатываются проверки, результатом которых является false. Допустимые значения: Ignore или Fail. По умолчанию — Fail. Возможные значения перечисления: - `"Fail"` означает, что ошибка при вызове веб-перехватчика приводит к отклонению запроса допуска. - `"Ignore"` означает, что ошибка при вызове веб-перехватчика игнорируется. |
matchConditionsMatchCondition array patch strategy: merge on key name
|
matchConditions — список условий, которые должны быть выполнены, чтобы запрос был проверен. Условия сопоставления фильтруют запросы, уже сопоставленные с помощью matchConstraints. Пустой список matchConditions соответствует всем запросам. Допускается не более 64 условий сопоставления. Если указан объект параметров, к нему можно обращаться с помощью дескриптора `params` так же, как и в выражениях проверки. Точная логика сопоставления выполняется в следующем порядке: 1. Если любое условие сопоставления принимает значение FALSE, политика пропускается. 2. Если все условия сопоставления принимают значение TRUE, политика вычисляется. 3. Если какое-либо условие сопоставления возвращает ошибку (но ни одно из них не принимает значение FALSE): - Если failurePolicy=Fail, запрос отклоняется. - Если failurePolicy=Ignore, политика пропускается. |
matchConstraintsMatchResources |
matchConstraints указывает, какие ресурсы предназначены для проверки этой политикой. MutatingAdmissionPolicy обрабатывает запрос, если он соответствует _всем_ ограничениям. Однако, чтобы не допустить перехода кластера в нестабильное состояние, из которого нельзя восстановиться через API, MutatingAdmissionPolicy не может соответствовать MutatingAdmissionPolicy и MutatingAdmissionPolicyBinding. Допускаются операции CREATE, UPDATE и CONNECT. Операция DELETE не может быть сопоставлена. '\*' соответствует CREATE, UPDATE и CONNECT. Обязательное поле. |
mutationsMutation array |
mutations содержит операции, выполняемые над соответствующими объектами. Поле mutations не может быть пустым; требуется как минимум одна мутация. Мутации вычисляются по порядку и повторно вызываются в соответствии с reinvocationPolicy. Мутации политики вызываются для каждой привязки этой политики, а повторный вызов мутаций выполняется отдельно для каждой привязки. |
paramKindParamKind |
paramKind указывает вид ресурсов, используемых для параметризации этой политики. Если поле отсутствует, у политики нет параметров, и переменная CEL param не будет доступна выражениям проверки. Если paramKind ссылается на несуществующий вид, определение политики настроено неправильно и применяется FailurePolicy. Если paramKind указан, но paramRef не задан в MutatingAdmissionPolicyBinding, переменная params будет иметь значение null. |
reinvocationPolicystring |
reinvocationPolicy указывает, могут ли мутации вызываться несколько раз для каждой MutatingAdmissionPolicyBinding в рамках одной проверки допуска. Допустимые значения: "Never" и "IfNeeded". Never: эти мутации не будут вызываться более одного раза для каждой привязки в рамках одной проверки допуска. IfNeeded: эти мутации могут вызываться более одного раза для каждой привязки в рамках одного запроса допуска; порядок относительно других плагинов допуска, веб-перехватчиков допуска, привязок этой политики и политик допуска не гарантируется. Повторный вызов мутаций выполняется только тогда, когда после вызова этой мутации другие мутации изменили объект. Обязательное поле. Возможные значения перечисления: - `"IfNeeded"` означает, что мутация может быть вызвана как минимум еще один раз в рамках проверки допуска, если другие плагины допуска изменили принимаемый объект после первоначального вызова мутации. - `"Never"` означает, что мутация не должна вызываться более одного раза в рамках одной проверки допуска. |
variablesVariable array |
variables содержит определения переменных, которые можно использовать при составлении других выражений. Каждая переменная определяется как именованное выражение CEL. Определенные здесь переменные будут доступны в других выражениях политики через `variables`, за исключением matchConditions, поскольку matchConditions вычисляются до остальной части политики. Выражение переменной может ссылаться на другие переменные, определенные ранее в списке, но не на переменные, определенные позже. Поэтому переменные должны быть отсортированы по порядку первого появления и не должны образовывать циклов. |
MutatingAdmissionPolicyList
MutatingAdmissionPolicyList — это список MutatingAdmissionPolicy.
| Поле | Описание |
|---|---|
apiVersionstring |
APIVersion определяет схему с указанием версии для этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
items *MutatingAdmissionPolicy 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 |
ApplyConfiguration
ApplyConfiguration определяет желаемые значения конфигурации объекта.
| Поле | Описание |
|---|---|
expressionstring |
expression вычисляется CEL для создания конфигурации применения. Ссылка: https://github.com/google/cel-spec Конфигурации применения объявляются в CEL с помощью инициализации объекта. Например, это выражение CEL возвращает конфигурацию применения для задания одного поля: Object{ spec: Object.spec{ serviceAccountName: "example" } } Конфигурации применения не могут изменять атомарные структуры, карты или массивы из-за риска случайного удаления значений, не включенных в конфигурацию применения. Выражения CEL имеют доступ к типам объектов, необходимым для создания конфигураций применения: - 'Object' — тип CEL объекта ресурса. - 'Object.\ |
JSONPatch
JSONPatch определяет JSON Patch.
| Поле | Описание |
|---|---|
expressionstring |
expression вычисляется CEL для создания [JSON-патча](https://jsonpatch.com/). Ссылка: https://github.com/google/cel-spec Выражение должно возвращать массив значений JSONPatch. Например, это выражение CEL возвращает JSON-патч для условного изменения значения: [ JSONPatch{op: "test", path: "/spec/example", value: "Red"}, JSONPatch{op: "replace", path: "/spec/example", value: "Green"} ] Чтобы определить объект для значения патча, используйте типы Object. Например: [ JSONPatch{ op: "add", path: "/spec/selector", value: Object.spec.selector{matchLabels: {"environment": "test"}} } ] Чтобы использовать строки, содержащие '/' и '~', в качестве ключей пути JSONPatch, используйте "jsonpatch.escapeKey". Например: [ JSONPatch{ op: "add", path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), value: "test" }, ] Выражения CEL имеют доступ к типам, необходимым для создания JSON-патчей и объектов: - 'JSONPatch' — тип CEL для операций JSON Patch. JSONPatch содержит поля 'op', 'from', 'path' и 'value'. Подробнее см. в [JSON Patch](https://jsonpatch.com/). Полю 'value' можно присвоить любое из следующих значений: строка, целое число, массив, карта или объект. Если оно задано, поля 'path' и 'from' должны содержать строку [JSON Pointer](https://datatracker.ietf.org/doc/html/rfc6901/); для экранирования ключей пути, содержащих '/' и '~', можно использовать функцию CEL 'jsonpatch.escapeKey()'. - 'Object' — тип CEL объекта ресурса. - 'Object.\ |
Mutation
Mutation задает выражение CEL, используемое для применения мутации.
| Поле | Описание |
|---|---|
applyConfigurationApplyConfiguration |
applyConfiguration определяет желаемые значения конфигурации объекта. Конфигурация применяется к объекту допуска с помощью [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). Для создания конфигурации применения используется выражение CEL. |
jsonPatchJSONPatch |
jsonPatch определяет операцию [JSON Patch](https://jsonpatch.com/), выполняющую мутацию объекта. Для создания JSON Patch используется выражение CEL. |
patchType *string |
patchType указывает используемую стратегию применения патча. Допустимые значения: "ApplyConfiguration" и "JSONPatch". Обязательное поле. Возможные значения перечисления: - `"ApplyConfiguration"` ApplyConfiguration означает, что для изменения объекта используется конфигурация применения. - `"JSONPatch"` JSONPatch означает, что объект изменяется с помощью JSON Patch. |
© 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/mutating-admission-policy-v1/