Deckhouse Kubernetes Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.
Стадия жизненного цикла модуля: General Availability
ConversionWebhook
Scope: Cluster
Version: v1alpha1
Кастомный ресурс для настройки вебхуков конвертации версий CRD.
Один кастомный ресурс ConversionWebhook описывает обработчики конвертации между версиями пользовательских ресурсов.
- строкаapiVersion
APIVersion определяет версионную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Более подробно: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.
- массив объектовcontext
Запускает хук при изменениях объектов Kubernetes.
- объектcontext.kubernetes
- булевыйcontext.kubernetes.allowFailure
Если
true, Shell-operator игнорирует ошибки выполнения хука. Еслиfalseили параметр не установлен, хук перезапускается через 5 секунд после ошибки. - строкаcontext.kubernetes.apiVersion
Необязательная группа и версия API объекта. Например,
v1для основных объектов (Pod и т.д.),rbac.authorization.k8s.io/v1beta1для ClusterRole иmonitoring.coreos.com/v1для prometheus-operator. - объектcontext.kubernetes.fieldSelector
- массив объектовcontext.kubernetes.fieldSelector.matchExpressions
Обязательный параметр
- строкаcontext.kubernetes.fieldSelector.matchExpressions.field
Обязательный параметр
- строкаcontext.kubernetes.fieldSelector.matchExpressions.operator
Обязательный параметр
- строкаcontext.kubernetes.fieldSelector.matchExpressions.value
- массив строкcontext.kubernetes.includeSnapshotsFrom
Массив имен привязок kubernetes в хуке. При указании, список отслеживаемых объектов из этих привязок будет добавлен в контекст привязки в поле
snapshots. Возможно само-включение. - строкаcontext.kubernetes.jqFilter
Необязательный параметр, который указывает фильтрацию событий с использованием синтаксиса jq. Хук будет запущен на событии “Modified” только если результат фильтра изменился после последнего события.
- строкаcontext.kubernetes.kind
Обязательный параметр
Тип отслеживаемого ресурса Kubernetes. Это поле обязательно.
- объектcontext.kubernetes.labelSelector
Селектор меток для фильтрации ресурсов. Результат
matchLabelsиmatchExpressionsобъединяется черезAND. Пустой селектор меток соответствует всем объектам. Нулевой селектор меток не соответствует ни одному объекту.- массив объектовcontext.kubernetes.labelSelector.matchExpressions
Список фильтров на основе выражений. Итоговый результат — результат пересечения множеств, определяемых всеми фильтрами в списке (операция
И).Селектор, содержащий значения, ключ и оператор, который связывает ключ и значения.
- строкаcontext.kubernetes.labelSelector.matchExpressions.key
Обязательный параметр
Ключ метки, к которому применяется селектор.
- строкаcontext.kubernetes.labelSelector.matchExpressions.operator
Обязательный параметр
Представляет соотношение ключа с набором значений. Допустимые операторы:
In,NotIn,ExistsиDoesNotExist. - массив строкcontext.kubernetes.labelSelector.matchExpressions.values
values— массив строковых значений. Если вoperatorзначениеInилиNotIn, массив значений не должен быть пустым. Если вoperatorзначениеExistsилиDoesNotExist, массив значений должен быть пустым. Этот массив заменяется во время стратегического слияния патчей.
- объектcontext.kubernetes.labelSelector.matchLabels
Карта пар {ключ, значение}. Одна пара {ключ, значение} в карте
matchLabelsэквивалентна элементуmatchExpressions, ключевое поле которого —key, оператор —In, а массив значений содержит только «значение». Требования объединяются операторомAND.
- объектcontext.kubernetes.nameSelector
- массив строкcontext.kubernetes.nameSelector.matchNames
Обязательный параметр
- объектcontext.kubernetes.namespace
Фильтры для выбора пространств имен.
- объектcontext.kubernetes.namespace.labelSelector
Селектор меток для фильтрации пространств имен.
- массив объектовcontext.kubernetes.namespace.labelSelector.matchExpressions
Список фильтров на основе выражений. Итоговый результат — результат пересечения множеств, определяемых всеми фильтрами в списке (операция
И).Селектор, содержащий значения, ключ и оператор, который связывает ключ и значения.
- строкаcontext.kubernetes.namespace.labelSelector.matchExpressions.key
Обязательный параметр
Ключ метки, к которому применяется селектор.
- строкаcontext.kubernetes.namespace.labelSelector.matchExpressions.operator
Обязательный параметр
Представляет соотношение ключа с набором значений. Допустимые операторы:
In,NotIn,ExistsиDoesNotExist. - массив строкcontext.kubernetes.namespace.labelSelector.matchExpressions.values
values— массив строковых значений. Если вoperatorзначениеInилиNotIn, массив значений не должен быть пустым. Если вoperatorзначениеExistsилиDoesNotExist, массив значений должен быть пустым. Этот массив заменяется во время стратегического слияния патчей.
- объектcontext.kubernetes.namespace.labelSelector.matchLabels
Карта пар {ключ, значение}. Одна пара {ключ, значение} в карте
matchLabelsэквивалентна элементуmatchExpressions, ключевое поле которого —key, оператор —In, а массив значений содержит только «значение». Требования объединяются операторомAND.
- объектcontext.kubernetes.namespace.nameSelector
- массив строкcontext.kubernetes.namespace.nameSelector.matchNames
Обязательный параметр
- строкаcontext.kubernetes.queue
Имя отдельной очереди. Может использоваться для выполнения долго работающих хуков параллельно с хуками в «основной» очереди.
- строкаcontext.name
Обязательный параметр
Используется для различения разных привязок во время выполнения.
- массив объектовconversions
Обязательный параметр
Эта привязка превращает хук в обработчик для конвертации, определенной в CustomResourceDefinition. Shell-operator обновляет CRD с помощью
.spec.conversion, запускает HTTPS сервер и выполняет хуки для обработки запросов ConversionReview.- строкаconversions.from
Обязательный параметр
Версия пользовательского ресурса, которую хук может конвертировать.
- объектconversions.handler
Обязательный параметр
Код обработчика конвертации.
- строкаconversions.handler.python
Python-скрипт обработчика для объекта.
- массив строкconversions.includeSnapshotsFrom
Массив имен привязок kubernetes в хуке. При указании, список отслеживаемых объектов из этих привязок будет добавлен в контекст привязки в поле
snapshots. - строкаconversions.to
Обязательный параметр
Версия пользовательского ресурса, которую хук может производить.
- строкаkind
Kind — это строковое значение, представляющее REST-ресурс, который описывает этот объект. Серверы могут определять его на основе конечной точки, к которой клиент отправляет запросы. Не может быть изменено. Записывается в CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds.
- объектmetadata
ValidationWebhook
Scope: Cluster
Version: v1alpha1
Кастомный ресурс для настройки вебхуков валидации Kubernetes ресурсов.
Один кастомный ресурс ValidationWebhook описывает обработчик валидации для определенных типов ресурсов и операций.
- строкаapiVersion
APIVersion определяет версионную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Более подробно: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources.
- массив объектовcontext
Запускает хук при изменениях объектов Kubernetes.
- объектcontext.kubernetes
- булевыйcontext.kubernetes.allowFailure
Если
true, Shell-operator игнорирует ошибки выполнения хука. Еслиfalseили параметр не установлен, хук перезапускается через 5 секунд после ошибки. - строкаcontext.kubernetes.apiVersion
Необязательная группа и версия API объекта. Например,
v1для основных объектов (Pod и т.д.),rbac.authorization.k8s.io/v1beta1для ClusterRole иmonitoring.coreos.com/v1для prometheus-operator. - объектcontext.kubernetes.fieldSelector
- массив объектовcontext.kubernetes.fieldSelector.matchExpressions
Обязательный параметр
- строкаcontext.kubernetes.fieldSelector.matchExpressions.field
Обязательный параметр
- строкаcontext.kubernetes.fieldSelector.matchExpressions.operator
Обязательный параметр
- строкаcontext.kubernetes.fieldSelector.matchExpressions.value
- массив строкcontext.kubernetes.includeSnapshotsFrom
Массив имен привязок kubernetes в хуке. При указании, список отслеживаемых объектов из этих привязок будет добавлен в контекст привязки в поле snapshots. Возможно само-включение.
- строкаcontext.kubernetes.jqFilter
Необязательный параметр, который указывает фильтрацию событий с использованием синтаксиса jq.
Хук будет запущен на событии «Modified» только если результат фильтра изменился после последнего события.
- строкаcontext.kubernetes.kind
Обязательный параметр
Тип отслеживаемого ресурса Kubernetes. Это поле обязательно.
- объектcontext.kubernetes.labelSelector
Селектор меток для фильтрации ресурсов. Результат
matchLabelsиmatchExpressionsобъединяется черезAND. Пустой селектор меток соответствует всем объектам. Нулевой селектор меток не соответствует ни одному объекту.- массив объектовcontext.kubernetes.labelSelector.matchExpressions
Список фильтров на основе выражений. Итоговый результат — результат пересечения множеств, определяемых всеми фильтрами в списке (операция
И).Селектор, содержащий значения, ключ и оператор, который связывает ключ и значения.
- строкаcontext.kubernetes.labelSelector.matchExpressions.key
Обязательный параметр
Ключ метки, к которому применяется селектор.
- строкаcontext.kubernetes.labelSelector.matchExpressions.operator
Обязательный параметр
Представляет соотношение ключа с набором значений. Допустимые операторы:
In,NotIn,ExistsиDoesNotExist. - массив строкcontext.kubernetes.labelSelector.matchExpressions.values
values— массив строковых значений. Если вoperatorзначениеInилиNotIn, массив значений не должен быть пустым. Если вoperatorзначениеExistsилиDoesNotExist, массив значений должен быть пустым. Этот массив заменяется во время стратегического слияния патчей.
- объектcontext.kubernetes.labelSelector.matchLabels
Карта пар {ключ, значение}. Одна пара {ключ, значение} в карте
matchLabelsэквивалентна элементуmatchExpressions, ключевое поле которого —key, оператор —In, а массив значений содержит только «значение». Требования объединяются операторомAND.
- объектcontext.kubernetes.nameSelector
- массив строкcontext.kubernetes.nameSelector.matchNames
Обязательный параметр
- объектcontext.kubernetes.namespace
Фильтры для выбора пространств имен.
- объектcontext.kubernetes.namespace.labelSelector
Селектор меток для фильтрации пространств имен.
- массив объектовcontext.kubernetes.namespace.labelSelector.matchExpressions
Список фильтров на основе выражений. Итоговый результат — результат пересечения множеств, определяемых всеми фильтрами в списке (операция
И).Селектор, содержащий значения, ключ и оператор, который связывает ключ и значения.
- строкаcontext.kubernetes.namespace.labelSelector.matchExpressions.key
Обязательный параметр
Ключ метки, к которому применяется селектор.
- строкаcontext.kubernetes.namespace.labelSelector.matchExpressions.operator
Обязательный параметр
Представляет соотношение ключа с набором значений. Допустимые операторы:
In,NotIn,ExistsиDoesNotExist. - массив строкcontext.kubernetes.namespace.labelSelector.matchExpressions.values
values— массив строковых значений. Если вoperatorзначениеInилиNotIn, массив значений не должен быть пустым. Если вoperatorзначениеExistsилиDoesNotExist, массив значений должен быть пустым. Этот массив заменяется во время стратегического слияния патчей.
- объектcontext.kubernetes.namespace.labelSelector.matchLabels
Карта пар {ключ, значение}. Одна пара {ключ, значение} в карте
matchLabelsэквивалентна элементуmatchExpressions, ключевое поле которого —key, оператор —In, а массив значений содержит только «значение». Требования объединяются операторомAND.
- объектcontext.kubernetes.namespace.nameSelector
- массив строкcontext.kubernetes.namespace.nameSelector.matchNames
Обязательный параметр
- строкаcontext.kubernetes.queue
Имя отдельной очереди. Может использоваться для выполнения долго работающих хуков параллельно с хуками в «основной» очереди.
- строкаcontext.name
Обязательный параметр
Используется для различения разных привязок во время выполнения.
- объектhandler
Обязательный параметр
Код обработчика ValidatingWebhook.
- строкаhandler.cel
CEL-обработчик правил для объекта.
- строкаhandler.python
Python-скрипт обработчика для объекта.
- строкаkind
Kind — это строковое значение, представляющее REST-ресурс, который описывает этот объект. Серверы могут определять его на основе конечной точки, к которой клиент отправляет запросы. Не может быть изменено. Записывается в CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- объектmetadata
- объектvalidationObject
Обязательный параметр
ValidatingWebhook описывает вебхук, ресурсы и операции, к которым он применяется.
- строкаvalidationObject.failurePolicy
Определяет, как обрабатываются ошибки от хука.
- строкаvalidationObject.group
Ключ для включения снимков из группы привязок schedule и kubernetes.
- объектvalidationObject.labelSelector
Селектор меток для фильтрации ресурсов. Результат
matchLabelsиmatchExpressionsобъединяется черезAND. Пустой селектор меток соответствует всем объектам. Нулевой селектор меток не соответствует ни одному объекту.- массив объектовvalidationObject.labelSelector.matchExpressions
Список фильтров на основе выражений. Итоговый результат — результат пересечения множеств, определяемых всеми фильтрами в списке (операция
И).Селектор, содержащий значения, ключ и оператор, который связывает ключ и значения.
- строкаvalidationObject.labelSelector.matchExpressions.key
Обязательный параметр
Ключ метки, к которому применяется селектор.
- строкаvalidationObject.labelSelector.matchExpressions.operator
Обязательный параметр
Представляет соотношение ключа с набором значений. Допустимые операторы:
In,NotIn,ExistsиDoesNotExist. - массив строкvalidationObject.labelSelector.matchExpressions.values
values— массив строковых значений. Если вoperatorзначениеInилиNotIn, массив значений не должен быть пустым. Если вoperatorзначениеExistsилиDoesNotExist, массив значений должен быть пустым. Этот массив заменяется во время стратегического слияния патчей.
- объектvalidationObject.labelSelector.matchLabels
Карта пар {ключ, значение}. Одна пара {ключ, значение} в карте
matchLabelsэквивалентна элементуmatchExpressions, ключевое поле которого —key, оператор —In, а массив значений содержит только «значение». Требования объединяются операторомAND.
- массив объектовvalidationObject.matchConditions
Дополнительный список условий соответствия для тонкой фильтрации запросов. Доступно только начиная с версии Kubernetes 1.27.
matchConditionпредставляет собой условие, которое должно быть выполнено для отправки запроса в вебхук.- строкаvalidationObject.matchConditions.expression
Обязательный параметр
Представляет собой выражение, которое будет оценено CEL. Должно оцениваться как bool. Выражения CEL имеют доступ к содержимому AdmissionRequest и Authorizer, организованному в переменные CEL:
object— объект из входящего запроса. Значение равноnullдля запросовDELETE.oldObject— существующий объект. Для запросовCREATEзначение равноnull.request— атрибуты запроса на допуск (/pkg/apis/admission/types.go#AdmissionRequest).authorizer— авторизатор CEL. Может использоваться для выполнения проверок авторизации для субъекта (пользователя или учетной записи службы) запроса. См. https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authzauthorizer.requestResource— CEL ResourceCheck, построенный изauthorizerи настроенный с помощью ресурса запроса. Документация по CEL: https://kubernetes.io/docs/reference/using-api/cel/.
- строкаvalidationObject.matchConditions.name
Обязательный параметр
Является идентификатором для этого условия соответствия, используемым для стратегического объединения MatchConditions, а также для предоставления идентификатора для целей ведения журнала. Хорошее имя должно описывать связанное с ним выражение. Имя должно быть квалифицированным именем, состоящим из алфавитно-цифровых символов,
-,_или., и должно начинаться и заканчиваться алфавитно-цифровым символом (например,MyName, илиmy.name, или123-abc, регулярное выражение, используемое для проверки, —([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]) с необязательным префиксом поддомена DNS и/(например,example.com/MyName).
- строкаvalidationObject.name
Обязательный параметр
Должно быть доменом с как минимум тремя сегментами, разделенными точками.
- объектvalidationObject.namespace
Namespace filtering. Only labelSelector is supported (not nameSelector). To filter by namespace name, use labelSelector with kubernetes.io/metadata.name label.
- объектvalidationObject.namespace.labelSelector
Селектор меток для фильтрации пространств имен.
- массив объектовvalidationObject.namespace.labelSelector.matchExpressions
Список фильтров на основе выражений. Итоговый результат — результат пересечения множеств, определяемых всеми фильтрами в списке (операция
И).Селектор, содержащий значения, ключ и оператор, который связывает ключ и значения.
- строкаvalidationObject.namespace.labelSelector.matchExpressions.key
Обязательный параметр
Ключ метки, к которому применяется селектор.
- строкаvalidationObject.namespace.labelSelector.matchExpressions.operator
Обязательный параметр
Представляет соотношение ключа с набором значений. Допустимые операторы:
In,NotIn,ExistsиDoesNotExist. - массив строкvalidationObject.namespace.labelSelector.matchExpressions.values
values— массив строковых значений. Если вoperatorзначениеInилиNotIn, массив значений не должен быть пустым. Если вoperatorзначениеExistsилиDoesNotExist, массив значений должен быть пустым. Этот массив заменяется во время стратегического слияния патчей.
- объектvalidationObject.namespace.labelSelector.matchLabels
Карта пар {ключ, значение}. Одна пара {ключ, значение} в карте
matchLabelsэквивалентна элементуmatchExpressions, ключевое поле которого —key, оператор —In, а массив значений содержит только «значение». Требования объединяются операторомAND.
- массив объектовvalidationObject.rules
Обязательный список правил, используемых для определения, следует ли отправить запрос к Kubernetes API server в хук.
RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.
- массив строкvalidationObject.rules.apiGroups
API-группы, к которым принадлежат ресурсы.
*означает все группы. - массив строкvalidationObject.rules.apiVersions
API-версии, к которым принадлежат ресурсы.
*означает все версии. - массив строкvalidationObject.rules.operations
Операции, которые интересуют admission hook:
CREATE,UPDATE,DELETE,CONNECTили*для всех операций.- строкаЭлемент массива
OperationType specifies an operation for a request.
- массив строкvalidationObject.rules.resources
Список ресурсов, к которым применяется это правило.
- строкаvalidationObject.rules.scope
Определяет область действия этого правила. Допустимые значения:
Cluster,Namespacedи*.Clusterозначает, что этому правилу будут соответствовать только ресурсы, относящиеся к кластеру. Объекты API пространства имен относятся к кластеру.Namespacedозначает, что только ресурсы с пространством имен будут соответствовать этому правилу.*означает, что нет ограничений по области действия. Подресурсы соответствуют области действия своего родительского ресурса. По умолчанию используется значение*.
- строкаvalidationObject.sideEffects
Определяет, знает ли хук о dryRun.
- целочисленныйvalidationObject.timeoutSeconds
Количество секунд, которое API сервер должен ждать ответа от хука, прежде чем считать вызов неудачным. По умолчанию 10 (секунд).