Skip to content
This repository has been archived by the owner on Apr 14, 2020. It is now read-only.

JupyterLab extension to provide a Kubeflow specific left area for Notebooks deployment

License

Notifications You must be signed in to change notification settings

kubeflow-kale/jupyterlab-kubeflow-kale

Repository files navigation

⚠️NOTICE⚠️: This repository has been archived. The code has been moved to the kale repository, where it is maintained under the labextension folder.

Kale JupyterLab Extension

This JupyterLab extension provides a Kubeflow specific left area that can be used to deploy a Notebook to Kubeflow Pipelines. The UI is just high level component designed to let the user annotate Notebook metadata and Cells metadata easily and visually. In order to convert the notebook to a Kubeflow Pipeline workflow and have it run in KFP, Kale needs to be installed in the same Python environment as the running Notebook Kernel.

Getting started

# install jupyter lab
pip install jupyterlab==1.1.1

# install kale: see instructions in Kale repository
# ...

# install the extension
jupyter labextension install kubeflow-kale-launcher
# verify extension status
jupyter labextension list

# run
jupyter lab

KaleLauncherScreenshot

How it works

Kale Launcher UI lets you update Notebook and Cells metadata according to Kale spec. The extension reads and saves Notebook metadata automatically, keeping a consistent view of the Notebook spec. You don't have to worry about manually saving the Notebook, the extension will write any new changes automatically.

When clicking the big blue run button, Kale will be run in the background over the active Notebook and perform the required action based on the button option selected.

The Launcher is able to invoke Kale in the background by programmatically executing shell commands in the Kernel environment. Specifically, it will run:

kale --nb <current_active_notebook_name> [--upload_pipeline] [--run_pipeline]

Development

Build

To build and run the extension in dev mode, first clone the repository in your local machine.

# Move to repository folder
cd jupyterlab-kubeflow-kale

# Install dependencies
jlpm install

# Build the extension. This will generate a dist/ folder with build files
jlpm run build

# Add the extension to jupyterlab.
# Be sure to uninstall any other version first (e.g. npm kubeflow-kale-launcher package)
jupyter labextension install .

When developing, you can run jlpm in watch mode to incrementally compile the new changes:

jlpm run watch

And run JupyterLab in watch mode to load the new compiled version:

jupyter lab --no-browser --watch

Contribute

This repository uses husky to set up git hooks.

For husky to function properly, you need to have yarn installed and in your PATH. The reason that is required is that husky is installed via jlpm install and jlpm is a yarn wrapper. (Similarly, if it was installed using the npm package manager, then npm would have to be in PATH.)

Currently installed git hooks:

  • pre-commit: Run a prettier check on staged files, using pretty-quick