API Reference
Packages
vllm.ai/v1alpha1
Package v1alpha1 contains API Schema definitions for the vllm v1alpha1 API group
Resource Types
APIConfig
APIConfig defines API configuration
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
batch_classification BatchClassificationConfig | Optional: {} |
AutoscalingSpec
AutoscalingSpec defines autoscaling configuration
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
enabled boolean | Enabled indicates if HPA is enabled | false | Optional: {} |
minReplicas integer | MinReplicas is the minimum number of replicas | 1 | Optional: {} |
maxReplicas integer | MaxReplicas is the maximum number of replicas | 10 | Optional: {} |
targetCPUUtilizationPercentage integer | TargetCPUUtilizationPercentage is the target CPU percentage | 80 | Optional: {} |
targetMemoryUtilizationPercentage integer | TargetMemoryUtilizationPercentage is the target memory percentage | Optional: {} |
BatchClassificationConfig
BatchClassificationConfig defines batch classification configuration
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
max_batch_size integer | 100 | Optional: {} | |
concurrency_threshold integer | 5 | Optional: {} | |
max_concurrency integer | 8 | Optional: {} | |
metrics BatchMetricsConfig | Optional: {} |
BatchMetricsConfig
BatchMetricsConfig defines batch classification metrics configuration
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
enabled boolean | true | Optional: {} | |
detailed_goroutine_tracking boolean | true | Optional: {} | |
high_resolution_timing boolean | false | Optional: {} | |
sample_rate string | Sample rate for metrics (0.0-1.0). Stored as string to avoid float precision issues. | 1.0 | Pattern: ^0(\.[0-9]+)?$|^1(\.0+)?$ Optional: {} |
duration_buckets string array | Duration buckets for histograms. Stored as strings to avoid float precision issues. Example: ["0.001", "0.005", "0.01", "0.025", "0.05", "0.1", "0.25", "0.5", "1", "2.5", "5", "10", "30"] | Optional: {} | |
size_buckets integer array | Optional: {} |
CategoryModelConfig
CategoryModelConfig defines category model configuration
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
model_id string | Optional: {} | ||
use_modernbert boolean | Optional: {} | ||
threshold string | Classification threshold (0.0-1.0). Stored as string to avoid float precision issues. | Pattern: ^0(\.[0-9]+)?$|^1(\.0+)?$ Optional: {} | |
use_cpu boolean | Optional: {} | ||
category_mapping_path string | Optional: {} |
ClassifierConfig
ClassifierConfig defines classifier configuration
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
category_model CategoryModelConfig | Optional: {} | ||
pii_model PIIModelConfig | Optional: {} |
ComplexityCandidates
ComplexityCandidates defines candidate examples for complexity classification
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
candidates string array | List of candidate phrases or examples |
ComplexityModelConfig
ComplexityModelConfig configures how the complexity signal produces its score. It mirrors global.model_catalog.modules.complexity in the router config and is passed through field for field.
The contract requirement sits here rather than on RemoteClassifierBackendConfig because it is a property of this consumer, not of the block: complexity reads two response shapes, so guessing wrong would surface per request instead of at admission. A consumer that reads one shape
- categories does - keeps the field optional and defaults it.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
backend RemoteClassifierBackendConfig | Backend names a remote scoring model. Its absence keeps local prototype scoring; when set, the signal never reads the rules' hard/easy candidates. It sits on the module rather than on a rule because routing signals are replaced wholesale per recipe, so a per-rule backend would vanish under any recipe that did not repeat it. | Optional: {} |
ComplexityRulesConfig
ComplexityRulesConfig defines complexity-based signal classification.
The CEL rules below reject at admission the boundary combinations the Router refuses at config load. Without them the API server accepts the object and the Router crashloops on it, which turns a typo into an outage instead of a rejected write. They are per-object and static; anything needing the model catalog - whether backend.model resolves, for instance - stays with the Router's validator, which remains the single source of truth for the rest.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
prototype_scoring PrototypeScoringConfig | PrototypeScoring replaces the family prototype-scoring configuration for this rule. Absence inherits the family; a present object is a complete override, including an empty object. Defaults remain Router-owned. | Optional: {} | |
name string | Name of the complexity rule (e.g., "code-complexity", "reasoning-complexity") | ||
description string | Description of what this rule classifies | Optional: {} | |
threshold string | Threshold for the local prototype-scoring path (0.0-1.0), stored as a string to avoid float precision issues. The local margin is hard-minus-easy and centred on zero, so the threshold is symmetric: a margin above it is "hard", below its negative is "easy", and in between is "medium". It does not apply under a score.v1 backend, whose score is in the model's own units; state a boundary pair instead. | Pattern: ^0(\.[0-9]+)?$|^1(\.0+)?$ Optional: {} | |
hard_above string | HardAbove and EasyBelow are the two cut points for a score where a higher value is harder, in the scoring model's own units - so no [0,1] pattern applies and negative values are valid. Both are required together, and the pair is mutually exclusive with Threshold and with HardBelow/EasyAbove. Stored as strings to avoid float precision issues. | Pattern: ^-?[0-9]+(\.[0-9]+)?$ Optional: {} | |
easy_below string | EasyBelow is the lower cut point of the harder-when-higher pair: a score below it is "easy", and anything between EasyBelow and HardAbove is "medium". It must be below HardAbove, and both are required together. | Pattern: ^-?[0-9]+(\.[0-9]+)?$ Optional: {} | |
hard_below string | HardBelow and EasyAbove are the pair for a score where a lower value is harder - a model predicting the chance of a correct answer, say. They require a score.v1 backend: the local margin is harder-when-higher by construction, and inverting it locally means swapping the candidate lists. Stored as strings to avoid float precision issues. | Pattern: ^-?[0-9]+(\.[0-9]+)?$ Optional: {} | |
easy_above string | EasyAbove is the upper cut point of the harder-when-lower pair: a score above it is "easy", and anything between HardBelow and EasyAbove is "medium". It must be above HardBelow, and both are required together. | Pattern: ^-?[0-9]+(\.[0-9]+)?$ Optional: {} | |
hard ComplexityCandidates | Hard candidates represent complex/difficult examples. Read only by the local path; a remote backend never consults them, so they are optional. | Optional: {} | |
easy ComplexityCandidates | Easy candidates represent simple/easy examples. Read only by the local path; a remote backend never consults them, so they are optional. | Optional: {} | |
composer RuleComposition | Composer allows filtering based on other signals (e.g., only apply this rule if domain:medical) | Optional: {} |
CompositionCondition
CompositionCondition defines a single composition condition
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
type string | Type of signal to check (e.g., "domain", "language", "category") | ||
name string | Name of the specific signal/rule value to match |
ConfigSpec
ConfigSpec defines the semantic router configuration
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
routing JSON | Routing contains canonical v0.3 routing configuration under config.routing. It is intentionally preserved as an object so the operator can pass through the router-owned signal, projection, decision, and algorithm contract without lagging behind every router schema addition. | Type: object Optional: {} | |
model_deployments JSON | ModelDeployments contains canonical global.model_catalog.deployments. The router validates provider, device, precision and task compatibility. | Type: object Optional: {} | |
model_admission JSON | ModelAdmission contains canonical global.model_catalog.admission budgets. Keys name deployments or the router's existing admission consumers. | Type: object Optional: {} | |
embedding_models EmbeddingModelsConfig | Embedding models configuration (qwen3, gemma, mmbert) | Optional: {} | |
response_cache SemanticCacheConfig | Response cache configuration. | Optional: {} | |
semantic_cache SemanticCacheConfig | SemanticCache is the deprecated response-cache field. | Optional: {} | |
tools ToolsConfig | Tools configuration | Optional: {} | |
prompt_guard PromptGuardConfig | Prompt guard configuration | Optional: {} | |
classifier ClassifierConfig | Classifier configuration | Optional: {} | |
complexity_rules ComplexityRulesConfig array | Complexity rules for complexity-aware routing | Optional: {} | |
complexity_model ComplexityModelConfig | ComplexityModel says how the complexity signal produces its score. Absent, the signal scores locally against each rule's hard/easy candidates. With a backend, a remote model produces the score and the candidates are never read. Mirrors global.model_catalog.modules.complexity in the router config. | Optional: {} | |
external_models ExternalModelConfig array | ExternalModels declares the remote models that classifier backends ( classifier.pii.backend.model, complexity_model.backend.model) andthe prompt guard protocol refer to by name. Mirrors global.model_catalog.external[] in the router config field for field; the router's own validator decides whether a backend resolves against it. | Optional: {} | |
strategy string | Decision routing strategy ("priority" for priority-based matching) | Enum: [priority] Optional: {} | |
decisions DecisionConfig array | Routing decisions based on signals (domain, complexity, etc.) | Optional: {} | |
reasoning_effort string | ReasoningEffort is the default reasoning effort for model bindings that do not select a different effort. The selected model family validates the value because built-in and custom families may expose different ladders. | Optional: {} | |
api APIConfig | API configuration | Optional: {} | |
observability ObservabilityConfig | Observability configuration | Optional: {} | |
streamed_body StreamedBodyConfig | StreamedBody enables streamed request body handling. Mirrors global.router.streamed_body; the gateway must send bodies to ExtProc in STREAMED or FullDuplexStreamed mode for it to take effect. | Optional: {} |
DecisionConfig
DecisionConfig defines a routing decision
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | Name is the unique identifier for this decision | ||
description string | Description provides information about what this decision handles | Optional: {} | |
priority integer | Priority is used for decision ordering - higher priority decisions are evaluated first | Optional: {} | |
rules RuleCombinationConfig | Rules defines the combination of conditions using AND/OR logic | ||
modelRefs ModelRefConfig array | ModelRefs contains model references for this decision | Optional: {} | |
preferred_endpoints string array | PreferredEndpoints specifies which vLLM endpoints to prefer for this decision | Optional: {} | |
plugins RawExtension array | Plugins contains policy configurations applied after rule matching | Optional: {} | |
algorithm JSON | Algorithm configures base model selection for this decision. It is preserved as a router-owned object so supported algorithms can evolve without requiring the operator CRD to duplicate every nested field. | Type: object Optional: {} |
EmbeddingEndpointConfig
EmbeddingEndpointConfig defines an external OpenAI-compatible embedding endpoint.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
base_url string | BaseURL is the base URL for the embedding endpoint, typically ending in /v1. | Optional: {} | |
model string | Model is the embedding model name sent to the external provider. | Optional: {} | |
api_key_env string | APIKeyEnv names the environment variable containing the provider API key. | Optional: {} | |
timeout_seconds integer | TimeoutSeconds is the request timeout for embedding calls. | Minimum: 0 Optional: {} | |
max_retries integer | MaxRetries is the maximum number of retry attempts for embedding calls. | Minimum: 0 Optional: {} | |
max_response_bytes integer | MaxResponseBytes caps the size of each embedding response body. | Minimum: 0 Optional: {} | |
dimensions integer | Dimensions requests a provider-side output dimension when supported. | Minimum: 1 Optional: {} |
EmbeddingModelsConfig
EmbeddingModelsConfig defines configuration for embedding models
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
qwen3_model_path string | Path to Qwen3-Embedding-0.6B model directory Qwen3 provides 32K context and high quality embeddings (1024 dimensions) | Optional: {} | |
gemma_model_path string | Path to EmbeddingGemma-300M model directory Gemma provides 8K context and fast embeddings (768 dimensions) | Optional: {} | |
mmbert_model_path string | Path to mmBERT 2D Matryoshka embedding model directory Supports layer early exit (3/6/11/22) and dimension reduction (64-768) | Optional: {} | |
use_cpu boolean | Use CPU for inference (default: true) | true | Optional: {} |
embedding_config HNSWEmbeddingConfig | Embedding configuration for embedding-based classification | Optional: {} | |
endpoint EmbeddingEndpointConfig | Endpoint configures an external embedding provider endpoint. The API key should be injected into the semantic router pod environment and referenced by APIKeyEnv rather than stored directly in the CR. | Optional: {} |
ExporterConfig
ExporterConfig defines exporter configuration
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
type string | otlp | Optional: {} | |
endpoint string | jaeger:4317 | Optional: {} | |
insecure boolean | true | Optional: {} |
ExternalModelConfig
ExternalModelConfig is one entry of global.model_catalog.external[]: a remote model a classifier backend or the prompt guard can name. Field names are the router's YAML keys so the generic typed conversion carries them unchanged.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | Name is the catalog name a backend block refers to in its model field. | MinLength: 1 | |
model_role string | ModelRole is what the model is used for; classifier backends require "classification", the prompt guard protocol requires "guardrail". | MinLength: 1 | |
llm_model_name string | ModelName is the model identifier the remote service expects, and the value a token_spans.v1 envelope's model member must equal. | MinLength: 1 | |
llm_endpoint ExternalModelEndpoint | Endpoint is where the remote model is reached. | ||
llm_timeout_seconds integer | TimeoutSeconds bounds one call when the backend block sets no deadline. | Minimum: 1 Optional: {} |
ExternalModelEndpoint
ExternalModelEndpoint is the address of a remote classification model.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
address string | MinLength: 1 | ||
port integer | Maximum: 65535 Minimum: 1 | ||
protocol string | Enum: [http https] Optional: {} |
GatewayReference
GatewayReference references an existing Gateway
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | Name of the Gateway | MinLength: 1 | |
namespace string | Namespace of the Gateway | MinLength: 1 |
GatewaySpec
GatewaySpec defines Gateway API integration configuration
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
existingRef GatewayReference | ExistingRef references an existing Gateway to use | Optional: {} |
HNSWCacheConfig
HNSWCacheConfig defines HNSW index configuration for hybrid/in-memory backends.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
use_hnsw boolean | UseHNSW enables HNSW indexing for faster similarity search | false | Optional: {} |
hnsw_m integer | M is the number of bi-directional links per node | 16 | Minimum: 2 Optional: {} |
hnsw_ef_construction integer | EfConstruction is the size of dynamic candidate list during construction | 200 | Minimum: 1 Optional: {} |
max_memory_entries integer | MaxMemoryEntries limits in-memory entries for hybrid backend | 1000 | Minimum: 0 Optional: {} |
HNSWEmbeddingConfig
HNSWEmbeddingConfig contains settings for embedding classification with HNSW indexing
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
backend string | Backend selects the embedding provider backend. | Enum: [candle openvino openai_compatible] Optional: {} | |
model_type string | ModelType specifies which embedding model to use Options: "qwen3" (1024-dim, 32K context), "gemma" (768-dim, 8K context), "mmbert" (64-768-dim, multilingual), "remote" (external provider) | Enum: [qwen3 gemma mmbert remote] Optional: {} | |
preload_embeddings boolean | PreloadEmbeddings enables precomputing candidate embeddings at startup | true | Optional: {} |
target_dimension integer | TargetDimension is the embedding dimension to use (default: 768) For mmBERT, supported local dimensions are 64, 128, 256, 512, 768. External providers may use other positive dimensions such as 1024, 1536, or 3072. | Minimum: 1 Optional: {} | |
target_layer integer | TargetLayer controls mmBERT early exit and is used only when ModelType is "mmbert". Lower layers reduce encoder work but may reduce quality; layer 22 uses the full encoder depth. Evaluate the latency and quality trade-off on representative deployment data. | Enum: [3 6 11 22] Optional: {} | |
enable_soft_matching boolean | EnableSoftMatching allows below-threshold matches when no rule meets its threshold. | false | Optional: {} |
min_score_threshold string | MinScoreThreshold for matching (0.0-1.0). Stored as string to avoid float precision issues. | 0.5 | Pattern: ^0(\.[0-9]+)?$|^1(\.0+)?$ Optional: {} |
ImageSpec
ImageSpec defines the container image configuration
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
repository string | Repository is the container image repository | ghcr.io/vllm-project/semantic-router/extproc | Optional: {} |
tag string | Tag is the container image tag | latest | Optional: {} |
pullPolicy PullPolicy | PullPolicy is the image pull policy | IfNotPresent | Enum: [Always Never IfNotPresent] Optional: {} |
imageRegistry string | ImageRegistry is an optional registry prefix | Optional: {} |
IngressHost
IngressHost defines an ingress host
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
host string | Optional: {} | ||
paths IngressPath array | Optional: {} |
IngressPath
IngressPath defines an ingress path
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
path string | Optional: {} | ||
pathType string | Optional: {} | ||
servicePort integer | Optional: {} |
IngressSpec
IngressSpec defines ingress configuration
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
enabled boolean | Enabled indicates if ingress is enabled | false | Optional: {} |
className string | ClassName is the ingress class name | Optional: {} | |
annotations object (keys:string, values:string) | Annotations for ingress | Optional: {} | |
hosts IngressHost array | Hosts configuration | Optional: {} | |
tls IngressTLS array | TLS configuration | Optional: {} |
IngressTLS
IngressTLS defines ingress TLS configuration
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
secretName string | Optional: {} | ||
hosts string array | Optional: {} |
LoRAAdapterSpec
LoRAAdapterSpec defines one LoRA adapter exposed by a VLLMEndpoint model.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | Name is the unique adapter identifier referenced by decision.modelRefs[].lora_name. | MaxLength: 100 MinLength: 1 | |
description string | Description provides a short human-readable summary for UI and docs surfaces. | MaxLength: 500 Optional: {} |
MetricsPortSpec
MetricsPortSpec extends PortSpec with enable flag
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
port integer | Port is the service port | Maximum: 65535 Minimum: 1 Optional: {} | |
targetPort integer | TargetPort is the container port | Maximum: 65535 Minimum: 1 Optional: {} | |
protocol Protocol | Protocol is the port protocol | TCP | Optional: {} |
enabled boolean | Enabled indicates if metrics should be exposed | true | Optional: {} |
MilvusCacheAuth
MilvusCacheAuth defines Milvus authentication.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
enabled boolean | Enabled controls whether to use authentication | false | Optional: {} |
username string | Username for Milvus authentication | Optional: {} | |
password string | Password for Milvus authentication (plaintext - consider using PasswordSecretRef instead) | Optional: {} | |
password_secret_ref SecretKeySelector | PasswordSecretRef references a Secret containing the Milvus password Preferred over plaintext Password field for security | Optional: {} |
MilvusCacheCollection
MilvusCacheCollection defines Milvus collection configuration.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | Name of the Milvus collection | semantic_cache | Optional: {} |
description string | Description of the collection | Semantic cache for LLM request-response pairs | Optional: {} |
vector_field MilvusCacheVectorField | VectorField configuration for embeddings | Optional: {} | |
index MilvusCacheCollectionIndex | Index configuration for the collection | Optional: {} |
MilvusCacheCollectionIndex
MilvusCacheCollectionIndex defines collection index settings.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
type string | Type of index algorithm | HNSW | Enum: [HNSW IVF_FLAT IVF_SQ8 IVF_PQ] Optional: {} |
params MilvusCacheIndexParams | Params for the index | Optional: {} |
MilvusCacheConfig
MilvusCacheConfig defines Milvus cache backend configuration. Configure these settings when using Milvus as the semantic cache backend.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
connection MilvusCacheConnection | Connection settings for Milvus server | Optional: {} | |
collection MilvusCacheCollection | Collection settings for Milvus | Optional: {} | |
search MilvusCacheSearch | Search settings for Milvus queries | Optional: {} | |
development MilvusCacheDevelopment | Development settings for Milvus cache | Optional: {} |
MilvusCacheConnection
MilvusCacheConnection defines Milvus connection parameters.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
host string | Host is the Milvus server hostname or IP address | Optional: {} | |
port integer | Port is the Milvus server port | 19530 | Maximum: 65535 Minimum: 1 Optional: {} |
database string | Database name in Milvus | semantic_router_cache | Optional: {} |
timeout integer | Timeout for Milvus operations in seconds | 30 | Minimum: 0 Optional: {} |
auth MilvusCacheAuth | Auth configuration for Milvus authentication | Optional: {} | |
tls MilvusCacheTLS | TLS configuration for secure Milvus connections | Optional: {} |
MilvusCacheDevelopment
MilvusCacheDevelopment defines development-mode settings.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
drop_collection_on_startup boolean | DropCollectionOnStartup clears the collection when router starts (for testing) | false | Optional: {} |
auto_create_collection boolean | AutoCreateCollection automatically creates the collection if it doesn't exist | true | Optional: {} |
MilvusCacheIndexParams
MilvusCacheIndexParams defines index parameters.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
M integer | M is the number of bi-directional links for HNSW | 16 | Minimum: 2 Optional: {} |
efConstruction integer | EfConstruction for HNSW index building | 64 | Minimum: 1 Optional: {} |
MilvusCacheSearch
MilvusCacheSearch defines Milvus search parameters.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
params MilvusCacheSearchParams | Params for search operations | Optional: {} | |
topk integer | TopK is the number of results to return | 10 | Minimum: 1 Optional: {} |
consistency_level string | ConsistencyLevel for search operations Options: "Strong", "Session", "Bounded", "Eventually" | Session | Enum: [Strong Session Bounded Eventually] Optional: {} |
MilvusCacheSearchParams
MilvusCacheSearchParams defines search-time parameters.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
ef integer | Ef is the search-time HNSW parameter | 64 | Minimum: 1 Optional: {} |
MilvusCacheTLS
MilvusCacheTLS defines TLS settings for Milvus connections.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
enabled boolean | Enabled controls whether to use TLS | false | Optional: {} |
cert_file string | CertFile is the path to client certificate file | Optional: {} | |
key_file string | KeyFile is the path to client key file | Optional: {} | |
ca_file string | CAFile is the path to CA certificate file | Optional: {} |
MilvusCacheVectorField
MilvusCacheVectorField defines vector field configuration.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | Name of the vector field | embedding | Optional: {} |
dimension integer | Dimension of the embedding vectors | Minimum: 1 Optional: {} | |
metric_type string | MetricType for vector similarity Options: "IP" (inner product), "L2", "COSINE" | IP | Enum: [IP L2 COSINE] Optional: {} |
ModelReasoningSpec
ModelReasoningSpec selects a catalog reasoning family or defines the request projection for a custom self-hosted model. Family and inline fields are mutually exclusive and are validated by the Router's canonical compiler.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
family string | Optional: {} | ||
type string | Enum: [chat_template_kwargs reasoning_effort reasoning_mode top_level_reasoning_effort] Optional: {} | ||
parameter string | Optional: {} | ||
activationParameter string | Optional: {} | ||
effortFlags object (keys:string, values:string) | EffortFlags maps a logical effort to a boolean chat-template parameter. | Optional: {} | |
levels string array | Optional: {} | ||
default string | Optional: {} | ||
modes string array | items:Enum: [enabled disabled adaptive] Optional: {} | ||
defaultMode string | Enum: [enabled disabled adaptive] Optional: {} | ||
disabled string | Optional: {} |
ModelRefConfig
ModelRefConfig defines a model reference for routing
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
model string | Model name to route to | ||
lora_name string | LoRAName is the optional LoRA adapter name | Optional: {} | |
use_reasoning boolean | UseReasoning enables reasoning mode for this model | Optional: {} | |
reasoning_mode string | ReasoningMode selects the model's reasoning activation mode when the family supports more than a boolean switch. | Enum: [enabled disabled adaptive] Optional: {} | |
reasoning_effort string | ReasoningEffort selects one of the model family's declared effort levels. | Optional: {} |
ObservabilityConfig
ObservabilityConfig defines observability configuration
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
tracing TracingConfig | Optional: {} |
OpenShiftFeaturesStatus
OpenShiftFeaturesStatus tracks OpenShift-specific feature status
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
routesEnabled boolean | RoutesEnabled indicates if OpenShift Routes are enabled | ||
routeHostname string | RouteHostname is the hostname of the created Route | Optional: {} |
OpenShiftSpec
OpenShiftSpec defines OpenShift-specific configuration
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
routes RouteConfig | Routes configuration for OpenShift Routes | Optional: {} |
PIIModelConfig
PIIModelConfig defines PII model configuration.
The contract rule sits on the consumer, as on ComplexityModelConfig: the shared backend block lists every contract any consumer reads, and each consumer narrows it to what it can parse, so a mismatch is refused at admission instead of by the router at load.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
max_sequence_length integer | MaxSequenceLength is the total tokenized input budget, including special tokens. Omission or zero preserves the 512-token legacy limit. | Minimum: 0 Optional: {} | |
use_mmbert_32k boolean | UseMmBERT32K selects the local model that supports token windows. | Optional: {} | |
window PromptGuardWindowConfig | Window scans original content tokens with explicit overlap. Omission or null leaves window selection unchanged; no CRD defaults are injected. | Optional: {} | |
model_id string | Optional: {} | ||
use_modernbert boolean | Optional: {} | ||
threshold string | Detection threshold (0.0-1.0). Stored as string to avoid float precision issues. | Pattern: ^0(\.[0-9]+)?$|^1(\.0+)?$ Optional: {} | |
use_cpu boolean | Optional: {} | ||
pii_mapping_path string | Optional: {} | ||
backend RemoteClassifierBackendConfig | Backend names a remote token classifier speaking token_spans.v1. Its absence keeps local PII inference. The local selectors this replaces are model_id, use_modernbert, use_mmbert_32k and use_cpu above. Explicit token windows are only supported by the local mmbert32k model. | Optional: {} | |
on_error string | OnError selects what a PII backend failure, or a provider-declared truncation, does to the rule that consumed it: allow (default) treats the content as not matching, block matches it as classification_error. | Enum: [allow block] Optional: {} |
PersistenceSpec
PersistenceSpec defines persistence configuration
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
enabled boolean | Enabled indicates if persistence is enabled | true | Optional: {} |
storageClassName string | StorageClassName is the storage class name | standard | Optional: {} |
accessMode PersistentVolumeAccessMode | AccessMode is the access mode | ReadWriteOnce | Optional: {} |
size string | Size is the storage size | 10Gi | Optional: {} |
existingClaim string | ExistingClaim is an existing PVC to use | Optional: {} | |
annotations object (keys:string, values:string) | Annotations for the PVC | Optional: {} |
PortSpec
PortSpec defines a service port configuration
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
port integer | Port is the service port | Maximum: 65535 Minimum: 1 Optional: {} | |
targetPort integer | TargetPort is the container port | Maximum: 65535 Minimum: 1 Optional: {} | |
protocol Protocol | Protocol is the port protocol | TCP | Optional: {} |
ProbeSpec
ProbeSpec defines probe configuration
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
enabled boolean | Enabled indicates if the probe is enabled | true | Optional: {} |
initialDelaySeconds integer | InitialDelaySeconds before probe starts | Optional: {} | |
periodSeconds integer | PeriodSeconds between probes | Optional: {} | |
timeoutSeconds integer | TimeoutSeconds for probe | Optional: {} | |
failureThreshold integer | FailureThreshold for probe | Optional: {} |