Skip to content

Commit 7dcbb42

Browse files
Jupyterhub: update recommended paths for public share folders (#481)
## Overview The recommended public share folders in the `env.local.example` file create a conflict with the default `PUBLIC_WORKSPACE_WPS_OUTPUTS_SUBDIR` path when both are enabled and mounted on a Jupyterlab container. This change updates the recommended paths for the public share folders to avoid this conflict and adds a warning helping users to avoid this conflict. Note: the conflict arises when `PUBLIC_WORKSPACE_WPS_OUTPUTS_SUBDIR` is mounted to a container as read-only volume and then Jupyterhub tries to mount the public share folder within that volume. Since the parent volume is read-only, the second volume mount fails. ## Changes **Non-breaking changes** None, documentation only **Breaking changes** None ## Related Issue / Discussion - Resolves #392 ## Additional Information Links to other issues or sources. ## CI Operations <!-- The test suite can be run using a different DACCS config with ``birdhouse_daccs_configs_branch: branch_name`` in the PR description. To globally skip the test suite regardless of the commit message use ``birdhouse_skip_ci`` set to ``true`` in the PR description. Using ``[<cmd>]`` (with the brackets) where ``<cmd> = skip ci`` in the commit message will override ``birdhouse_skip_ci`` from the PR description. Such commit command can be used to override the PR description behavior for a specific commit update. However, a commit message cannot 'force run' a PR which the description turns off the CI. To run the CI, the PR should instead be updated with a ``true`` value, and a running message can be posted in following PR comments to trigger tests once again. --> birdhouse_daccs_configs_branch: master birdhouse_skip_ci: false
2 parents 19d5401 + 96bb421 commit 7dcbb42

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

CHANGES.md

+12
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,18 @@
2121

2222
Update description of the `configs` subcommand to better describe it.
2323
The description when calling `bin/birdhouse -h` now matches the description when calling `bin/birdhouse configs -h`
24+
25+
- Jupyterhub: Update recommended paths for public share folders
26+
27+
The recommended public share folders in the `env.local.example` file create a conflict with the default
28+
`PUBLIC_WORKSPACE_WPS_OUTPUTS_SUBDIR` path when both are enabled and mounted on a Jupyterlab container.
29+
This change updates the recommended paths for the public share folders to avoid this conflict and adds a
30+
warning helping users to avoid this conflict.
31+
32+
Note: the conflict arises when `PUBLIC_WORKSPACE_WPS_OUTPUTS_SUBDIR` is mounted to a container as read-only
33+
volume and then Jupyterhub tries to mount the public share folder within that volume. Since the parent volume
34+
is read-only, the second volume mount fails.
35+
2436

2537
[2.6.1](https://github.com/bird-house/birdhouse-deploy/tree/2.6.1) (2024-11-22)
2638
------------------------------------------------------------------------------------------------------------------

birdhouse/env.local.example

+7-4
Original file line numberDiff line numberDiff line change
@@ -388,8 +388,8 @@ export GEOSERVER_ADMIN_PASSWORD="${__DEFAULT__GEOSERVER_ADMIN_PASSWORD}"
388388
## /data/jupyterhub_user_data/public-share/
389389
#public_read_on_disk = join(jupyterhub_data_dir, 'public-share')
390390
#
391-
## /notebook_dir/public/
392-
#public_read_in_container = join(notebook_dir, 'public')
391+
## /notebook_dir/public-share/
392+
#public_read_in_container = join(notebook_dir, 'public-share')
393393
#
394394
#c.DockerSpawner.volumes[public_read_on_disk] = {
395395
# 'bind': public_read_in_container,
@@ -401,14 +401,17 @@ export GEOSERVER_ADMIN_PASSWORD="${__DEFAULT__GEOSERVER_ADMIN_PASSWORD}"
401401
## /data/jupyterhub_user_data/public-share/{username}-public
402402
#public_share_on_disk = join(public_read_on_disk, '{username}-public')
403403
#
404-
## /notebook_dir/mypublic
405-
#public_share_in_container = join(notebook_dir, 'mypublic')
404+
## /notebook_dir/mypublic-share
405+
#public_share_in_container = join(notebook_dir, 'mypublic-share')
406406
#
407407
#c.DockerSpawner.volumes[public_share_on_disk] = {
408408
# 'bind': public_share_in_container,
409409
# 'mode': 'rw',
410410
#}
411411
#
412+
## If enabling the public-share paths above, make sure that the paths in the container don't conflict
413+
## with the PUBLIC_WORKSPACE_WPS_OUTPUTS_SUBDIR path.
414+
#
412415
### create dir with proper permissions
413416
#
414417
#def custom_create_dir_hook(spawner):

0 commit comments

Comments
 (0)