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.)

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.