Skip to content

Configuration

The chart aims to need only one field for a fresh deploy — keycloak.hostname — with everything else derived by subdomain convention. Every derived value can still be overridden explicitly. Values under jupyterhub.* are passed straight through to the upstream Zero to JupyterHub chart.

SectionControls
keycloakExternal Keycloak FQDN, realm name, in-cluster service host
subdomainsSubdomain convention (hub, nebi) used to derive hostnames from keycloak.hostname
nebariappWhether/how the NebariApp CRD is rendered — routing, auth, landing-page card. See NebariApp Integration
singleuserEgress NetworkPolicy allowing user pods to reach the Nebari gateway
singleuserCullerIn-pod idle culling for kernels, terminals, and the server itself (separate from the hub-level jupyterhub.cull)
sharedStoragePer-group RWX directories and the transitional in-cluster NFS mode. See Shared Storage
nebiThe companion Nebi service — image, external/internal URLs, namespace, release name
rbac.bootstrapOne-shot Keycloak Job that adds the groups-claim mapper and the shared-mount client role
jupyterhubPassed through verbatim to the jupyterhub subchart (proxy, hub, singleuser images, auth, etc.)
Jupyter GalleryCurated tutorial tiles in JupyterLab, configured via jupyterhub.singleuser.extraFiles. See Jupyter Gallery

For the full set of fields and their defaults, read values.yaml directly — it is heavily commented and is the source of truth.

The dummy authenticator is used by default so any username/password works without a Keycloak dependency. To test against real OAuth, configure jupyterhub.hub.config per the Zero to JupyterHub authentication docs.