This document describes the integration of PrimeHub and JupyterHub.
The whole magic happens in
jupyterhub_profiles.py, which customizes the kubespawner. Here is the brief spawner logic
- A user logs in to keycloak and postback the user profile to jupyterhub. (by OIDC flow)
- Store the authentication data in the cookie.
- Use the authentication data to query graphql to get the groups, instance types, images, datasets of the logged in user
- The spawner renders the options in the spawner page
- The user selects the options they would like to spawn and submits.
- By kubespawner mechanism, assemble the jupyter pod's spec and spawn this pod.
We customize the authenticator and spawner described in the jupyterhub document