Implementation:SeldonIO Seldon core Seldon Pipeline Version Update
Appearance
| Property | Value |
|---|---|
| Implementation Name | Seldon Pipeline Version Update |
| Type | Pattern Doc |
| Overview | Concrete pattern for progressively evolving Seldon Core 2 pipelines through version updates |
| Domains | MLOps, Versioning |
| Implements Principle | SeldonIO_Seldon_core_Pipeline_Version_Progression |
| Source | samples/pipelines/income-v1.yaml:L1-10, samples/pipelines/income-v2.yaml:L1-14, samples/pipelines/income-v3.yaml:L1-18 |
| External Dependencies | seldon CLI, kubectl, Seldon scheduler |
| Knowledge Sources | Repo (https://github.com/SeldonIO/seldon-core), Doc (https://docs.seldon.io/projects/seldon-core/en/v2/) |
| Last Updated | 2026-02-13 00:00 GMT |
Code Reference
Version 1: Classifier Only
# income-v1.yaml
apiVersion: mlops.seldon.io/v1alpha1
kind: Pipeline
metadata:
name: income-prod
spec:
steps:
- name: income
output:
steps:
- income
Version 2: Classifier + Drift Detection
# income-v2.yaml
apiVersion: mlops.seldon.io/v1alpha1
kind: Pipeline
metadata:
name: income-prod
spec:
steps:
- name: income
- name: income-drift
batch:
size: 20
output:
steps:
- income
Version 3: Full Monitoring Pipeline
# income-v3.yaml
apiVersion: mlops.seldon.io/v1alpha1
kind: Pipeline
metadata:
name: income-prod
spec:
steps:
- name: income
- name: income-preprocess
- name: income-outlier
inputs:
- income-preprocess
- name: income-drift
batch:
size: 20
output:
steps:
- income
- income-outlier.outputs.is_outlier
Key Parameters
| Version | Pipeline Name | Steps | New Additions | Output Steps |
|---|---|---|---|---|
| v1 | income-prod | income | Classifier only | income |
| v2 | income-prod | income, income-drift | + drift detector with batch.size=20 | income |
| v3 | income-prod | income, income-preprocess, income-outlier, income-drift | + preprocessor, + outlier detector with input chaining | income, income-outlier.outputs.is_outlier |
Version Progression Details
| Change | v1 to v2 | v2 to v3 |
|---|---|---|
| New steps added | income-drift | income-preprocess, income-outlier |
| New dependencies | None | income-outlier depends on income-preprocess |
| Batch configuration | N/A | income-drift: batch.size=20 (unchanged) |
| Output changes | None | Added income-outlier.outputs.is_outlier |
| Pipeline name | income-prod (same) | income-prod (same) |
I/O Contract
Inputs
| Input | Type | Description |
|---|---|---|
| Updated pipeline YAML | File | Pipeline CRD with additional monitoring steps (same pipeline name) |
| Component models | Pre-deployed | All referenced models must be loaded before pipeline update |
Outputs
| Output | Type | Description |
|---|---|---|
| Pipeline version increment | State change | pipelineVersion increments (1, 2, 3, ...) |
| Seamless transition | Behavior | No downtime during version transitions |
| New Kafka topics | Auto-created | Topics for new steps are provisioned automatically |
Usage Examples
Progressive Deployment Sequence
# Step 1: Deploy v1 (classifier only)
seldon pipeline load -f samples/pipelines/income-v1.yaml
seldon pipeline status income-prod -w PipelineReady
# Pipeline version: 1
# Step 2: Validate v1 with inference
seldon pipeline infer income-prod \
'{"inputs": [{"name": "predict", "datatype": "FP32", "shape": [1, 12], "data": [[39,7,1,1,1,1,4,1,2174,0,40,9]]}]}'
# Step 3: Upgrade to v2 (add drift detection)
seldon pipeline load -f samples/pipelines/income-v2.yaml
seldon pipeline status income-prod -w PipelineReady
# Pipeline version: 2
# Step 4: Upgrade to v3 (add preprocessing + outlier detection)
seldon pipeline load -f samples/pipelines/income-v3.yaml
seldon pipeline status income-prod -w PipelineReady
# Pipeline version: 3
Rolling Back to a Previous Version
# Roll back from v3 to v1 by resubmitting the v1 definition
seldon pipeline load -f samples/pipelines/income-v1.yaml
seldon pipeline status income-prod -w PipelineReady
# Pipeline version: 4 (new version number, but v1 functionality)
Verifying Version After Update
# Check current pipeline version and steps
seldon pipeline status income-prod | jq '.versions[0].state.pipelineVersion'
# Output: 3
# List all steps in current version
seldon pipeline status income-prod | jq '.versions[0].pipeline.steps | keys'
# Output: ["income", "income-drift", "income-outlier", "income-preprocess"]
Related Pages
- SeldonIO_Seldon_core_Pipeline_Version_Progression (principle) - Progressive pipeline evolution principles
- SeldonIO_Seldon_core_Seldon_Pipeline_CRD_Monitoring (related) - Full monitoring pipeline CRD (equivalent to v3)
- SeldonIO_Seldon_core_Seldon_Pipeline_Load_And_Status (tool) - CLI tools used for loading and validating each version
- SeldonIO_Seldon_core_Seldon_Model_Load_For_Monitoring (prerequisite) - Component models must be deployed before pipeline updates
- SeldonIO_Seldon_core_Seldon_Pipeline_Infer_Monitoring (validation) - Sending inference requests to validate each version
- Environment:SeldonIO_Seldon_core_Kafka_Messaging_Environment
Page Connections
Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment