When creating a new model, it is common to set up a recurring pipeline that automatically deploys new versions of the model when they are transitioned in the model registry. This article will show you step-by-step how to do that with MLflow and Kubeflow Pipelines.
-
Navigate to the Kubeflow Central Dashboard
-
Ensure you are in the correct namespace (e.g. “staging” or “production”)
-
Go to “Experiments KFP” and click “+ Create Experiment”
-
Name your experiment after your model, and click “Next”

screenshot of the Kubeflow Central Dashboard new experiment page
-
At this point, you should see the “Start a run” page. Under Run details fill out the following:
- Pipeline: deploy-from-mlflow
- Pipeline Version: deploy-from-mlflow_v0.3.0
- Run name: deploy-<the name of your model>
- Experiment: <the name of your model> (should already be set)

-
Under Run type, choose “Recurring”. Then, under Run trigger set the following:
- Trigger type: Periodic
- Maximum concurrent runs: 1
- Has start/end date: leave unchecked
- Catchup: uncheck
- Run every: 5 minutes (or whatever interval you prefer)

-
Under Run parameters, set the following:
<aside>
ℹ️ To save time, you can copy most of these examples
</aside>
- model_name: <your model name>
- endpoint_name: the name of the KServe endpoint (usually the same as model_name)
- model_format: lightgbm, mlflow, onnx, paddle, pmml, pytorch, pytorch, sklearn, tensorflow, tensorrt, triton, xgboost
- May vary depending on environment
- stage: “Staging” or “Production” (case sensitive!)
- tracking_server_uri:
https://mlflow.<your kubeflow hostname>
- If you have more than one environment, ask your K Flow technical rep which hostname should be used
- bucket: Depends on your environment
- e.g. kflow-eks-dev-kserve
- transformer_args: Any additional CLI args for your
- You may also include “{run_id}” as a template variable
- transformer_git_repo_url: URL for the git repo where your transformer code is stored
- transformer_git_secret_namespace: namespace where your
git-credentials
are stored
- Should match the namespace for the recurring run
- transformer_git_auth_type: “https” or “ssh”
- transformer_subpath: path within the transformer git project to look for transformer code. Leave blank to scan at the root and use the 1st one found.