Migrate from Kubeflow Pipelines to Vertex AI Pipelines
Stay organized with collections
Save and categorize content based on your preferences.
For developers with experience building Kubeflow pipelines it is
important to understand the following ways that Vertex AI Pipelines is
different from Kubeflow Pipelines.
Data passing (inputs/outputs)
Data passing using inputs and outputs differs from Kubeflow Pipelines SDK v1 to
Kubeflow Pipelines SDK v2. Kubeflow Pipelines SDK v2 has the separation of
parameters and artifacts, and they can't be passed into one another.
For more detailed information, see
Kubeflow Pipelines Pipelines Basics and Kubeflow Pipelines Data Types.
Domain-specific language (DSL) version usage
Vertex AI Pipelines can run pipelines that were built using
TFX v0.30.0 or later, or the Kubeflow Pipelines SDK v2
domain-specific language (DSL).
The Kubeflow Pipelines SDK v2 DSL is available in Kubeflow Pipelines SDK v1.6 or
later.
Kubeflow Pipelines can run pipelines that were built using the
Kubeflow Pipelines SDK. Kubeflow Pipelines v1.6 or later can also run pipelines
built using the Kubeflow Pipelines SDK v2 DSL.
Storage
Kubeflow Pipelines and Vertex AI Pipelines handle
storage differently. In Kubeflow Pipelines you can make use of Kubernetes
resources such as persistent volume claims. In Vertex AI Pipelines
your data is stored on Cloud Storage, and mounted into your components
using Cloud Storage FUSE.
In Vertex AI Pipelines, you can use Google Cloud services to make
resources available — for example, you can use Cloud Storage FUSE
to access a Cloud Storage bucket as a mounted volume in a pipeline
step. If your Cloud Storage URI is
gs://example-bucket/example-pipeline, then your pipeline component's
container can use Cloud Storage FUSE to access that URI as the
following path: /gcs/example-bucket/example-pipeline.
When you run a pipeline using Vertex AI Pipelines, the pipeline root
must have been specified in the @pipeline annotation or when you created
the pipeline run.
In Kubeflow Pipelines, specifying the pipeline root is optional. The
artifacts of a pipeline run are stored using MinIO by default.
Features not supported in Vertex AI Pipelines
The following Kubeflow Pipelines features are not supported in
Vertex AI Pipelines.
Cache Expiration: In Kubeflow Pipelines, you can specify that
cached component executions
expire after a specified amount of time using the Kubeflow Pipelines SDK v1
DSL.
You can't specify that component executions expire after a
specified amount of time using the Kubeflow Pipelines SDK v2 DSL.
In Vertex AI Pipelines, when you run a pipeline using
create_run_from_job_spec you can use the enable_caching argument to
specify that this pipeline run does not use caching.
Recursion: In Kubeflow Pipelines, you can specify pipeline
components that are
called recursively.
Vertex AI Pipelines doesn't support pipeline
components that are called recursively.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-25 UTC."],[],[],null,["# Migrate from Kubeflow Pipelines to Vertex AI Pipelines\n\nFor developers with experience building Kubeflow pipelines it is\nimportant to understand the following ways that Vertex AI Pipelines is\ndifferent from Kubeflow Pipelines.\n\n### Data passing (inputs/outputs)\n\n- Data passing using inputs and outputs differs from Kubeflow Pipelines SDK v1 to Kubeflow Pipelines SDK v2. Kubeflow Pipelines SDK v2 has the separation of parameters and artifacts, and they can't be passed into one another. For more detailed information, see [Kubeflow Pipelines Pipelines Basics](https://www.kubeflow.org/docs/components/pipelines/v2/pipelines/pipeline-basics/) and [Kubeflow Pipelines Data Types](https://www.kubeflow.org/docs/components/pipelines/v2/data-types/).\n\n### Domain-specific language (DSL) version usage\n\n- Vertex AI Pipelines can run pipelines that were built using\n TFX v0.30.0 or later, *or* the Kubeflow Pipelines SDK v2\n domain-specific language (DSL).\n\n The Kubeflow Pipelines SDK v2 DSL is available in Kubeflow Pipelines SDK v1.6 or\n later.\n\n Kubeflow Pipelines can run pipelines that were built using the\n Kubeflow Pipelines SDK. Kubeflow Pipelines v1.6 or later can also run pipelines\n built using the Kubeflow Pipelines SDK v2 DSL.\n\n### Storage\n\n- Kubeflow Pipelines and Vertex AI Pipelines handle\n storage differently. In Kubeflow Pipelines you can make use of Kubernetes\n resources such as persistent volume claims. In Vertex AI Pipelines\n your data is stored on Cloud Storage, and mounted into your components\n using [Cloud Storage FUSE](/storage/docs/gcs-fuse).\n\n In Vertex AI Pipelines, you can use Google Cloud services to make\n resources available --- for example, you can use Cloud Storage FUSE\n to access a Cloud Storage bucket as a mounted volume in a pipeline\n step. If your Cloud Storage URI is\n `gs://example-bucket/example-pipeline`, then your pipeline component's\n container can use Cloud Storage FUSE to access that URI as the\n following path: `/gcs/example-bucket/example-pipeline`.\n | **Important:** It's best practice that you avoid hardcoding the paths to external resources into your pipeline. Instead, pass the paths to external resources into your pipeline as a parameter. This makes it easier for you to run your pipeline in different environments, and to change the location of the resources used in a pipeline run.\n- When you run a pipeline using Vertex AI Pipelines, the pipeline root\n must have been specified in the `@pipeline` annotation or when you created\n the pipeline run.\n\n In Kubeflow Pipelines, specifying the pipeline root is optional. The\n artifacts of a pipeline run are stored using [MinIO](https://min.io/) by default.\n\n### Features not supported in Vertex AI Pipelines\n\n- The following Kubeflow Pipelines features are not supported in\n Vertex AI Pipelines.\n\n - **Cache Expiration**: In Kubeflow Pipelines, you can specify that\n cached component executions\n expire after a specified amount of time using the Kubeflow Pipelines SDK v1\n DSL.\n\n You can't specify that component executions expire after a\n specified amount of time using the Kubeflow Pipelines SDK v2 DSL.\n\n In Vertex AI Pipelines, when you run a pipeline using\n `create_run_from_job_spec` you can use the `enable_caching` argument to\n specify that this pipeline run does not use caching.\n - **Recursion**: In Kubeflow Pipelines, you can specify pipeline\n components that are\n called recursively.\n\n Vertex AI Pipelines doesn't support pipeline\n components that are called recursively."]]