This is the first release candidate for Kubeflow Community Distribution 26.10. Please try it out and provide development feedback. For a stable and conservative experience, use the latest stable release.
Release versioning is calendar-based (Year.Month.Patch). Around two base releases are planned per year, with optional patch releases. The best-effort community support is roughly six months, and commercial support is available from multiple vendors. Please update regularly as explained in the upgrading and extending section to benefit from security and performance improvements.
Caution
Review the version-specific upgrade notes before upgrading. Workspaces replaces Notebooks v1 in the default installation; optional legacy cleanup must wait until no Notebook, Tensorboard or PVCViewer objects remain in any namespace. KServe control-plane resources and the Models Web Application move to the kserve namespace and require a planned control-plane interruption. Pipelines 2.18.0 has additional database, authorization, artifact and TensorBoard upgrade considerations. Existing ml-pipeline-ui Deployments require the documented Recreate strategy patch before applying the new manifests.
Highlights:
- Experimental Helm charts providing a 1:1 equivalent of the Kustomize manifests, with full Helm installation and end-to-end integration tests and Helm/Kustomize comparison tests.
- KinD 0.33.0 and Kubernetes 1.37.0 continuous integration tests.
- Kubeflow Workspaces 2.0.0-rc.1 (Notebooks v2) is enabled by default, with Workspaces entries in the Central Dashboard. Notebooks v1 remains optional. Kubeflow 27.03 will remove notebooks v1.
- Kubeflow Pipelines 2.18.0, with matching
kfp==2.18.0andkfp-kubernetes==2.18.0packages. Separate version 1 SDK compatibility tests are retained. Kubeflow 27.03 will remove KFP v1 support. - Kubeflow Trainer 2.3.0, KServe 0.21.0, KServe UI 1.1.0, Kubeflow Hub 0.3.18 and Spark Operator 2.5.2.
- Istio 1.31.3, Knative Serving and Eventing 1.24.0, cert-manager 1.21.2, Dex 2.46.1 and OAuth2-Proxy 7.15.5. Knative Eventing remains optional.
- Spark Connect integration tests from a Kubeflow Workspace, improved component diagnostics, and security scanning migrated from Trivy to OSV-Scanner.
TODO
Awaiting upstream releases for 26.10:
- Trainer 2.4 final release.
- Final Notebooks v2 / Workspaces 2.0 release.
- Notebooks v1 update.
- Dashboard update.
Changes
- Update kubeflow/hub manifests from v0.3.10 by @pboyd in #3504
- Update kubeflow/spark-operator manifests from v2.5.1 by @juliusvonkohout in #3506
- chore(ci): migrate security scanning from trivy to osv-scanner by @Raakshass in #3507
- Update kserve/kserve manifests to version v0.19.0 by @christian-heusel in #3505
- feature(documentation): Add Kubeflow Community Distribution ROADMAP by @andreyvelich in #3508
- Improve upgrade instructions by @juliusvonkohout in #3509
- Update security scanning workflow link in README by @juliusvonkohout in #3510
- Update kubeflow/trainer manifests from v2.2.1 by @juliusvonkohout in #3511
- chore: bump actions/checkout from 6.0.3 to 7.0.0 by @dependabot[bot] in #3512
- Update istio to 1.30.2 by @juliusvonkohout with @Copilot in #3513
- helm: align hub image tags with kustomize by @danish9039 in #3514
- chore: bump actions/setup-python from 6.2.0 to 6.3.0 by @dependabot[bot] in #3521
- chore: Drop synchronization script for
kubeflow/kubeflowby @christian-heusel in #3517 - chore: Remove trivial sync differences for istio & spark-operator by @christian-heusel in #3518
- ci: Enable black linting for python files in
testsfolder by @christian-heusel in #3520 - chore: KServe & models-web-application structure cleanup by @christian-heusel in #3516
- chore: Update the release handbook by @christian-heusel in #3522
- helm: add cert-manager wrapper chart by @danish9039 in #3470
- Synchronize kserve UI manifests v1.0.0 by @juliusvonkohout in #3529
- Fix kserve-ui modified upstream folders by @juliusvonkohout in #3530
- helm: add Kubeflow foundation charts by @danish9039 in #3468
- Restore defaultProviders.metrics in oauth2-proxy istio mesh config by @noisonnoiton in #3532
- ci: Add GHA to check for idempotence of PRs that touch upstream folders by @christian-heusel in #3519
- chore: bump actions/setup-python from 6.2.0 to 6.3.0 by @dependabot[bot] in #3534
- Synchronize kubeflow pipelines manifests release 2.17 by @juliusvonkohout in #3537
- Update kubeflow/pipelines manifests from release-2.17 by @juliusvonkohout in #3538
- proper build version by @juliusvonkohout in #3539
- Update Kubeflow Pipelines synchronization and test SDK to 2.17.0 by @juliusvonkohout with @Copilot in #3542
- test: focus KServe UI comparison on Kubeflow by @danish9039 in #3541
- Update kserve-ui manifests to v1.0.1 by @juliusvonkohout with @Copilot in #3546
- helm: update cert-manager chart metadata by @danish9039 in #3531
- Remove legacy Training Operator by @danish9039 in #3540
- Update kubeflow/hub manifests from v0.3.12 by @pboyd in #3548
- ray: update KubeRay and Ray versions by @danish9039 in #3528
- chore: bump actions/stale from 10.3.0 to 10.4.0 by @dependabot[bot] in #3551
- assembling release v26.10 team and roadmap by @dominikkawka in #3526
- helm: align Hub chart with v0.3.12 manifests by @danish9039 in #3553
- Update Istio manifests to 1.30.3 by @juliusvonkohout with @Copilot in #3554
- Update kubeflow/hub manifests from v0.3.14 by @pboyd in #3555
- helm: restore Hub v0.3.14 parity by @danish9039 in #3556
- helm: add Dex wrapper chart by @danish9039 in #3480
- helm: add oauth2-proxy wrapper chart by @danish9039 in #3479
- helm: add Istio wrapper chart by @danish9039 in #3478
- ci: address Istio Helm review feedback by @danish9039 in #3558
- chore: bump actions/checkout from 7.0.0 to 7.0.1 by @dependabot[bot] in #3559
- chore: bump actions/setup-python from 6.3.0 to 7.0.0 by @dependabot[bot] in #3564
- ci: collect cluster diagnostics for failing component tests by @danish9039 in #3560
- ci: set a job level timeout on the KinD based workflows by @danish9039 in #3566
- chore: bump actions/stale from 10.4.0 to 11.0.0 by @dependabot[bot] in #3570
- Update Spark Operator to v2.5.2 by @juliusvonkohout with @Copilot in #3571
- helm: add Kubeflow Dashboard chart by @danish9039 in #3524
- Update OAuth2-Proxy to v7.15.3, Cert Manager to v1.21.1 and Trainer to v2.3.0-rc.3 by @juliusvonkohout with @Copilot in #3572
- helm: add Kubeflow Notebooks chart by @danish9039 in #3525
- Update Kubeflow Trainer to v2.3.0 by @juliusvonkohout with @Copilot in #3578
- Update kserve/kserve manifests to version v0.20.0 by @christian-heusel in #3576
- chore: Cleanup
OWNERSfiles and add me as reviewer by @christian-heusel in #3579 - spark: regenerate resources.yaml with Helm v4 and pin the toolchain by @danish9039 in #3587
- fix(pipeline): allow kube-apiserver to reach the PipelineVersion admission webhook by @tyetladd in #3581
- fix(spark): add sparkconnects to the aggregated Spark ClusterRoles by @vikas-saxena02 in #3586
- Update kubeflow/notebooks manifests to v2.0.0-beta.0 by @christian-heusel in #3584
- kserve: move platform resources to kserve namespace by @danish9039 in #3515
- fix(spark): correct sidecar injection label key on the SparkApplication by @vikas-saxena02 in #3588
- Update kubeflow/pipelines manifests to 2.17.1 by @christian-heusel in #3591
- tests: discover comparison components and build the CI matrix from them by @danish9039 in #3577
- Update kubeflow/hub manifests from v0.3.16 by @adysenrothman in #3593
- Update Istio manifests to 1.31.0 by @juliusvonkohout with @Copilot in #3596
- Update Kind to 0.33.0 and Kubernetes to 1.37.0 by @juliusvonkohout with @Copilot in #3597
- tests: reject unknown comparison descriptor fields at load by @danish9039 in #3592
- Update kubeflow/notebooks manifests to v2.0.0-beta.1 by @christian-heusel in #3598
- istio: add namespace ownership guards and machine-to-machine gateway authentication payload by @danish9039 in #3567
- Update Kubeflow Pipelines to 2.17.2 by @juliusvonkohout with @Copilot in #3599
- istio: namespace guard test, master push trigger, Helm 4 upgrade note by @danish9039 in #3600
- test: add the Helm end-to-end integration workflow by @danish9039 in #3595
- test(spark): add Spark Connect from Workspace integration test by @vikas-saxena02 in #3590
- Update OAuth2-Proxy and Knative releases by @juliusvonkohout with @Copilot in #3602
- dex: configure connectors through values by @danish9039 in #3568
- dex, oauth2-proxy: refuse to render placeholder credentials by @danish9039 in #3569
- dex: render the authcodes CustomResourceDefinition from templates by @danish9039 in #3594
- test: guard every chart against the Helm release Secret limit by @danish9039 in #3604
- test: check that generated Helm payloads are fresh by @danish9039 in #3605
- Update kubeflow/notebooks manifests to v2.0.0-beta.2 by @christian-heusel in #3608
- test: discover sibling charts and verify release partition groups by @danish9039 in #3606
- Update kubeflow/hub manifests from v0.3.17 by @pboyd in #3620
- helm: add generated Knative Serving chart by @danish9039 in #3615
- helm: add generated Models UI platform chart by @danish9039 in #3614
- Update Istio to 1.31.1 by @juliusvonkohout with @Copilot in #3621
- documentation: clarify Models UI configuration rollout by @danish9039 in #3623
- helm: apply aggregated role ownership repair to Istio by @danish9039 in #3622
- ci: wait for the Notebook Pod before readiness by @danish9039 in #3624
- Synchronize KServe UI to v1.0.5 by @juliusvonkohout with @Copilot in #3625
- helm: wrap the upstream KubeRay operator chart by @danish9039 in #3618
- workspaces: add the Kubeflow Workspaces Helm chart by @danish9039 in #3611
- helm: add generated Hub registry and catalog charts by @danish9039 in #3616
- helm: add Kubeflow Pipelines chart by @danish9039 in #3552
- helm: add Spark Operator chart by @danish9039 in #3575
- helm: add generated Knative Eventing chart by @danish9039 in #3617
- katib: add the generated Katib Helm chart by @danish9039 in #3610
- Update kserve/kserve manifests to version v0.21.0 by @christian-heusel in #3627
- trainer: add the Kubeflow Trainer Helm charts by @danish9039 in #3612
- Update kubeflow/notebooks manifests to v2.0.0-beta.3 by @christian-heusel in #3629
- ci: migrate integration tests to cncf-ubuntu-16-64-x86 runner by @tariq-hasan in #3630
- chore: bump psf/black from 26.5.1 to 26.10.0 by @dependabot[bot] in #3634
- test: pin kubernetes python client <37 for KServe SDK compatibility by @vikas-saxena02 in #3635
- chore: bump actions/upload-artifact from 7.0.1 to 7.0.2 by @dependabot[bot] in #3637
- Simplify the Spark Connect Workspace test's session options by @vikas-saxena02 in #3631
- ci: run full E2E test on Kubernetes 1.35 and 1.37 by @vikas-saxena02 in #3632
- chore(spark): add vikas-saxena02 as reviewer for applications/spark by @vikas-saxena02 in #3641
- chore: bump psf/black from 26.10.0 to 26.10.1 by @dependabot[bot] in #3642
- Update istio/istio manifests from 1.31.2 by @vikas-saxena02 in #3643
- Update cert-manager/cert-manager manifests from v1.21.2 by @vikas-saxena02 in #3645
- Synchronize oauth2 proxy v7.15.5 and dex v2.46.0 by @vikas-saxena02 in #3646
- fix(scripts): select existing synchronization branches by @Swayam-code in #3648
- chore: Remove claude.md as claude code can read AGENTS.md by @christian-heusel in #3651
- Add SparkConnect from notebook test by @vikas-saxena02 in #3638
- Add a Spark Pi test that runs from Kubeflow Pipelines and reads the driver logs by @vikas-saxena02 in #3650
- Synchronize KubeRay 1.7.1 manifests and Helm wrapper by @vikas-saxena02 in #3647
- Update kubeflow/hub manifests from v0.3.18 by @pboyd in #3652
- Update Kubeflow Pipelines and Istio versions by @juliusvonkohout with @Copilot in #3653
- Synchronize kubeflow/notebooks manifests to v2.0.0-rc.0 by @christian-heusel in #3649
- Enable Workspaces and validate Spark Connect in full integrations by @juliusvonkohout with @Copilot in #3603
- Update KServe UI, Knative, and Dex by @juliusvonkohout with @Copilot in #3654
- Update Kubeflow Pipelines and SDK to 2.18.0 by @juliusvonkohout with @Copilot in #3658
- Add Notebooks v2 menu entry, cleanup pre-GA warnings & disable Notebooks v1 by default by @christian-heusel in #3657
- test: run all Helm lifecycle checks in one job by @vikas-saxena02 in #3663
- Document the ml-pipeline-ui update strategy step for the 26.03.1 to 26.10.0 upgrade by @iamvinbas in #3665
- Add the version-specific upgrade notes to the README table of contents by @iamvinbas in #3664
- fix(ci): prepare pipeline runtimes and KinD watcher limits by @Swayam-code in #3660
- documentation: fix broken relative links to the release handbook and component documentation by @fjvbn2003 in #3662
- documentation: connect OAuth2 Proxy directly to Keycloak without Dex by @ezejiofor in #3655
- Add a KinD test for Keycloak with OAuth2 Proxy and no Dex by @ezejiofor in #3656
- chore: bump actions/setup-python from 7.0.0 to 7.1.0 by @dependabot[bot] in #3659
- documentation: correct spelling and grammar across the repository by @juliusvonkohout in #3666
- chore: bump actions/setup-python from 7.0.0 to 7.1.0 by @dependabot[bot] in #3669
- Update kubeflow/notebooks manifests to v2.0.0-rc.1 by @christian-heusel in #3670
New Contributors
- @noisonnoiton made his first contribution in #3532
- @dominikkawka made his first contribution in #3526
- @tyetladd made his first contribution in #3581
- @vikas-saxena02 made his first contribution in #3586
- @adysenrothman made his first contribution in #3593
- @tariq-hasan made his first contribution in #3630
- @Swayam-code made his first contribution in #3648
- @iamvinbas made his first contribution in #3665
- @fjvbn2003 made his first contribution in #3662
- @ezejiofor made his first contribution in #3655
Full Changelog: 26.03.1...26.10.0-rc1