Installation¶
This page walks you through the prerequisites, installation options, and a quick sanity check for a working Kale setup.
Prerequisites¶
Requirement |
Version |
Notes |
|---|---|---|
Python |
3.11 or later |
Kale uses modern typing features; older Pythons are not supported. |
Kubeflow Pipelines |
v2.16.0+ |
Older KFP servers reject the |
Kubernetes cluster |
any |
|
JupyterLab |
4.0+ (for the UI) |
Only required if you want to use the Kale side panel inside JupyterLab. |
Install KFP by following the
official Kubeflow Pipelines installation guide.
Make sure to set PIPELINE_VERSION=2.16.0 or later. If you are upgrading an
older environment, ensure your Python deps include kfp[kubernetes]>=2.16.0.
Install from PyPI¶
Kale v2.0 pre-release
Kale v2.0 is available on PyPI as a release candidate. Install it with the
--pre flag until the final release is tagged.
pip install --pre "jupyterlab>=4.0.0" "kubeflow-kale[jupyter]"
jupyter lab
Install from source¶
Clone the repository and use the make targets provided by the project:
git clone https://github.com/kubeflow/kale.git
cd kale
make dev # Install Python + Node deps, build and link the labextension
make jupyter # Start JupyterLab with the Kale panel
make dev takes care of:
Installing uv if it is not already present.
Running
uv sync --all-extrasto create the virtual environment and install the Python package in editable mode.Building the JupyterLab 4 extension and linking it so it appears in your JupyterLab UI.
Installing pre-commit hooks for linting.
See Contributing for a full breakdown of the available make targets
and the development workflow.
Try Kale in Docker (no cluster required)¶
If you just want to play with Kale in an isolated environment, the repo ships
with a Dockerfile based on the official Kubeflow jupyter-scipy image:
make docker-build # Build Kale wheels and bake them into the image
make docker-run # Start JupyterLab on http://localhost:8889
To also connect to a KFP cluster, follow the multi-terminal setup in Running Pipelines.
Verify your installation¶
Start a cluster and KFP port-forward (minikube example):
minikube start kubectl port-forward -n kubeflow svc/ml-pipeline-ui 8080:80
Test the CLI against an example notebook:
kale --nb examples/base/candies_sharing.ipynb \ --kfp_host http://127.0.0.1:8080 \ --run_pipeline
This compiles the notebook into
.kale/<name>.kale.py, uploads the pipeline, and starts a run.Test the JupyterLab extension:
Open JupyterLab (
make jupyterorjupyter lab).Open any notebook from
examples/base/.Click the Kale icon in the left sidebar.
Toggle the Kale panel on — you should see cell type dropdowns appear on each notebook cell.
If any of these steps fail, head to Troubleshooting — the most common issues are covered there.