github kubeflow/pipelines sdk-2.18.0
KFP SDK v2.18.0

latest release: 2.18.0
4 hours ago

Kubeflow Pipelines SDK 2.18 adds local pipeline visualization, richer component authoring, and better control over task retries, caching, and namespaces. Python 3.9+ remains supported.

Highlights

  • Preview pipelines locally. Export standalone HTML/Mermaid visualizations and use local watch mode to inspect pipeline structure without deploying a KFP server. #15064
  • Preview component outputs. Supported Python components can automatically generate Dataset and Model previews for the 2.18 run-details UI. Privacy controls include opt-outs and schema-only previews. #15087
  • Author richer components. Python components support Pydantic BaseModel inputs and outputs. The Kubernetes extension adds init containers and Dynamic Resource Allocation (DRA). #13995, #13651, #14243
  • Control retries and caching. set_retry(policy=...) selects which failures trigger retries with Argo Workflows. set_caching_options(cache_key=...) allows custom task cache keys. #14655, #13762
  • Use namespaces explicitly. Client methods support explicit namespaces for immediate and recurring runs and private-pipeline lookup. Run listing gains a server-side pipeline filter, and runs can be created from a pipeline ID without specifying a version ID. #14812, #14611, #14660, #14711

Bug fixes

  • Correct pipeline-ID-only run creation and private-pipeline namespace lookup. #14711, #14611
  • Preserve embedded artifacts reached through symlinks and expose the underlying cause of Kubernetes configuration errors. #13554, #13871
  • Fix ParallelFor task naming and component-description parsing edge cases. #13707, #13619

Installation

Install the matching 2.18.0 packages on Python 3.9 or later:

python -m pip install kfp==2.18.0 kfp-pipeline-spec==2.18.0 kfp-server-api==2.18.0

For Kubernetes-specific pipeline features, also install:

python -m pip install kfp-kubernetes==2.18.0

The four distributions remain separate. Upgrading these packages does not upgrade your cluster or rebuild existing component images. Generic container components do not acquire a Python requirement merely because KFP executes them.

Compatibility and upgrade guidance

  • Backend and Kubernetes support: use a matching 2.18 backend for the new runtime features. DRA additionally requires Kubernetes 1.31+ with DynamicResourceAllocation enabled and an installed DRA driver; the feature is GA and enabled by default in Kubernetes 1.34. Older KFP backends reject the new DRA platform field.
  • Retry policies and custom cache keys: retry policy selection is Argo-specific. An omitted policy uses the deployment's Argo configuration; bundled 2.18 manifests use OnError. Custom cache keys replace automatic input, image, command, argument, and PVC-name contributions, so callers must account for changes that should invalidate cached results.
  • Preview privacy: previews may contain sample data or model configuration. Review privacy settings before enabling them for sensitive outputs. Existing artifacts are not backfilled.
  • Private package mirrors: generated component installation commands no longer automatically add --trusted-host. Configure certificate trust or explicit trusted hosts where needed, then recompile affected pipelines. Embedded-artifact archiving also resolves symlinks more reliably. #13780, #13554
  • Python dependencies: Python 3.9 remains supported, including by the standalone API client, but its Requests/urllib3 compatibility line retains known vulnerabilities accepted for this release. Prefer a newer interpreter where possible; refresh dependency locks and SDK-installing component images when changing Python. See the security tracker.

For custom-client changes and cluster compatibility—including artifact-access limitations—see the 2.18 upgrade guide and backend release notes.

ReadTheDocs publication is pending. Use the versioned SDK guide and Kubernetes SDK documentation meanwhile.

Full release changelog: 2.17.3 → 2.18.0

Contributors

Thank you to everyone who contributed code, reviews, testing, and documentation to 2.18.

Release contributors and first-time contributors

@alyssacgoins, @Aman5613, @ariel-view, @Ayush-kathil, @bhuvan-somisetty, @cbartram, @copybara-service[bot], @Daniel-1600, @danish9039, @demarna1, @dobbydobap, @droctothorpe, @false200, @hbelmiro, @herikwebb, @jeffspahr, @JerT33, @juliusvonkohout, @kaikaila, @lifo9, @ManvithPanyam, @MaxwellM34, @modichika, @MonicaZhang1, @mprahl, @naruto-lgtm, @Neilblaze, @prakharsingh-74, @Priyanshu-u07, @Raakshass, @rishabhsai, @rohIta-k, @sathish-thangaraj, @sduvvuri1603, @Sharkyii, @shivv23, @thc1006, @tolgatuncoglu, @ugiordan, @VaniHaripriya, @vikas-saxena02, @vizansh, @wallyworld, @zazulam.

New Contributors

Assets

Python distributions are published on PyPI: kfp, kfp-pipeline-spec, kfp-server-api, and kfp-kubernetes.

Source archives: ZIP · tar.gz. GitHub also provides these in the Assets panel below.

Don't miss a new pipelines release

NewReleases is sending notifications on new releases.