Skip to main content

JupyterHub

What it is. A multi-user notebook environment (JupyterHub chart 4.4.3, appVersion 5.5.3).

Why stardelt uses it. JupyterHub provides interactive notebooks for analysis and exploration, integrated with the platform's identity and data access.

How it fits. JupyterHub runs in the application layer. Single-user servers run the stardelt notebook image and receive the signed-in user's Keycloak token for data access; Trino serves queries as that user. See Services and How it works.

Who can use it. Users sign in at https://jupyter.<base domain> with the same Keycloak account used for Nova via OIDC (realm stardelt, client jupyterhub). Access is controlled by the platform IdP; per-user servers are spawned on demand. See Notebooks in Git and Connections.

What you can tune. Key settings from helm-values/jupyterhub.yaml:

SettingValues fileKeyDefaultWhat it changes
Chart versionhelm-values/jupyterhub.yaml(chart)jupyterhub/jupyterhub 4.4.3JupyterHub chart version.
Hub identity envhelm-values/jupyterhub.yamlhub.extraEnv(from ConfigMap/Secret)OIDC issuer, Nova origin, client secret from identity contract.
OIDC endpoints/confighelm-values/jupyterhub.yamlhub.extraConfig (10-oidc)(derived from issuer)Derives authorize/token/userinfo URLs and OAuth callback.
Framing/cookieshelm-values/jupyterhub.yamlhub.extraConfig (15-framing)(from Nova origin)Allows framing by Nova, sets SameSite=None Secure cookies.
Notebook identityhelm-values/jupyterhub.yamlhub.extraConfig (20-notebook-identity)enabledPasses user's access token as TRINO_TOKEN in single-user pod.
Notebook Trino confighelm-values/jupyterhub.yamlhub.extraConfig (25-notebook-trino)(from identity)Sets in-cluster Trino endpoint and internal CA.
Proxy servicehelm-values/jupyterhub.yamlproxy(see values)Public proxy configuration.
Single-userhelm-values/jupyterhub.yamlsingleuser(see values)Single-user server image and configuration.

What it replaces. JupyterHub replaces a shared notebook server setup with a platform-integrated multi-user notebook environment.

Operating it.

  • Health check: kubectl -n stardelt get pods -l app.kubernetes.io/name=jupyterhub
  • Logs: kubectl -n stardelt logs -l component=hub -n stardelt
  • Install step: make install-notebooks (from stardelt-platform)
  • Backup: Notebook user storage is ephemeral per configuration; backups focus on Git-backed notebooks and platform state as documented.