The hubs are configured and deployed using hub templates. Because each hub type can be described by a template, with its own deployment 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 templates and the other config files and how they are merged together when deploying a pilot hub.
Currently there are three hub templates available:
The basehub template is the template that the other templates “inherit” and configure. It provides a base JupyterHub, user storage and culling configuration that satisfies most of the pilot hubs usage requirements.
The daskhub template helps deploying dask-enabled hubs.
Use the templates to deploy a new hub¶
To deploy a new hub, you only need to add it to the appropriate configuration file under
This configuration file allows specifying options like the type of template to use for the hub being added,
the hub domain, how the JupyterHub landing page will look like and authentication preferences.
Because the templates are structured in a hierarchical model, so are their helm charts. The jupyterhub helm chart is a subchart of the basehub and the basehub chart along with the dask-gateway one are subcharts of the daskhub.
Visual of the helm-chart hierarchy:
This hierachy is the reason why when adding a new hub using the
specific configuration under
config/hubs 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.