Seldon · Schema
SeldonDeployment
Schema for a SeldonDeployment Kubernetes custom resource managed via the Seldon Enterprise Platform API.
MLOpsMachine LearningModel ServingInferenceKubernetesAI OperationsDrift DetectionExplainabilityCanary DeploymentA/B TestingLLMOps
Properties
| Name | Type | Description |
|---|---|---|
| apiVersion | string | The Seldon Core API version. |
| kind | string | Always SeldonDeployment. |
| metadata | object | Standard Kubernetes object metadata. |
| spec | object | The desired state of the SeldonDeployment. |
| status | object | The observed state of the SeldonDeployment (read-only). |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/seldon/main/json-schema/seldon-deployment.json",
"title": "SeldonDeployment",
"description": "Schema for a SeldonDeployment Kubernetes custom resource managed via the Seldon Enterprise Platform API.",
"type": "object",
"properties": {
"apiVersion": {
"type": "string",
"const": "machinelearning.seldon.io/v1",
"description": "The Seldon Core API version."
},
"kind": {
"type": "string",
"const": "SeldonDeployment",
"description": "Always SeldonDeployment."
},
"metadata": {
"type": "object",
"description": "Standard Kubernetes object metadata.",
"properties": {
"name": {
"type": "string",
"description": "The name of the deployment."
},
"namespace": {
"type": "string",
"description": "The Kubernetes namespace."
},
"labels": {
"type": "object",
"additionalProperties": { "type": "string" }
},
"annotations": {
"type": "object",
"additionalProperties": { "type": "string" }
}
},
"required": ["name"]
},
"spec": {
"type": "object",
"description": "The desired state of the SeldonDeployment.",
"properties": {
"name": {
"type": "string",
"description": "The deployment name (used in the inference URL path)."
},
"predictors": {
"type": "array",
"description": "One or more predictor specifications defining model graphs.",
"items": {
"$ref": "#/$defs/PredictorSpec"
},
"minItems": 1
},
"annotations": {
"type": "object",
"additionalProperties": { "type": "string" }
}
},
"required": ["predictors"]
},
"status": {
"type": "object",
"description": "The observed state of the SeldonDeployment (read-only).",
"properties": {
"state": {
"type": "string",
"enum": ["Available", "Creating", "Failed"],
"description": "The current state of the deployment."
},
"description": {
"type": "string"
},
"serviceUrl": {
"type": "string",
"description": "The external URL for the inference endpoint."
}
}
}
},
"required": ["apiVersion", "kind", "metadata", "spec"],
"$defs": {
"PredictorSpec": {
"type": "object",
"title": "PredictorSpec",
"description": "A predictor in the inference graph with optional traffic weight.",
"properties": {
"name": {
"type": "string",
"description": "Unique name for this predictor within the deployment."
},
"traffic": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Percentage of traffic routed to this predictor (default 100)."
},
"replicas": {
"type": "integer",
"minimum": 1,
"description": "Number of replicas for this predictor."
},
"graph": {
"$ref": "#/$defs/PredictiveUnit"
}
},
"required": ["name", "graph"]
},
"PredictiveUnit": {
"type": "object",
"title": "PredictiveUnit",
"description": "A node in the inference graph representing a model, router, combiner, or transformer.",
"properties": {
"name": {
"type": "string",
"description": "Name of the predictive unit, matching a container name."
},
"type": {
"type": "string",
"enum": ["MODEL", "ROUTER", "COMBINER", "TRANSFORMER", "OUTPUT_TRANSFORMER"],
"description": "The role of this unit in the inference graph."
},
"implementation": {
"type": "string",
"description": "A pre-packaged inference server implementation (e.g. SKLEARN_SERVER, TENSORFLOW_SERVER)."
},
"modelUri": {
"type": "string",
"description": "URI of the serialized model artifact (e.g. gs://, s3://, pvc://)."
},
"envSecretRefName": {
"type": "string",
"description": "Name of the Kubernetes Secret providing cloud storage credentials."
},
"children": {
"type": "array",
"items": { "$ref": "#/$defs/PredictiveUnit" },
"description": "Child nodes in the inference pipeline."
}
},
"required": ["name"]
}
},
"examples": [
{
"apiVersion": "machinelearning.seldon.io/v1",
"kind": "SeldonDeployment",
"metadata": {
"name": "iris-model",
"namespace": "default"
},
"spec": {
"name": "iris",
"predictors": [
{
"name": "default",
"traffic": 100,
"replicas": 1,
"graph": {
"name": "classifier",
"type": "MODEL",
"implementation": "SKLEARN_SERVER",
"modelUri": "gs://seldon-models/v1.20.0-dev/sklearn/iris"
}
}
]
}
}
]
}