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#Authz
        • authorizer.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 (секунд).