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

💡 [Feature] Include rook server in optional components #455

Open
huard opened this issue May 13, 2024 · 6 comments
Open

💡 [Feature] Include rook server in optional components #455

huard opened this issue May 13, 2024 · 6 comments
Assignees
Labels
enhancement New feature or request

Comments

@huard
Copy link
Collaborator

huard commented May 13, 2024

Description

Rook is a birdhouse WPS server offering simple subsetting and averaging processes. See https://github.com/roocs/rook/tree/master/rook/processes

Unlike Finch, it has an established database of datasets it is willing to operate on. That is, process input includes a dataset ID, not a URL to a file, and the server converts that ID to an actual path. This database is built from an intake catalog.

Rook comes with a custom-built client, rooki, based off birdy.

This work would align with the ESGF roadmap to deploy remote computing along ESGF nodes.

Steps:

  • Push rook docker image to dockerhub
  • Create intake catalog for datasets we want supported.
  • Include rook in birdhouse-deploy optional components
  • Add notebook to test use cases

References

Concerned Organizations

@huard huard added the enhancement New feature or request label May 13, 2024
@fmigneault
Copy link
Collaborator

Should also consider adding it as a provider to Weaver to give it instant OGC API support.

@tlvu
Copy link
Collaborator

tlvu commented May 14, 2024

I did a quick search on DockerHub, did not find a matching docker image. Is Rook publishing their docker image to another public registry? Or they do not yet publish any docker images?

@huard
Copy link
Collaborator Author

huard commented May 14, 2024

They don't. Can we use our dockerhub account to do it?

@tlvu
Copy link
Collaborator

tlvu commented May 14, 2024

Oh ! So I guess they deploy using Ansible.

Yes we can use our DockerHub account to host their image. We are paying so have unlimited storage.

But that also means their Dockerfile is not tested ! I was hoping for a quick win on this one, might not be the case anymore.

@huard
Copy link
Collaborator Author

huard commented May 14, 2024

Yes, their production backend runs SLURM.
Ok good.
Correct, but it should work very similarly to Finch. I'll gather more information on the intake catalog that's needed to configure the database and try to get it to work locally.

@fmigneault
Copy link
Collaborator

Could also be added to their repo directly and make use of GitHub Container Registry.
This way, they manage their own tokens within their CI.

tlvu added a commit to Ouranosinc/PAVICS-e2e-workflow-tests that referenced this issue Jan 23, 2025
…mmatically (#138)

This is done via the `CONFIG_PARAMETERS_SCRIPT_URL` override. See the
sample `jenkins-params-external-repos.include.sh` where I run external
notebooks from https://github.com/roocs/rook/tree/master/notebooks.

Changes:
* Do not download repos not enabled to run (fixes
#30).
* Do not delete `setup.cfg` `tox.ini` and `pyproject.toml` files.
* Do not hardcode the list of `archiveArtifacts` in `Jenkinsfile`
because the list of repos is dynamic now.
* (Breaking) Archived build artifacts of original notebooks moved to
under `buildout/` dir, together with their corresponding
`*.output.ipynb` files. Previously they were at the same checkout path
as their repo.
* This artifact filename format can be override by
`CONFIG_OVERRIDE_SCRIPT_URL`, see demo in
`test-override/jenkins-params-external-repos.include.sh`
* `downloadrepos` is both a script and a library to centralize all
helper functions in one place. Otherwise we would have helpers for
downloading repos in one file and helpers for other tasks in other
files. Backward compatibility is preserved when `downloadrepos` is used
as a script in autodeploy of tutorial notebooks to the Jupyter env.
* New ability to run post-processing steps at the end of Jenkins build,
see demo in `test-override/jenkins-params-external-repos.include.sh`
* `NBVAL_SANITIZE_CFG_FILE` and `DEFAULT_PRODUCTION_HOST` now can also
be overridden by the external repo if needed.

This PR is almost fixing
#57.

There is no easy way to programmatically change the Jenkins "build
request UI" to add on-the-fly the new params for the external repo. I
think we will have to have another separate `Jenkinsfile.other_repo`.

This PR would help testing
bird-house/birdhouse-deploy#455.

@mishaschwartz This would be useful to you if you have notebooks for
your own WPS services.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants