Convert JupyterNotebooks to Kubeflow Pipelines deployments
Project description
Kubeflow Kale
Turn Jupyter Notebooks into ML Pipelines — In One Click
No pipeline code. No SDK learning curve. Just tag your cells and deploy.
Latest News 🔥
- [2026/04] Kubeflow Kale v2.0 is officially released with support for Kubeflow Pipelines 2.16.0!
- [2026/04] The new Kubeflow Kale docs is now available!
What is Kale?
KALE (Kubeflow Automated pipeLines Engine) is a tool designed to simplify the deployment of Kubeflow Pipelines workflows.
You've built an amazing ML model in a Jupyter notebook. Now you need to run it in production, schedule it, or scale it up. Usually that means rewriting everything as a Kubeflow Pipeline — learning the SDK, restructuring your code, and debugging YAML.
Kale eliminates all of that.
Tag your notebook cells with simple labels like imports, step, or skip. Kale analyzes your code, detects dependencies between steps, and generates a production-ready Kubeflow Pipeline. Your notebook stays exactly as it is.
Why Data Scientists Love Kale
✅ push-button pipeline generation (tag cells, click "compile") ✅ automatic dependency detection ✅ same notebook for dev and production ✅ create pipelines directly in notebook without looking at YAML ✅ requires no direct knowledge of KFP SDK ✅ no rewriting code into pipeline components
📖 Documentation: https://kale.kubeflow.org
See It In Action
Watch how to use Kale convert a notebook to a pipeline in minutes:
Get Started
Requirements
- Python 3.11+
- Kubeflow Pipelines v2.16.0+ (install guide)
- Kubernetes cluster (minikube, kind, or any K8s cluster)
Quick Install
# Clone and set up (v2.0 coming soon to PyPI)
git clone https://github.com/kubeflow-kale/kale.git
cd kale && make dev
# Launch JupyterLab with Kale
make jupyter
Your First Pipeline in 60 Seconds
- Open any notebook from
examples - Click the Kale icon in the left sidebar
- Toggle Enable to see your notebook as a pipeline graph
- Click Compile and Run — that's it!
# Or use the CLI
kale --nb examples/base/candies_sharing.ipynb --kfp_host http://localhost:8080 --run_pipeline
How It Works
Tag your notebook cells to define pipeline structure:
| Cell Tag | What It Does |
|---|---|
imports |
Libraries needed by all steps (pandas, sklearn, etc.) |
functions |
Helper functions available to all steps |
pipeline-parameters |
Variables users can tune between runs |
pipeline-metrics |
Metrics to track in the KFP UI |
step:step_name |
A pipeline step (Kale auto-detects dependencies!) |
skip |
Exploratory code to exclude from the pipeline |
Learn more about cell types in Kale documentation.
Pro tip: Kale automatically detects which variables flow between steps. You don't need to specify inputs and outputs — just write natural notebook code.
Check out the example notebooks to see these in action.
Installation
Make it sure that Kubeflow Pipelines is running and acessible to Kale
Install from PyPi:
pip install "jupyterlab>=4.0.0" kubeflow-kale[jupyter]
jupyter lab
Local Development
You can install Kale directly from the sources:
git clone https://github.com/kubeflow-kale/kale.git
make clean && make dev && make jupyter-kfp
See CONTRIBUTING.md for detailed setup instructions.
Local Development with Docker
Run Kale locally with Docker:
make docker-build # Build the image
make docker-run # JupyterLab at http://localhost:8889
Connect to a real KFP cluster:
make kfp-serve # Serve dev wheel
kubectl port-forward -n kubeflow svc/ml-pipeline 8080:8888 # Forward KFP API
make docker-run # Start container
Community
We'd love to have you!
- Questions? Join #kubeflow on Slack
- Found a bug? Open an issue
- Want to contribute? See CONTRIBUTING.md
Learn More
- FAQ — Common questions and known limitations
- Blog: Automating Jupyter Deployments
- KubeCon NA 2019: From Notebook to Pipeline
- KubeCon EU 2020: Notebook to Pipeline with HP Tuning
Ready to simplify your ML workflow?
Get started now · Road to 2.0 · Join Slack
Contributors
Thanks to everyone who has contributed to Kale!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kubeflow_kale-2.0.0rc2.tar.gz.
File metadata
- Download URL: kubeflow_kale-2.0.0rc2.tar.gz
- Upload date:
- Size: 12.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a6e0b4cc4606663d3445db36912e9772656d142a8f02a574a3d00084fda05018
|
|
| MD5 |
530ccdf2a7d3b5297a55c414e66c4c97
|
|
| BLAKE2b-256 |
5ccd6c705a5812cbc60625173f6c37390b7b775cf5ce57af95259e6fa48c3c63
|
File details
Details for the file kubeflow_kale-2.0.0rc2-py3-none-any.whl.
File metadata
- Download URL: kubeflow_kale-2.0.0rc2-py3-none-any.whl
- Upload date:
- Size: 358.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec7371dd84e0191d77fed826fe3bcbedd97d5b7c3044605ca555f060703fe576
|
|
| MD5 |
3275bec9bc6f72eabe0176a990a05de2
|
|
| BLAKE2b-256 |
e776213601a04e90f10c27102694203fa2bb5d8cddd1d30b1b18dbd325be44f6
|