Hub helm charts

Hub helm charts#

Warning

The daskhub helm chart has now been deprecated and dask-gateway is now a conditional dependency of the basehub chart. It shouldn’t be used for new hub deployments.

However there are still existing hub configuration that uses a chart called daskhub. This is just for backward compatibility in order to not disrupt existing deployments by causing hubs reinstallations and should not be replicated going further.

The hubs are configured and deployed using locally defined helm charts. Because each hub type can be described by a helm chart, a hierarchy of hub types can be built and this makes development and usage easier.

The graphic below, shows the relationship between the hub helm charts and the other config files and how they are merged together when deploying a hub.

../../../_images/config-flow.png

Currently there are two hub helm charts available:

  • basehub

    The basehub helm chart is the chart that the other hub helm charts “inherit” and configure. It provides a base JupyterHub, user storage and culling configuration that satisfies most of the infrastructure usage requirements.

  • daskhub

    The daskhub helm chart helps deploying dask-enabled hubs.

Use the helm charts to deploy a new hub#

To deploy a new hub, you only need to add a new *.values.yaml file to the appropriate cluster folder file under config/clusters, and add a new entry to the hubs key in that cluster’s cluster.yaml file. This configuration file allows specifying options like the type of helm chart to use for the hub being added, the hub domain, how the JupyterHub landing page will look like and authentication preferences.

The helm charts are structured in a hierarchical model. The jupyterhub helm chart is a subchart of the basehub chart and the basehub chart along with the dask-gateway one are subcharts of the daskhub.

Visual of the helm-chart hierarchy:

../../../_images/helm-charts-hierarchy.png

This hierarchy is the reason why when adding a new hub using the daskhub specific configuration in a *.values.yaml file needs to be nested under a basehub key, indicating that we are overriding configuration from the basehub/jupyterhub parent chart.

Read more about subcharts and how to configure them in the Helm docs.