Skip to content

KFP SDK v2.18.0

Choose a tag to compare

@jeffspahr jeffspahr released this 28 Oct 01:30
Immutable release. Only release title and notes can be modified.
555bfa6

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.