NCAR | CISL JupyterHub#

JupyterHub Installation#

The NCAR | CISL JupyterHub was installed following the Installing JupyterHub documentation for Kubernetes. This is accomplished by using the JupyterHub Helm chart for k8s and supplying our own configuration file. We store the customized values in the GitHub repository here. Modifications or omitted secret values are called out with inline comments, look out for [<MODS>] in the code, for all the details. Our goal is to include encrypted secret values for the NCAR | CISL JupyterHub to streamline deployment for admins but that work is ongoing.

SingleUser Image Customizations#

The JupyterHub environments spun up for the users is actually a containerized version of JupyterLab that gets some common configuration values from the JupyterHub helm chart values. This containerized version of JupyterLab can be customized extensively to fit a variety of different user needs and requirements. The initial CCPP image is based off the Jupyter docker-stacks-foundation image. This Jupyter image is the base image where the initial configuration takes place. It provides a minimal base image that we can then take and add our own customizations while not having to setup the OS and configure the base for JupyterHub.

The documentation in this section walks through how we customized the Docker image used for the NCAR JupyterHub, what packages we install in the base Anaconda environment, and how we utilize GitHub actions to build our image and push it to the Docker Hub repository for the project.