Стадия жизненного цикла модуля: 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.urlURL репозитория 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Данные управляемой сессии загрузки. Секрет с URL и токеном доступен только пользователям с правом чтения конкретной загрузки.
-
строкаstatus.upload.expiresAtВремя окончания сессии загрузки.
-
строкаstatus.upload.secretNameИмя секрета с URL загрузки и токеном доступа.
Минимальная длина:
1 -
строкаstatus.upload.secretNamespaceНеймспейс секрета с URL загрузки и токеном доступа.
Минимальная длина:
1
-
-
ModelCatalogSource
Scope: Cluster
Version: v1alpha1
Внешний каталог моделей.
Ресурс описывает внешний каталог, из которого контроллер читает
список доступных моделей и импортирует выбранные как локальные
копии в DMCR. Тип каталога выбирается параметром spec.type:
каталог другого кластера или индекс провайдера Hugging Face.
-
объектspecПараметры подключения к внешнему каталогу.
-
строкаspec.caSecretNameНеобязательное имя секрета в
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Имя секрета в
d8-systemс токеном доступа к внешнему каталогу: используется backend’омCatalogдля semantic catalog API и обмена grant’ами. Контроллер читает секрет напрямую и не копирует его в пространства имён приложений. Дляtype: HuggingFaceтокен задаётся параметромhuggingFace.tokenSecretName.Длина:
1..253Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ -
объектspec.huggingFaceПараметры провайдера Hugging Face. Допустимы только при
type: HuggingFace.-
строкаspec.huggingFace.tokenSecretNameНеобязательное имя секрета в
d8-systemс ключомtokenдля доступа к gated и приватным моделям. Без него просмотр и импорт публичных моделей работают анонимно.Длина:
1..253Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
-
-
объектspec.policyОбязательные границы индексирования у провайдера и условия допуска модели к импорту. Источник, который не ограничивает область или выходит за эти границы, остаётся заблокированным, а не запускает неограниченный обход провайдера.
-
массив строкspec.policy.allowedCollectionsОграничивает синхронизацию выбранными коллекциями, плейлистами или подборками провайдера.
-
строкаspec.policy.allowedCollections.Элемент массива
Длина:
1..128
-
-
массив строкspec.policy.allowedOrganizationsОграничивает синхронизацию выбранными организациями или пространствами имён провайдера.
-
строкаspec.policy.allowedOrganizations.Элемент массива
Длина:
1..128
-
-
массив строкspec.policy.allowedRepositoriesОграничивает синхронизацию выбранными репозиториями провайдера.
-
строкаspec.policy.allowedRepositories.Элемент массива
Длина:
1..256
-
-
массив строкspec.policy.allowedTagsОграничивает синхронизацию записями, у которых есть хотя бы один из выбранных тегов провайдера.
-
строкаspec.policy.allowedTags.Элемент массива
Длина:
1..64
-
-
целочисленныйspec.policy.maxIndexedEntriesМаксимальное число записей провайдера, которое может проиндексировать один источник.
Допустимые значения:
1 <= X <= 10000 -
целочисленныйspec.policy.maxMetadataBytesМаксимальный объём нормализованных метаданных, который может храниться для одной проиндексированной записи.
Допустимые значения:
1024 <= X <= 1048576 -
строкаspec.policy.refreshBudgetОграничивает время, которое одна попытка обновления может потратить на индексирование у провайдера, прежде чем уступить и повторить попытку позже.
-
-
строкаspec.refreshIntervalЧастота обновления контроллером списка моделей во внешнем каталоге. Если не указано, используется безопасное значение по умолчанию.
-
строкаspec.typeТип каталога-источника. По умолчанию
Catalog— каталог другого кластера. Источники, созданные без этого параметра, считаются каталогом другого кластера.По умолчанию:
CatalogДопустимые значения:
Catalog,HuggingFace -
строкаspec.urlHTTPS-адрес внешнего каталога моделей. Обязателен при
type: Catalogи взаимоисключён сhuggingFace.Минимальная длина:
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.nextRetryTimeВремя следующей попытки синхронизации после ошибки провайдера, нарушения политики или недоступности служб данных, если контроллер ждёт перед повтором.
-
целочисленныйstatus.observedGenerationПоколение ресурса, обработанное контроллером.
-
Model
Scope: Namespaced
Version: v1alpha1
Модель в пространстве имён.
Контроллер получает данные из удалённого источника, загрузки
пользователя или внешнего каталога, проверяет их и сохраняет
локальную копию в DMCR. Когда status.phase становится Ready,
рабочие нагрузки в том же пространстве имён могут использовать
модель по аннотации ai.deckhouse.io/model.
-
объектspecИсточник и параметры подготовки модели.
-
объектspec.source
Обязательный параметр
Источник модели. После создания изменить источник нельзя. Укажите ровно один вариант:url,uploadилиcatalog.-
объектspec.source.authSecretRefСекрет из того же неймспейса с токеном доступа к приватному репозиторию Hugging Face.
-
строкаspec.source.authSecretRef.name
Обязательный параметр
Имя секрета.Минимальная длина:
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.urlURL репозитория 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Данные управляемой сессии загрузки. Секрет с URL и токеном доступен только пользователям с правом чтения конкретной загрузки.
-
строкаstatus.upload.expiresAtВремя окончания сессии загрузки.
-
строкаstatus.upload.secretNameИмя секрета с URL загрузки и токеном доступа.
Минимальная длина:
1 -
строкаstatus.upload.secretNamespaceПространство имён секрета с URL загрузки и токеном доступа.
Минимальная длина:
1
-
-