Стадия жизненного цикла модуля: Experimental
У модуля есть требования для установки

Deckhouse Kubernetes Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.

ClusterModel

Scope: Cluster
Version: v1alpha1

Модель, доступная во всём кластере.

Контроллер получает данные из удалённого источника или внешнего каталога, проверяет их и сохраняет локальную копию в DMCR. Когда status.phase становится Ready, рабочие нагрузки могут использовать модель по аннотации ai.deckhouse.io/clustermodel.

  • spec
    объект
    Источник и параметры подготовки модели.
    • spec.source
      объект

      Обязательный параметр

      Источник модели. После создания изменить источник нельзя. Укажите ровно один вариант: url, upload или catalog.
      • spec.source.catalog
        объект
        Импортирует модель из внешнего каталога, описанного ресурсом ModelCatalogSource.
        • spec.source.catalog.name
          строка

          Обязательный параметр

          Имя модели во внешнем каталоге.

          Длина: 1..253

          Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

        • spec.source.catalog.sourceName
          строка
          Имя ModelCatalogSource. Можно не указывать, если в кластере есть только один внешний каталог в фазе Ready.

          Длина: 1..253

          Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

        • spec.source.catalog.version
          строка
          Версия модели во внешнем каталоге, если источник публикует несколько активных версий.

          Длина: 1..128

      • spec.source.upload
        объект
        Запрашивает управляемую сессию загрузки локального файла или архива для общей модели уровня кластера.
      • spec.source.url
        строка
        URL репозитория Hugging Face или ссылка Ollama вида https://ollama.com/library/<name>[:tag].

        Минимальная длина: 1

        Шаблон: ^https:\/\/(((www\.)?huggingface\.co|hf\.co)\/.+|(www\.)?ollama\.com\/library\/[^:\/?#]+(:[^\/?#]+)?([\/?#].*)?)$

  • status
    объект
    Текущее состояние подготовки модели.
    • status.artifact
      объект
      Проверенная локальная копия модели.
      • status.artifact.digest
        строка
        Контрольная сумма локальной копии модели.
      • status.artifact.kind
        строка
        Вид локальной копии модели.

        Допустимые значения: OCI

      • status.artifact.mediaType
        строка
        Тип содержимого OCI-артефакта локальной копии.
      • status.artifact.sizeBytes
        целочисленный
        Размер локальной копии модели в байтах.

        Допустимые значения: 1 <= X

    • status.conditions
      массив объектов
      Подробные условия готовности и причины ошибок.
      • status.conditions.lastTransitionTime
        строка
        Время последнего изменения состояния условия.
      • status.conditions.message
        строка
        Человекочитаемое сообщение с подробностями состояния или ошибки.

        Максимальная длина: 32768

      • status.conditions.observedGeneration
        целочисленный
        Поколение ресурса, для которого выставлено условие.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка
        Машиночитаемая причина последнего изменения условия.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Состояние условия: True, False или Unknown.

        Допустимые значения: True, False, Unknown

      • status.conditions.type
        строка
        Тип условия.

        Максимальная длина: 316

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.observedGeneration
      целочисленный
      Поколение ресурса, которое обработал контроллер.
    • status.phase
      строка
      Текущая фаза: Pending, WaitForUpload, Publishing, Ready, Failed или Deleting.

      Допустимые значения: Pending, WaitForUpload, Publishing, Ready, Failed, Deleting

    • status.progress
      строка
      Понятное описание прогресса текущей операции.
    • status.resolved
      объект
      Рассчитанные свойства модели: формат, семейство и поддержанные возможности.
      • status.resolved.architecture
        строка
        Архитектура модели, если она указана в метаданных.
      • status.resolved.contextWindowTokens
        целочисленный
        Размер контекстного окна, если он известен.

        Допустимые значения: 1 <= X

      • status.resolved.family
        строка
        Семейство модели, если его удалось определить.
      • status.resolved.format
        строка
        Определённый формат исходных файлов модели.

        Допустимые значения: Safetensors, GGUF, Diffusers

      • status.resolved.parameterCount
        целочисленный
        Количество параметров модели, если оно известно.

        Допустимые значения: 1 <= X

      • status.resolved.quantization
        строка
        Квантование модели, если оно указано в метаданных.
      • status.resolved.sourceCapabilities
        объект
        Возможности, которые провайдер источника сообщил в метаданных модели.
        • status.resolved.sourceCapabilities.features
          массив строк
          Возможности модели из метаданных провайдера.
          • status.resolved.sourceCapabilities.features.Элемент массива
            строка
            Название возможности.

            Длина: 1..128

        • status.resolved.sourceCapabilities.provider
          строка
          Провайдер источника метаданных.

          Допустимые значения: HuggingFace, Ollama, Upload, Catalog

        • status.resolved.sourceCapabilities.tasks
          массив строк
          Задачи модели из метаданных провайдера.
          • status.resolved.sourceCapabilities.tasks.Элемент массива
            строка
            Название задачи.

            Длина: 1..128

      • status.resolved.supportedEndpointTypes
        массив строк
        Типы API, которые поддерживает модель.
        • status.resolved.supportedEndpointTypes.Элемент массива
          строка
          Тип API.

          Допустимые значения: Chat, TextGeneration, Embeddings, Rerank, SpeechToText, TextToSpeech, Translation, ImageClassification, ObjectDetection, ImageSegmentation, ImageToText, VisualQuestionAnswering, ImageGeneration, VideoGeneration, AudioGeneration

      • status.resolved.supportedFeatures
        массив строк
        Возможности модели, определённые контроллером.
        • status.resolved.supportedFeatures.Элемент массива
          строка
          Возможность модели.

          Допустимые значения: VisionInput, AudioInput, AudioOutput, ImageOutput, VideoInput, VideoOutput, MultiModalInput, ToolCalling

    • status.source
      объект
      Зафиксированный результат разбора источника.
      • status.source.catalog
        объект
        Зафиксированные сведения внешнего каталога, по которым была импортирована модель.
        • status.source.catalog.catalogRevision
          строка
          Ревизия внешнего каталога.
        • status.source.catalog.name
          строка
          Имя модели во внешнем каталоге.

          Минимальная длина: 1

        • status.source.catalog.remoteDigest
          строка
          Контрольная сумма OCI-артефакта во внешнем каталоге.
        • status.source.catalog.sourceName
          строка
          Имя использованного ModelCatalogSource.

          Минимальная длина: 1

        • status.source.catalog.version
          строка
          Версия модели во внешнем каталоге, если она была выбрана.
      • status.source.resolvedRevision
        строка
        Ревизия, тег или контрольная сумма источника, если провайдер возвращает такую информацию.
      • status.source.resolvedType
        строка
        Тип источника, определённый контроллером.

        Допустимые значения: HuggingFace, Ollama, Upload, Catalog

    • status.upload
      объект
      Данные управляемой сессии загрузки. Secret с URL и токеном доступен только пользователям с правом чтения конкретной загрузки.
      • status.upload.expiresAt
        строка
        Время окончания сессии загрузки.
      • status.upload.secretName
        строка
        Имя Secret с URL загрузки и токеном доступа.

        Минимальная длина: 1

      • status.upload.secretNamespace
        строка
        Пространство имён Secret с URL загрузки и токеном доступа.

        Минимальная длина: 1

ModelCatalogSource

Scope: Cluster
Version: v1alpha1

Внешний каталог моделей.

Ресурс описывает адрес, учётные данные и доверенный сертификат внешнего каталога ClusterModel. Контроллер читает список доступных моделей и импортирует выбранные модели как локальные копии в DMCR.

  • spec
    объект
    Параметры подключения к внешнему каталогу.
    • spec.caSecretName
      строка
      Необязательное имя Secret в d8-system с ключом ca.crt для доверия к частному центру сертификации внешнего каталога.

      Длина: 1..253

      Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

    • spec.credentialsSecretName
      строка

      Обязательный параметр

      Имя Secret в d8-system с токеном доступа к внешнему каталогу. Контроллер читает Secret напрямую и не копирует его в пространства имён приложений.

      Длина: 1..253

      Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

    • spec.refreshInterval
      строка
      Как часто контроллер обновляет список моделей во внешнем каталоге. Если не указано, используется безопасное значение по умолчанию.
    • spec.url
      строка

      Обязательный параметр

      HTTPS-адрес внешнего каталога моделей.

      Минимальная длина: 9

      Шаблон: ^https:\/\/[^:\/?#@]+(:[0-9]+)?(\/[^?#]*)?$

  • status
    объект
    Состояние подключения к внешнему каталогу.
    • status.catalogRevision
      строка
      Последняя успешно прочитанная ревизия каталога.
    • status.conditions
      массив объектов
      Условия готовности и причины ошибок подключения.
      • status.conditions.lastTransitionTime
        строка
        Время последнего изменения состояния условия.
      • status.conditions.message
        строка
        Человекочитаемое сообщение с подробностями состояния или ошибки.

        Максимальная длина: 32768

      • status.conditions.observedGeneration
        целочисленный
        Поколение ресурса, для которого выставлено условие.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка
        Машиночитаемая причина последнего изменения условия.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Состояние условия: True, False или Unknown.

        Допустимые значения: True, False, Unknown

      • status.conditions.type
        строка
        Тип условия.

        Максимальная длина: 316

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.entryCount
      целочисленный
      Количество моделей в последней успешной ревизии.

      Допустимые значения: 0 <= X

    • status.lastSuccessfulRefreshTime
      строка
      Время последнего успешного обновления каталога.
    • status.observedGeneration
      целочисленный
      Поколение ресурса, обработанное контроллером.

Model

Scope: Namespaced
Version: v1alpha1

Модель в пространстве имён.

Контроллер получает данные из удалённого источника, загрузки пользователя или внешнего каталога, проверяет их и сохраняет локальную копию в DMCR. Когда status.phase становится Ready, рабочие нагрузки в том же пространстве имён могут использовать модель по аннотации ai.deckhouse.io/model.

  • spec
    объект
    Источник и параметры подготовки модели.
    • spec.source
      объект

      Обязательный параметр

      Источник модели. После создания изменить источник нельзя. Укажите ровно один вариант: url, upload или catalog.
      • spec.source.authSecretRef
        объект
        Secret из того же пространства имён с токеном доступа к приватному репозиторию Hugging Face.
        • spec.source.authSecretRef.name
          строка

          Обязательный параметр

          Имя Secret.

          Минимальная длина: 1

      • spec.source.catalog
        объект
        Импортирует модель из внешнего каталога, описанного ресурсом ModelCatalogSource.
        • spec.source.catalog.name
          строка

          Обязательный параметр

          Имя модели во внешнем каталоге.

          Длина: 1..253

          Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

        • spec.source.catalog.sourceName
          строка
          Имя ModelCatalogSource. Можно не указывать, если в кластере есть только один внешний каталог в фазе Ready.

          Длина: 1..253

          Шаблон: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$

        • spec.source.catalog.version
          строка
          Версия модели во внешнем каталоге, если источник публикует несколько активных версий.

          Длина: 1..128

      • spec.source.upload
        объект
        Запрашивает управляемую сессию загрузки локального файла или архива.
      • spec.source.url
        строка
        URL репозитория Hugging Face или ссылка Ollama вида https://ollama.com/library/<name>[:tag].

        Минимальная длина: 1

        Шаблон: ^https:\/\/(((www\.)?huggingface\.co|hf\.co)\/.+|(www\.)?ollama\.com\/library\/[^:\/?#]+(:[^\/?#]+)?([\/?#].*)?)$

  • status
    объект
    Текущее состояние подготовки и доставки модели.
    • status.artifact
      объект
      Проверенная локальная копия модели.
      • status.artifact.digest
        строка
        Контрольная сумма локальной копии модели.
      • status.artifact.kind
        строка
        Вид локальной копии модели.

        Допустимые значения: OCI

      • status.artifact.mediaType
        строка
        Тип содержимого OCI-артефакта локальной копии.
      • status.artifact.sizeBytes
        целочисленный
        Размер локальной копии модели в байтах.

        Допустимые значения: 1 <= X

    • status.conditions
      массив объектов
      Подробные условия готовности и причины ошибок.
      • status.conditions.lastTransitionTime
        строка
        Время последнего изменения состояния условия.
      • status.conditions.message
        строка
        Человекочитаемое сообщение с подробностями состояния или ошибки.

        Максимальная длина: 32768

      • status.conditions.observedGeneration
        целочисленный
        Поколение ресурса, для которого выставлено условие.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка
        Машиночитаемая причина последнего изменения условия.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Состояние условия: True, False или Unknown.

        Допустимые значения: True, False, Unknown

      • status.conditions.type
        строка
        Тип условия.

        Максимальная длина: 316

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.observedGeneration
      целочисленный
      Поколение ресурса, которое обработал контроллер.
    • status.phase
      строка
      Текущая фаза: Pending, WaitForUpload, Publishing, Ready, Failed или Deleting.

      Допустимые значения: Pending, WaitForUpload, Publishing, Ready, Failed, Deleting

    • status.progress
      строка
      Понятное описание прогресса текущей операции.
    • status.resolved
      объект
      Рассчитанные свойства модели: формат, семейство и поддержанные возможности.
      • status.resolved.architecture
        строка
        Архитектура модели, если она указана в метаданных.
      • status.resolved.contextWindowTokens
        целочисленный
        Размер контекстного окна, если он известен.

        Допустимые значения: 1 <= X

      • status.resolved.family
        строка
        Семейство модели, если его удалось определить.
      • status.resolved.format
        строка
        Определённый формат исходных файлов модели.

        Допустимые значения: Safetensors, GGUF, Diffusers

      • status.resolved.parameterCount
        целочисленный
        Количество параметров модели, если оно известно.

        Допустимые значения: 1 <= X

      • status.resolved.quantization
        строка
        Квантование модели, если оно указано в метаданных.
      • status.resolved.sourceCapabilities
        объект
        Возможности, которые провайдер источника сообщил в метаданных модели.
        • status.resolved.sourceCapabilities.features
          массив строк
          Возможности модели из метаданных провайдера.
          • status.resolved.sourceCapabilities.features.Элемент массива
            строка
            Название возможности.

            Длина: 1..128

        • status.resolved.sourceCapabilities.provider
          строка
          Провайдер источника метаданных.

          Допустимые значения: HuggingFace, Ollama, Upload, Catalog

        • status.resolved.sourceCapabilities.tasks
          массив строк
          Задачи модели из метаданных провайдера.
          • status.resolved.sourceCapabilities.tasks.Элемент массива
            строка
            Название задачи.

            Длина: 1..128

      • status.resolved.supportedEndpointTypes
        массив строк
        Типы API, которые поддерживает модель.
        • status.resolved.supportedEndpointTypes.Элемент массива
          строка
          Тип API.

          Допустимые значения: Chat, TextGeneration, Embeddings, Rerank, SpeechToText, TextToSpeech, Translation, ImageClassification, ObjectDetection, ImageSegmentation, ImageToText, VisualQuestionAnswering, ImageGeneration, VideoGeneration, AudioGeneration

      • status.resolved.supportedFeatures
        массив строк
        Возможности модели, определённые контроллером.
        • status.resolved.supportedFeatures.Элемент массива
          строка
          Возможность модели.

          Допустимые значения: VisionInput, AudioInput, AudioOutput, ImageOutput, VideoInput, VideoOutput, MultiModalInput, ToolCalling

    • status.source
      объект
      Зафиксированный результат разбора источника.
      • status.source.catalog
        объект
        Зафиксированные сведения внешнего каталога, по которым была импортирована модель.
        • status.source.catalog.catalogRevision
          строка
          Ревизия внешнего каталога.
        • status.source.catalog.name
          строка
          Имя модели во внешнем каталоге.

          Минимальная длина: 1

        • status.source.catalog.remoteDigest
          строка
          Контрольная сумма OCI-артефакта во внешнем каталоге.
        • status.source.catalog.sourceName
          строка
          Имя использованного ModelCatalogSource.

          Минимальная длина: 1

        • status.source.catalog.version
          строка
          Версия модели во внешнем каталоге, если она была выбрана.
      • status.source.resolvedRevision
        строка
        Ревизия, тег или контрольная сумма источника, если провайдер возвращает такую информацию.
      • status.source.resolvedType
        строка
        Тип источника, определённый контроллером.

        Допустимые значения: HuggingFace, Ollama, Upload, Catalog

    • status.upload
      объект
      Данные управляемой сессии загрузки. Secret с URL и токеном доступен только пользователям с правом чтения конкретной загрузки.
      • status.upload.expiresAt
        строка
        Время окончания сессии загрузки.
      • status.upload.secretName
        строка
        Имя Secret с URL загрузки и токеном доступа.

        Минимальная длина: 1

      • status.upload.secretNamespace
        строка
        Пространство имён Secret с URL загрузки и токеном доступа.

        Минимальная длина: 1