The module lifecycle stage: Experimental
The module has requirements for installation
The Deckhouse Kubernetes Platform installs CRDs but does not remove them when a module is disabled. If you no longer need the created CRDs, delete them.
ClusterModel
Scope: Cluster
Version: v1alpha1
-
objectspecClusterModelSpec declares the immutable source for one cluster-scoped model.
-
objectspec.source
Required value
-
objectspec.source.catalogCatalog imports a cluster model entry from a ModelCatalogSource.
-
stringspec.source.catalog.name
Required value
Name is the public catalog model name.Length:
1..253Pattern:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ -
stringspec.source.catalog.sourceNameSourceName selects a ModelCatalogSource. When omitted, the controller may use the only Ready ModelCatalogSource in the cluster.
Length:
1..253Pattern:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ -
stringspec.source.catalog.versionVersion selects a catalog version when the upstream exposes more than one active version for the same name.
Length:
1..128
-
-
objectspec.source.uploadUpload requests a controller-owned upload session for a local file or archive.
-
stringspec.source.urlURL points to a Hugging Face repository or an Ollama registry reference.
Minimal length:
1Pattern:
^https:\/\/(((www\.)?huggingface\.co|hf\.co)\/.+|(www\.)?ollama\.com\/library\/[^:\/?#]+(:[^\/?#]+)?([\/?#].*)?)$
-
-
-
objectstatusClusterModelStatus reports preparation state, artifact digest, and resolved model metadata for a cluster-scoped ClusterModel.
-
objectstatus.artifact
-
stringstatus.artifact.digestDigest is the digest of the prepared OCI artifact.
-
stringstatus.artifact.kindKind is the artifact location kind exposed by the public API.
Allowed values:
OCI -
stringstatus.artifact.mediaTypeMediaType is the OCI artifact media type.
-
integerstatus.artifact.sizeBytesSizeBytes is the prepared OCI artifact size.
Allowed values:
1 <= X
-
-
array of objectsstatus.conditions
-
stringstatus.conditions.lastTransitionTimelastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationobservedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
Allowed values:
0 <= X -
stringstatus.conditions.reasonreason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
Length:
1..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Maximum length:
316Pattern:
^([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])$
-
-
integerstatus.observedGenerationObservedGeneration is the latest metadata.generation reconciled by the controller.
-
stringstatus.phasePhase is the preparation lifecycle phase, reported together with Conditions.
Allowed values:
Pending,WaitForUpload,Publishing,Ready,Failed,Deleting -
stringstatus.progressProgress reports bounded controller-computed completion percentage for model preparation flows when runtime progress is available.
-
objectstatus.resolvedResolved carries the model metadata the controller derived from the source.
-
stringstatus.resolved.architectureArchitecture is the model architecture when it is available.
-
integerstatus.resolved.contextWindowTokensContextWindowTokens is the context window size when it is available.
Allowed values:
1 <= X -
stringstatus.resolved.familyFamily is the model family inferred from source metadata.
-
stringstatus.resolved.formatFormat is the resolved input format.
Allowed values:
Safetensors,GGUF,Diffusers -
integerstatus.resolved.parameterCountParameterCount is the number of model parameters when it is available.
Allowed values:
1 <= X -
stringstatus.resolved.quantizationQuantization is the model quantization when it is available.
-
objectstatus.resolved.sourceCapabilitiesSourceCapabilities are provider-level capabilities discovered from source metadata.
-
array of stringsstatus.resolved.sourceCapabilities.featuresFeatures are provider-specific feature names.
-
stringstatus.resolved.sourceCapabilities.features.Element of the array
Length:
1..128
-
-
stringstatus.resolved.sourceCapabilities.providerProvider is the source provider that supplied the capabilities.
Allowed values:
HuggingFace,Ollama,Upload,Catalog -
array of stringsstatus.resolved.sourceCapabilities.tasksTasks are provider-specific task names.
-
stringstatus.resolved.sourceCapabilities.tasks.Element of the array
Length:
1..128
-
-
-
array of stringsstatus.resolved.supportedEndpointTypes
-
stringstatus.resolved.supportedEndpointTypes.Element of the array
Allowed values:
Chat,TextGeneration,Embeddings,Rerank,SpeechToText,TextToSpeech,Translation,ImageClassification,ObjectDetection,ImageSegmentation,ImageToText,VisualQuestionAnswering,ImageGeneration,VideoGeneration,AudioGeneration
-
-
array of stringsstatus.resolved.supportedFeatures
-
stringstatus.resolved.supportedFeatures.Element of the array
Allowed values:
VisionInput,AudioInput,AudioOutput,ImageOutput,VideoInput,VideoOutput,MultiModalInput,ToolCalling
-
-
-
objectstatus.source
-
objectstatus.source.catalogCatalog contains frozen external catalog provenance for catalog imports.
-
stringstatus.source.catalog.catalogRevisionCatalogRevision is the upstream catalog revision used for resolution.
-
stringstatus.source.catalog.nameName is the resolved public catalog model name.
Minimal length:
1 -
stringstatus.source.catalog.remoteDigestRemoteDigest is the pinned upstream OCI artifact digest.
-
stringstatus.source.catalog.sourceNameSourceName is the resolved ModelCatalogSource name.
Minimal length:
1 -
stringstatus.source.catalog.versionVersion is the resolved catalog version when one was selected.
-
-
stringstatus.source.resolvedRevisionResolvedRevision is the source revision, tag, or digest when the provider exposes one.
-
stringstatus.source.resolvedTypeResolvedType is the source provider detected by the controller.
Allowed values:
HuggingFace,Ollama,Upload,Catalog
-
-
objectstatus.upload
-
stringstatus.upload.expiresAtExpiresAt is the upload session expiration time.
-
stringstatus.upload.secretNameSecretName points to the Secret containing the upload URL and bearer token. The Secret key names are fixed by the controller contract and are not part of status.
Minimal length:
1 -
stringstatus.upload.secretNamespaceSecretNamespace is the namespace of the Secret containing the upload URL and bearer token.
Minimal length:
1
-
-
ModelCatalogSource
Scope: Cluster
Version: v1alpha1
-
objectspecModelCatalogSourceSpec declares an external ClusterModel catalog. The backend is selected by spec.type: a cluster-to-cluster catalog URL (default), or the Hugging Face provider index.
-
stringspec.caSecretNameCASecretName names an optional d8-system Secret with ca.crt.
Length:
1..253Pattern:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ -
stringspec.credentialsSecretNameCredentialsSecretName names a d8-system Secret used for the semantic catalog API and grant exchange. The controller reads this Secret directly and never copies it into workload namespaces. Used by the Catalog backend.
Length:
1..253Pattern:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ -
objectspec.huggingFaceHuggingFace configures the Hugging Face provider backend. Allowed only when type is HuggingFace.
-
stringspec.huggingFace.tokenSecretNameTokenSecretName names an optional d8-system Secret with key
tokenused for gated or private models. Listing and importing public models works anonymously when omitted.Length:
1..253Pattern:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
-
-
objectspec.policyPolicy defines required bounds for provider indexing and import eligibility. A source that omits scope or exceeds these bounds must stay blocked instead of starting an unbounded provider scan.
-
array of stringsspec.policy.allowedCollectionsAllowedCollections limits synchronization to specific provider collections, playlists, or curated sets.
-
stringspec.policy.allowedCollections.Element of the array
Length:
1..128
-
-
array of stringsspec.policy.allowedOrganizationsAllowedOrganizations limits synchronization to specific provider organizations or namespaces.
-
stringspec.policy.allowedOrganizations.Element of the array
Length:
1..128
-
-
array of stringsspec.policy.allowedRepositoriesAllowedRepositories limits synchronization to specific provider repositories.
-
stringspec.policy.allowedRepositories.Element of the array
Length:
1..256
-
-
array of stringsspec.policy.allowedTagsAllowedTags limits synchronization to remote entries matching at least one of the selected provider tags.
-
stringspec.policy.allowedTags.Element of the array
Length:
1..64
-
-
integerspec.policy.maxIndexedEntriesMaxIndexedEntries caps how many remote entries one source may index.
Allowed values:
1 <= X <= 10000 -
integerspec.policy.maxMetadataBytesMaxMetadataBytes caps how much normalized metadata may be stored per indexed remote entry.
Allowed values:
1024 <= X <= 1048576 -
stringspec.policy.refreshBudgetRefreshBudget limits how long one refresh attempt may spend on provider indexing work before it yields and retries later.
-
-
stringspec.refreshIntervalRefreshInterval controls how often the controller refreshes catalog metadata. The controller uses a safe default when omitted.
-
stringspec.typeType selects the catalog source backend. Defaults to Catalog (cluster-to-cluster). Existing sources without a type are treated as Catalog.
Default:
CatalogAllowed values:
Catalog,HuggingFace -
stringspec.urlURL is the HTTPS base URL of the remote catalog endpoint. Required when type is Catalog.
Minimal length:
9Pattern:
^https:\/\/[^:\/?#@]+(:[0-9]+)?(\/[^?#]*)?$
-
-
objectstatusModelCatalogSourceStatus reports remote catalog health without embedding the remote inventory or secret material.
-
stringstatus.catalogRevisionCatalogRevision is the last successfully observed remote catalog revision.
-
array of objectsstatus.conditions
-
stringstatus.conditions.lastTransitionTimelastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationobservedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
Allowed values:
0 <= X -
stringstatus.conditions.reasonreason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
Length:
1..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Maximum length:
316Pattern:
^([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])$
-
-
integerstatus.entryCountEntryCount is the number of active entries in the last successful refresh.
Allowed values:
0 <= X -
stringstatus.lastSuccessfulRefreshTimeLastSuccessfulRefreshTime is the time of the last successful catalog refresh.
-
stringstatus.nextRetryTimeNextRetryTime is the next scheduled retry after provider, policy, or data-service failures when the controller is waiting before the next sync attempt.
-
integerstatus.observedGenerationObservedGeneration is the latest metadata.generation reconciled by the controller.
-
Model
Scope: Namespaced
Version: v1alpha1
-
objectspecModelSpec declares the immutable source for one namespace-scoped model.
-
objectspec.source
Required value
-
objectspec.source.authSecretRefAuthSecretRef names a Secret from the same namespace as the Model. It is supported for private Hugging Face sources.
-
stringspec.source.authSecretRef.name
Required value
Name is the Secret name.Minimal length:
1
-
-
objectspec.source.catalogCatalog imports a model entry from a ModelCatalogSource.
-
stringspec.source.catalog.name
Required value
Name is the public catalog model name.Length:
1..253Pattern:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ -
stringspec.source.catalog.sourceNameSourceName selects a ModelCatalogSource. When omitted, the controller may use the only Ready ModelCatalogSource in the cluster.
Length:
1..253Pattern:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ -
stringspec.source.catalog.versionVersion selects a catalog version when the upstream exposes more than one active version for the same name.
Length:
1..128
-
-
objectspec.source.uploadUpload requests a controller-owned upload session for a local file or archive.
-
stringspec.source.urlURL points to a Hugging Face repository or an Ollama registry reference.
Minimal length:
1Pattern:
^https:\/\/(((www\.)?huggingface\.co|hf\.co)\/.+|(www\.)?ollama\.com\/library\/[^:\/?#]+(:[^\/?#]+)?([\/?#].*)?)$
-
-
-
objectstatusModelStatus reports preparation state, upload session details, artifact digest, and resolved model metadata for a namespaced Model.
-
objectstatus.artifact
-
stringstatus.artifact.digestDigest is the digest of the prepared OCI artifact.
-
stringstatus.artifact.kindKind is the artifact location kind exposed by the public API.
Allowed values:
OCI -
stringstatus.artifact.mediaTypeMediaType is the OCI artifact media type.
-
integerstatus.artifact.sizeBytesSizeBytes is the prepared OCI artifact size.
Allowed values:
1 <= X
-
-
array of objectsstatus.conditions
-
stringstatus.conditions.lastTransitionTimelastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationobservedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
Allowed values:
0 <= X -
stringstatus.conditions.reasonreason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
Length:
1..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Maximum length:
316Pattern:
^([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])$
-
-
integerstatus.observedGenerationObservedGeneration is the latest metadata.generation reconciled by the controller.
-
stringstatus.phasePhase is the preparation lifecycle phase, reported together with Conditions.
Allowed values:
Pending,WaitForUpload,Publishing,Ready,Failed,Deleting -
stringstatus.progressProgress reports bounded controller-computed completion percentage for upload and model preparation flows when runtime progress is available.
-
objectstatus.resolvedResolved carries the model metadata the controller derived from the source.
-
stringstatus.resolved.architectureArchitecture is the model architecture when it is available.
-
integerstatus.resolved.contextWindowTokensContextWindowTokens is the context window size when it is available.
Allowed values:
1 <= X -
stringstatus.resolved.familyFamily is the model family inferred from source metadata.
-
stringstatus.resolved.formatFormat is the resolved input format.
Allowed values:
Safetensors,GGUF,Diffusers -
integerstatus.resolved.parameterCountParameterCount is the number of model parameters when it is available.
Allowed values:
1 <= X -
stringstatus.resolved.quantizationQuantization is the model quantization when it is available.
-
objectstatus.resolved.sourceCapabilitiesSourceCapabilities are provider-level capabilities discovered from source metadata.
-
array of stringsstatus.resolved.sourceCapabilities.featuresFeatures are provider-specific feature names.
-
stringstatus.resolved.sourceCapabilities.features.Element of the array
Length:
1..128
-
-
stringstatus.resolved.sourceCapabilities.providerProvider is the source provider that supplied the capabilities.
Allowed values:
HuggingFace,Ollama,Upload,Catalog -
array of stringsstatus.resolved.sourceCapabilities.tasksTasks are provider-specific task names.
-
stringstatus.resolved.sourceCapabilities.tasks.Element of the array
Length:
1..128
-
-
-
array of stringsstatus.resolved.supportedEndpointTypes
-
stringstatus.resolved.supportedEndpointTypes.Element of the array
Allowed values:
Chat,TextGeneration,Embeddings,Rerank,SpeechToText,TextToSpeech,Translation,ImageClassification,ObjectDetection,ImageSegmentation,ImageToText,VisualQuestionAnswering,ImageGeneration,VideoGeneration,AudioGeneration
-
-
array of stringsstatus.resolved.supportedFeatures
-
stringstatus.resolved.supportedFeatures.Element of the array
Allowed values:
VisionInput,AudioInput,AudioOutput,ImageOutput,VideoInput,VideoOutput,MultiModalInput,ToolCalling
-
-
-
objectstatus.source
-
objectstatus.source.catalogCatalog contains frozen external catalog provenance for catalog imports.
-
stringstatus.source.catalog.catalogRevisionCatalogRevision is the upstream catalog revision used for resolution.
-
stringstatus.source.catalog.nameName is the resolved public catalog model name.
Minimal length:
1 -
stringstatus.source.catalog.remoteDigestRemoteDigest is the pinned upstream OCI artifact digest.
-
stringstatus.source.catalog.sourceNameSourceName is the resolved ModelCatalogSource name.
Minimal length:
1 -
stringstatus.source.catalog.versionVersion is the resolved catalog version when one was selected.
-
-
stringstatus.source.resolvedRevisionResolvedRevision is the source revision, tag, or digest when the provider exposes one.
-
stringstatus.source.resolvedTypeResolvedType is the source provider detected by the controller.
Allowed values:
HuggingFace,Ollama,Upload,Catalog
-
-
objectstatus.upload
-
stringstatus.upload.expiresAtExpiresAt is the upload session expiration time.
-
stringstatus.upload.secretNameSecretName points to the Secret containing the upload URL and bearer token. The Secret key names are fixed by the controller contract and are not part of status.
Minimal length:
1 -
stringstatus.upload.secretNamespaceSecretNamespace is the namespace of the Secret containing the upload URL and bearer token.
Minimal length:
1
-
-