Skip to content

Document hub.config override behavior for volumes#3815

Draft
sunu wants to merge 2 commits intojupyterhub:mainfrom
sunu:document-override-behaviour
Draft

Document hub.config override behavior for volumes#3815
sunu wants to merge 2 commits intojupyterhub:mainfrom
sunu:document-override-behaviour

Conversation

@sunu
Copy link
Contributor

@sunu sunu commented Feb 4, 2026

Addresses confusion from issue #3809 where users might expect hub.config.KubeSpawner.volumes to merge with chart-managed volumes (like the 'home' volume from singleuser.storage.static), but it actually replaces them completely.

The documentation now clarifies four distinct behaviors that happens in the following order:

  1. Helm merges multiple values files at the values level before templating as long as values are defined as dictionaries.
  2. Chart-managed volumes (home, files) are set first
  3. singleuser.storage.extraVolumes is merged into existing volumes - can shadow existing volumes if dict keys match
  4. hub.config.KubeSpawner.volumes completely replaces existing volume configuration

also addresses the documentation changes mentioned in #3690 (comment)

Addresses confusion from issue jupyterhub#3809 where users might expect
hub.config.KubeSpawner.volumes to merge with chart-managed volumes
(like the 'home' volume from singleuser.storage.static), but it
actually replaces them completely.

The documentation now clarifies four distinct behaviors:
1. Helm merges multiple -f files at the values level before templating as
    long as they are defined as dictionaries.
2. Chart-managed volumes (home, files) are set first
3. singleuser.storage.extraVolumes is merged into existing volumes - can shadow if dict keys match
4. hub.config completely replaces existing volume configuration
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant