Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mount public wpsoutputs data #360

Merged
merged 19 commits into from
Sep 25, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
e57d421
mount public wpsoutputs data with cowbird and jupyterlab instances
cwcummings Jul 18, 2023
c040992
bump cowbird to 2.0.0 and mongo to 5.0 to support the new cowbird ver…
cwcummings Jul 25, 2023
438b3de
isolate mongodb 5.0 required for cowbird
cwcummings Jul 25, 2023
d5f9ded
update changelog
cwcummings Jul 25, 2023
fce59da
review changelog
cwcummings Jul 25, 2023
5ed155c
remove unused wpsoutputs mount
cwcummings Aug 8, 2023
53c5cb8
Merge branch 'master' of github.com:bird-house/birdhouse-deploy into …
cwcummings Aug 9, 2023
d800550
updates after pr feedback
cwcummings Aug 21, 2023
3bc3133
add secure-data-proxy name variable to cowbird
cwcummings Sep 7, 2023
2520f80
add new optional cowbird config parameters as comments
cwcummings Sep 18, 2023
71fc669
Merge branch 'master' of github.com:bird-house/birdhouse-deploy into …
cwcummings Sep 18, 2023
5673593
review wps outputs variables
cwcummings Sep 18, 2023
7afd194
bump cowbird version and move changes in changelog
cwcummings Sep 18, 2023
c8c8728
small adjust cowbird vars
cwcummings Sep 18, 2023
1c66ed4
use 'build.os' instead of deprecated 'build.image' in readthedocs config
cwcummings Sep 18, 2023
cadd9f4
try newer python version for readthedocs
cwcummings Sep 22, 2023
90611a7
Merge branch 'master' of github.com:bird-house/birdhouse-deploy into …
cwcummings Sep 22, 2023
7119db0
Merge branch 'master' of github.com:bird-house/birdhouse-deploy into …
cwcummings Sep 25, 2023
5ffcb0f
Bump version: 1.32.0 → 1.33.0
cwcummings Sep 25, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 1.32.0
current_version = 1.33.0
commit = True
tag = False
tag_name = {new_version}
Expand Down Expand Up @@ -30,11 +30,11 @@ search = {current_version}
replace = {new_version}

[bumpversion:file:RELEASE.txt]
search = {current_version} 2023-09-22T16:09:24Z
search = {current_version} 2023-09-25T13:02:37Z
replace = {new_version} {utcnow:%Y-%m-%dT%H:%M:%SZ}

[bumpversion:part:releaseTime]
values = 2023-09-22T16:09:24Z
values = 2023-09-25T13:02:37Z

[bumpversion:file(version):birdhouse/config/canarie-api/docker_configuration.py.template]
search = 'version': '{current_version}'
Expand Down
7 changes: 4 additions & 3 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,15 @@ sphinx:
# Optionally build your docs in additional formats such as PDF and ePub
formats: all

# Optionally set the version of Python and requirements required to build your docs
# Optionally set the Python requirements required to build your docs
python:
version: 3.6
install:
- requirements: docs/requirements.txt

#conda:
# environment: environment-docs.yml

build:
image: stable
os: "ubuntu-22.04"
tools:
python: "3.10"
20 changes: 20 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,26 @@

[//]: # (list changes here, using '-' for each new entry, remove this when items are added)

[1.33.0](https://github.com/bird-house/birdhouse-deploy/tree/1.33.0) (2023-09-25)
------------------------------------------------------------------------------------------------------------------

## Changes

- Add public WPS outputs directory to Cowbird and add corresponding volume mount to JupyterHub.
- Update `cowbird` service from [1.2.0](https://github.com/Ouranosinc/cowbird/tree/1.2.0)
to [2.1.0](https://github.com/Ouranosinc/cowbird/tree/2.1.0).
- Require `MongoDB==5.0` Docker image for Cowbird's database.
- Add `WPS_OUTPUTS_DIR` env variable to manage the location of the WPS outputs data.

## Important
Because of the new `MongoDB==5.0` database requirement for Cowbird that uses (potentially) distinct version from other
birds, a separate Docker image is employed only for Cowbird. If some processes, jobs, or other Cowbird-related data
was already defined on one of your server instances, manual transfer between the generic
`${DATA_PERSIST_ROOT}/mongodb_persist` to new `${DATA_PERSIST_ROOT}/mongodb_cowbird_persist` directory must be
accomplished. The data in the new directory should then be migrated to the new version following the same procedure as
described for Weaver in
[Database Migration](https://pavics-weaver.readthedocs.io/en/latest/installation.html?#database-migration).

[1.32.0](https://github.com/bird-house/birdhouse-deploy/tree/1.32.0) (2023-09-22)
------------------------------------------------------------------------------------------------------------------

Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Generic variables
override SHELL := bash
override APP_NAME := birdhouse-deploy
override APP_VERSION := 1.32.0
override APP_VERSION := 1.33.0

# utility to remove comments after value of an option variable
override clean_opt = $(shell echo "$(1)" | $(_SED) -r -e "s/[ '$'\t'']+$$//g")
Expand Down
8 changes: 4 additions & 4 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ for a full-fledged production platform.
* - releases
- | |latest-version| |commits-since|

.. |commits-since| image:: https://img.shields.io/github/commits-since/bird-house/birdhouse-deploy/1.32.0.svg
.. |commits-since| image:: https://img.shields.io/github/commits-since/bird-house/birdhouse-deploy/1.33.0.svg
:alt: Commits since latest release
:target: https://github.com/bird-house/birdhouse-deploy/compare/1.32.0...master
:target: https://github.com/bird-house/birdhouse-deploy/compare/1.33.0...master

.. |latest-version| image:: https://img.shields.io/badge/tag-1.32.0-blue.svg?style=flat
.. |latest-version| image:: https://img.shields.io/badge/tag-1.33.0-blue.svg?style=flat
:alt: Latest Tag
:target: https://github.com/bird-house/birdhouse-deploy/tree/1.32.0
:target: https://github.com/bird-house/birdhouse-deploy/tree/1.33.0

.. |readthedocs| image:: https://readthedocs.org/projects/birdhouse-deploy/badge/?version=latest
:alt: ReadTheDocs Build Status (latest version)
Expand Down
2 changes: 1 addition & 1 deletion RELEASE.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.32.0 2023-09-22T16:09:24Z
1.33.0 2023-09-25T13:02:37Z
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@ handlers:
priority: 1
workspace_dir: ${WORKSPACE_DIR}
jupyterhub_user_data_dir: ${JUPYTERHUB_USER_DATA_DIR}
wps_outputs_dir: ${WPS_OUTPUTS_DIR}
secure_data_proxy_name: ${SECURE_DATA_PROXY_NAME}
# wps_outputs_res_name: ${WPS_OUTPUTS_RES_NAME}
public_workspace_wps_outputs_subdir: ${PUBLIC_WORKSPACE_WPS_OUTPUTS_SUBDIR}
# notebooks_dir_name: ${NOTEBOOKS_DIR_NAME}
# user_wps_outputs_dir_name: ${USER_WPS_OUTPUTS_DIR_NAME}

# [Required] This section defines how to synchronize permissions between services when they share resources
sync_permissions:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,6 @@ services:
jupyterhub:
environment:
WORKSPACE_DIR: ${DATA_PERSIST_ROOT}/${USER_WORKSPACES}
PUBLIC_WORKSPACE_WPS_OUTPUTS_SUBDIR: ${PUBLIC_WORKSPACE_WPS_OUTPUTS_SUBDIR}
volumes:
- "${DATA_PERSIST_ROOT}/${USER_WORKSPACES}:${DATA_PERSIST_ROOT}/${USER_WORKSPACES}"
37 changes: 25 additions & 12 deletions birdhouse/components/cowbird/default.env
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,12 @@
# single quotes are important in below list to keep variable names intact until 'pavics-compose' parses them
EXTRA_VARS='
${COWBIRD_VERSION}
${COWBIRD_MONGODB_SERVICE}
${COWBIRD_MONGODB_VERSION}
${COWBIRD_MONGODB_HOST}
${COWBIRD_MONGODB_PORT}
${USER_WORKSPACES}
${PUBLIC_WORKSPACE_WPS_OUTPUTS_SUBDIR}
${SECURE_DATA_PROXY_NAME}
'
# extend the original 'VARS' from 'birdhouse/pavics-compose.sh' to employ them for template substitution
# adding them to 'VARS', they will also be validated in case of override of 'default.env' using 'env.local'
Expand All @@ -24,22 +27,32 @@ VARS="$VARS $EXTRA_VARS"
# Cowbird Configuration
# =====================

export COWBIRD_VERSION="1.2.0"
export COWBIRD_VERSION="2.1.0"

# reuse the mongo instance provided by the core docker-compose
# default release of the MongoDB version employed by Cowbird
# note that MongoDB>=5.0 is REQUIRED for Cowbird>=2.0.0
export COWBIRD_MONGODB_VERSION=5.0
# either reuse the mongo instance provided by the core docker-compose
# or use another service (e.g.: dedicated mongodb)
# the 'host' is the mongo 'service' inter-docker network connection in this case
# if another service should be used (e.g.: dedicated mongodb), adjust the variable
# the selected 'mongo' service should be member of a network of same name
export COWBIRD_MONGODB_SERVICE=mongodb
export COWBIRD_MONGODB_HOST=${COWBIRD_MONGODB_SERVICE}
export COWBIRD_MONGODB_HOST=cowbird-mongodb
export COWBIRD_MONGODB_PORT=27017

# Subdirectory containing the user workspaces used by Cowbird
export USER_WORKSPACES="user_workspaces"

# this dependency is only required if COWBIRD_MONGODB_SERVICE is the one provided in config/mongodb.
# (include this by default to support backwards compatibility for now)
COMPONENT_DEPENDENCIES="
$COMPONENT_DEPENDENCIES
./config/mongodb
"
# Subdirectory containing the hardlinks to the public WPS outputs data
# This directory will be mounted on the JupyterLab instances and is located by default
# in the ${USER_WORKSPACES} directory.
export PUBLIC_WORKSPACE_WPS_OUTPUTS_SUBDIR="public/wps_outputs"

# Default name for the secure-data-proxy service from Magpie.
export SECURE_DATA_PROXY_NAME="secure-data-proxy"

# this dependency is only required if the mongo instance is the one provided in config/mongodb.
# (include this for Cowbird<2.0.0)
#COMPONENT_DEPENDENCIES="
# $COMPONENT_DEPENDENCIES
# ./config/mongodb
#"
39 changes: 29 additions & 10 deletions birdhouse/components/cowbird/docker-compose-extra.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,25 @@ services:
# root user
COWBIRD_FILESYSTEM_ADMIN_UID: 0
COWBIRD_FILESYSTEM_ADMIN_GID: 0
WORKSPACE_DIR: /${USER_WORKSPACES}
PUBLIC_WORKSPACE_WPS_OUTPUTS_SUBDIR: ${PUBLIC_WORKSPACE_WPS_OUTPUTS_SUBDIR}
SECURE_DATA_PROXY_NAME: ${SECURE_DATA_PROXY_NAME}
# Note that WPS_OUTPUTS_DIR and WORKSPACE_DIR must both point to paths from the same volume.
# This is to allow the creation of hardlinks between the wpsoutputs and the user workspace.
WPS_OUTPUTS_DIR: ${WPS_OUTPUTS_DIR}
WORKSPACE_DIR: ${DATA_PERSIST_ROOT}/${USER_WORKSPACES}
links:
- "${COWBIRD_MONGODB_SERVICE}"
- cowbird-mongodb
networks:
- default
- "${COWBIRD_MONGODB_SERVICE}"
- cowbird-mongodb
depends_on:
- "${COWBIRD_MONGODB_SERVICE}"
- cowbird-mongodb
volumes:
- ./components/cowbird/config/cowbird/config.yml:/opt/local/src/cowbird/config/cowbird.yml
- ./components/cowbird/config/cowbird/cowbird.ini:/opt/local/src/cowbird/config/cowbird.ini
# even if not running tasks here, they must be registered to send them off to the right place!
- ./components/cowbird/config/cowbird/celeryconfig.py:/opt/local/src/cowbird/config/celeryconfig.py
- "${DATA_PERSIST_ROOT}/${USER_WORKSPACES}:/${USER_WORKSPACES}"
- "${DATA_PERSIST_ROOT}:${DATA_PERSIST_ROOT}"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Woo, this has write-access to the entire $DATA_PERSIST_ROOT !!! Isn't this too much access?

I am guessing it only needs access to JUPYTERHUB_USER_DATA_DIR="$DATA_PERSIST_ROOT/jupyterhub_user_data" and Thredds wps_output dir?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ChaamC correct me if I'm wrong... but the reason for this is that both of those directories need to be mounted in the same volume for hardlinks to work:

@tlvu In #356 we introduce the DATA_PERSIST_SHARED_ROOT variable here instead. This gives us the ability to mount only the required subdirectories as as single volume.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes I am a bit behind in most things cowbird. Understood that for hard links to work, the src and dest of the link should be on the same filesystem.

So if we need to expose Thredds wps_outputs and possibly Geoserver workspace in the Jupyter env workspace, then we need to only volume-mount those 3, in the cowbird container, not the entire /data.

If DATA_PERSIST_SHARED_ROOT is the same as DATA_PERSIST_ROOT by default, then it comes back to the same as exposing the entire /data to cowbird writable.

Basically would something like the following works:

services:
  cowbird:
    volumes:
      - ./components/cowbird/config/cowbird/config.yml:/opt/local/src/cowbird/config/cowbird.yml
      - ./components/cowbird/config/cowbird/cowbird.ini:/opt/local/src/cowbird/config/cowbird.ini
      # even if not running tasks here, they must be registered to send them off to the right place!
      - ./components/cowbird/config/cowbird/celeryconfig.py:/opt/local/src/cowbird/config/celeryconfig.py
      - "${DATA_PERSIST_SHARED_ROOT}/jupyter_user_data:${DATA_PERSIST_SHARED_ROOT}/jupyter_user_data"
      - "${DATA_PERSIST_SHARED_ROOT}/datasets/wps_outputs:${DATA_PERSIST_SHARED_ROOT}/datasets/wps_outputs"
      - "${DATA_PERSIST_SHARED_ROOT}/geoserver/workspaces:${DATA_PERSIST_SHARED_ROOT}/geoserver/workspaces"

So the paths inside and outside of the cowbird container is exactly the same, giving it the impression it has access to the entire /data but it's not true.

By the way, I am not sure ${DATA_PERSIST_SHARED_ROOT}/datasets/wps_outputs actually works since I think the actual wps_outputs is in a data-volume https://github.com/bird-house/birdhouse-deploy/blob/master/birdhouse/config/wps_outputs-volume/docker-compose-extra.yml

Usage of that wps_outputs data-volume:

birdhouse/config/raven/config/wps_outputs-volume/docker-compose-extra.yml
6:      - wps_outputs:/data/wpsoutputs

birdhouse/config/thredds/docker-compose-extra.yml
24:      - wps_outputs:/pavics-data/wps_outputs

Anyways, many inter-connected pieces so not simple to wrap my head around.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If DATA_PERSIST_SHARED_ROOT is the same as DATA_PERSIST_ROOT by default, then it comes back to the same as exposing the entire /data to cowbird writable.

Yes it would. But... I would like to see DATA_PERSIST_SHARED_ROOT not be the same as DATA_PERSIST_ROOT. The only reason it is like that by default is to maintain backwards compatibility.

Basically would something like the following works:

No, unfortunately that wouldn't work. They actually need to be mounted at the same mount-point. The relative location matters for symlinks, but a shared mount-point matters for hard-links.

By the way, I am not sure ${DATA_PERSIST_SHARED_ROOT}/datasets/wps_outputs actually works since I think the actual wps_outputs is in a data-volume

I don't have enough knowledge to comment on this. Sorry

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ChaamC correct me if I'm wrong... but the reason for this is that both of those directories need to be mounted in the same volume for hardlinks to work:

Yes, exactly. If we want to share the wps_outputs data to the user, we need to use hardlinks, and cowbird requires the src and destination of the hardlinks to be in the same volume/file partition, or it will trigger a Cross-device link.

I needed to mount the full data directory to be able to make hardlinks between files from the /data/wps_outputs and /data/user_workspaces directories.

We can update the volume mount to use the upcoming new variable DATA_PERSIST_SHARED_ROOT as long as all files used by cowbird for this PR's feature are contained in this directory.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to double check, for existing deployments, if we want DATA_PERSIST_SHARED_ROOT=/data_shared_mount different than DATA_PERSIST_ROOT=/data, we have to move

  • /data/wps_outputs => /data_shared_mount/wps_outputs
  • /data/user_workspaces => /data_shared_mount/user_workspaces
  • anything else needed for the migration?

I think this migration should be documented because anyone starting with the current default values and do not want Cowbird to have access to the entire /data will have to perform this manual migration.

Or we set a different value immediately in default.env and in env.local.example we document the backward-compatible value DATA_PERSIST_SHARED_ROOT=/data and warn this gives Cowbird too much write-access. I prefer different default value now to avoid migration later. Cowbird is not in the default enable list right now so this should not break too many existing deployments.

Also, I still do not understand why we are referring to /data/wps_outputs when currently wps_outputs is a data-volume as mentioned in my comment #360 (comment) above.

This means different volume-mount between wps_outputs dir and user_workpaces dir and hardlink probably do not work.

Does Cowbird fallback to a regular copy when hardlink do not work? Does it log somewhere when hardlink do not work?

Is there a notebook or test script that tests Cowbird in the PAVICS stack I can try?

Also question for the future as I heard maybe Cowbird will manage Geoserver workspace too. Does this means we will need to migrate Geoserver data dir under DATA_PERSIST_SHARED_ROOT later?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

anything else needed for the migration?

That's it, at least concerning this PR's changes.
Although, I'm thinking about something else to watch out for. Not sure if this variable's path could be affected, but changing the JUPYTERHUB_USER_DATA_DIR variable's path could break the symlink that is used in the cowbird workspace to link to the JUPYTERHUB_USER_DATA_DIR directory. So, maybe something to watch out for. The user workspaces could eventually be resynchable if we decide to change the jupyterhub path, but the resync is not yet implemented in cowbird for this symlink, so for now it would need a manual recreation of symlinks in each user workspace if that variable is changed.

If we know we will eventually do the migration, I don't see any reason not to do it now. I think it would be okay to change it now if you prefer.

Also, I still do not understand why we are referring to /data/wps_outputs when currently wps_outputs is a data-volume as mentioned in my comment #360 (comment) above.
This means different volume-mount between wps_outputs dir and user_workpaces dir and hardlink probably do not work.

I am not sure to understand the problem here. Do you mean the fact that the birds who will produce wps_outputs data only mount the wps_outputs volume (and not the user workspace volume)? Any bird that produces wps_outputs only needs access to the wps_outputs volume. Only cowbird requires the full access to the data directory to allow the creation of hardlinks between the wps_outputs and user workspace directories. After that, when the hardlink is created, the volume mount does not require the full data mount to have the hardlink accessible. It is really only for the moment of creation, in cowbird that we require the full mount of the data directory.

Does Cowbird fallback to a regular copy when hardlink do not work? Does it log somewhere when hardlink do not work?

If the hardlink fails, the failure is only logged in Cowbird's logs. We want to avoid having 2 independant copies that could diverge. We did implement the resync function for the wps_outputs data, so if we need, we can call that API endpoint on cowbird, and cowbird will regenerate any missing hardlinks that could have resulted from a previous failure.

Is there a notebook or test script that tests Cowbird in the PAVICS stack I can try?

Nope, not at the moment, although I am checking to create a notebook to verify the different parts of the user workspace (notebook symlink, wps_outputs hardlinks, geoserver data, etc.), but I am not sure yet if it is achievable.

Also question for the future as I heard maybe Cowbird will manage Geoserver workspace too. Does this means we will need to migrate Geoserver data dir under DATA_PERSIST_SHARED_ROOT later?

Cowbird currently already manages geoserver's file permissions on the user workspace. Since the data is only found in the user workspace directly, it doesn't require any symlink/hardlinks, as data is already accessible to the user,it shouldn't be a problem.
Unless there is external geoserver data to be made accessible to the user that I am not aware of yet?

restart: always
logging: *default-logging

Expand All @@ -52,19 +57,33 @@ services:
# root user
COWBIRD_FILESYSTEM_ADMIN_UID: 0
COWBIRD_FILESYSTEM_ADMIN_GID: 0
WORKSPACE_DIR: /${USER_WORKSPACES}
WORKSPACE_DIR: ${DATA_PERSIST_ROOT}/${USER_WORKSPACES}
links:
- "${COWBIRD_MONGODB_SERVICE}"
- cowbird-mongodb
networks:
- default
- "${COWBIRD_MONGODB_SERVICE}"
- cowbird-mongodb
depends_on:
- "${COWBIRD_MONGODB_SERVICE}"
- cowbird-mongodb
- cowbird # if not started first, sometimes celery misbehaves and will not pick jobs in queue
volumes:
- ./components/cowbird/config/cowbird/config.yml:/opt/local/src/cowbird/config/cowbird.yml
- ./components/cowbird/config/cowbird/cowbird.ini:/opt/local/src/cowbird/config/cowbird.ini
- ./components/cowbird/config/cowbird/celeryconfig.py:/opt/local/src/cowbird/config/celeryconfig.py
- "${DATA_PERSIST_ROOT}/${USER_WORKSPACES}:/${USER_WORKSPACES}"
- "${DATA_PERSIST_ROOT}/${USER_WORKSPACES}:${DATA_PERSIST_ROOT}/${USER_WORKSPACES}"
restart: always
logging: *default-logging

# Dedicated database for Cowbird, since other 'mongodb' image does not employ the same version.
cowbird-mongodb:
image: mongo:${COWBIRD_MONGODB_VERSION}
container_name: cowbird-mongodb
networks:
- cowbird-mongodb
volumes:
- ${DATA_PERSIST_ROOT}/mongodb_cowbird_persist:/data/db
restart: always
logging: *default-logging

networks:
cowbird-mongodb: {}
4 changes: 2 additions & 2 deletions birdhouse/components/weaver/default.env
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,8 @@ export WEAVER_WPS_PATH=/wps
export WEAVER_WPS_OUTPUTS_PATH="/wpsoutputs/weaver"
# data persistence of wps outputs (directory path)
# NOTE:
# follow the same convension of 'wps_outputs/<bird>' as the rest of the stact
export WEAVER_WPS_OUTPUTS_DIR='${DATA_PERSIST_ROOT}/wps_outputs/weaver'
# follow the same convention of 'wps_outputs/<bird>' as the rest of the stack
export WEAVER_WPS_OUTPUTS_DIR='${WPS_OUTPUTS_DIR}/weaver'
export WEAVER_WPS_WORKDIR="/tmp/wps_workdir/weaver"

# logging
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,8 @@ SERVICES = {
# NOTE:
# Below version and release time auto-managed by 'make VERSION=x.y.z bump'.
# Do NOT modify it manually. See 'Tagging policy' in 'birdhouse/README.rst'.
'version': '1.32.0',
'releaseTime': '2023-09-22T16:09:24Z',
'version': '1.33.0',
'releaseTime': '2023-09-25T13:02:37Z',
'institution': 'Ouranos',
'researchSubject': 'Climatology',
'supportEmail': '${SUPPORT_EMAIL}',
Expand Down Expand Up @@ -142,8 +142,8 @@ PLATFORMS = {
# NOTE:
# Below version and release time auto-managed by 'make VERSION=x.y.z bump'.
# Do NOT modify it manually. See 'Tagging policy' in 'birdhouse/README.rst'.
'version': '1.32.0',
'releaseTime': '2023-09-22T16:09:24Z',
'version': '1.33.0',
'releaseTime': '2023-09-25T13:02:37Z',
'institution': 'Ouranos',
'researchSubject': 'Climatology',
'supportEmail': '${SUPPORT_EMAIL}',
Expand Down
4 changes: 4 additions & 0 deletions birdhouse/config/jupyterhub/jupyterhub_config.py.template
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,10 @@ if os.environ['WORKSPACE_DIR'] != jupyterhub_data_dir:
"bind": join(jupyterhub_data_dir, "{username}"),
"mode": "rw"
}
c.DockerSpawner.volumes[join(os.environ['WORKSPACE_DIR'], os.environ['PUBLIC_WORKSPACE_WPS_OUTPUTS_SUBDIR'])] = {
"bind": join(notebook_dir, os.environ['PUBLIC_WORKSPACE_WPS_OUTPUTS_SUBDIR']),
"mode": "ro"
}

container_gdrive_settings_path = join(container_home_dir, ".jupyter/lab/user-settings/@jupyterlab/google-drive/drive.jupyterlab-settings")
host_gdrive_settings_path = os.environ['JUPYTER_GOOGLE_DRIVE_SETTINGS']
Expand Down
2 changes: 2 additions & 0 deletions birdhouse/default.env
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,5 @@ export DEFAULT_CONF_DIRS='

export USER_WORKSPACE_UID=1000
export USER_WORKSPACE_GID=1000

export WPS_OUTPUTS_DIR="${DATA_PERSIST_ROOT}/wps_outputs"
fmigneault marked this conversation as resolved.
Show resolved Hide resolved
4 changes: 2 additions & 2 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@
# built documents.
#
# The short X.Y version.
version = '1.32.0'
version = '1.33.0'
# The full version, including alpha/beta/rc tags.
release = '1.32.0'
release = '1.33.0'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down