Configuration for user node pool

Hi all,

I’ve successfully spun up a BinderHub instance on Google Cloud Platform, and I’m currently trying to make user of a user node pool. I’ve set up a user node pool with a min of 0 and a max of 5 nodes, and I’m trying to now configure things so that these nodes get used. However, I’m a little confused as to where the configuration for the scheduling should go. Currently my config.yaml file for helm install jupyterhub/binderhub ... looks like:

config:
  BinderHub:
    use_registry: true
    image_prefix: wwtbinderhub/binder-prod-
    hub_url: http://...

scheduling:
  userScheduler:
    enabled: true
  podPriority:
    enabled: true
  userPlaceholder:
    enabled: true
    replicas: 3
  userPods:
    nodeAffinity:
      matchNodePurpose: require

cull:
  enabled: true
  timeout: 3600
  every: 300

singleuser:
  cpu:
    limit: 1
    guarantee: 0.05
  memory:
    limit: 4G
    guarantee: 512M

but it wasn’t clear to me whether this is correct, i.e. whether scheduling, cull, and singleuser should be at the root of the config.yaml file. Currently if I do the above, the user node pool doesn’t get used, only the default node pool does. Furthermore if I inspect the hub configuration hub-config through the GCE UI, I don’t see any trace of the custom configuration above. I noticed on this page that hub-specific configuration can go inside:

binderhub:
    jupyterhub:

so I tried putting the sections above (except config:) inside a jupyterhub section, i.e.:

binderhub:
  jupyterhub:
    scheduling:
      userScheduler:
        enabled: true

and re-ran the help upgrade ... command but no luck.

Could someone clarify where the above sections should go to get picked up?

Thanks!
Tom

I just found that I can get things to work if I put the Jupyter Hub config inside a:

jupyterhub:

section rather than a:

binderhub:
    jupyterhub:

section as instructed in https://binderhub.readthedocs.io/en/latest/customizing.html#jupyterhub-customization - is this page incorrect? If so, I can open a pull request.

Cheers,
Tom

Hi Tom, I’m glad you got this figured out.

The page you linked to isn’t incorrect exactly, but it is referencing a nuance about helm charts and their dependencies that can be conceptually tricky for the uninitiated. Hopefully, this section of the docs explains where the binderhub key comes from: https://binderhub.readthedocs.io/en/latest/debug.html#indentation-in-config-files
(if it doesn’t then PRs are welcome! :smile:)