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

feat(openapi): update reana.yaml schema to include dask field #467

Merged
merged 1 commit into from
Oct 31, 2024

Conversation

Alputer
Copy link
Member

@Alputer Alputer commented Aug 13, 2024

This pull request contains the ongoing work of dask integration into REANA.

@Alputer Alputer self-assigned this Aug 13, 2024
Copy link

codecov bot commented Aug 13, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 41.79%. Comparing base (3b80320) to head (d0becac).
Report is 1 commits behind head on master.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #467   +/-   ##
=======================================
  Coverage   41.79%   41.79%           
=======================================
  Files          28       28           
  Lines        2010     2010           
=======================================
  Hits          840      840           
  Misses       1170     1170           

@Alputer Alputer changed the title Dask integration feat(dask): Dask integration (#427) Aug 13, 2024
@Alputer Alputer changed the title feat(dask): Dask integration (#427) feat(dask): Dask integration (#467) Aug 13, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Aug 28, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Aug 29, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Aug 29, 2024
@Alputer Alputer marked this pull request as ready for review August 29, 2024 11:38
Alputer added a commit to Alputer/reana-commons that referenced this pull request Sep 5, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Sep 5, 2024
AUTHORS.md Outdated
@@ -4,6 +4,7 @@ The list of contributors in alphabetical order:

- [Adelina Lintuluoto](https://orcid.org/0000-0002-0726-1452)
- [Agisilaos Kounelis](https://orcid.org/0000-0001-9312-3189)
- [Alp Tuna](https://orcid.org/0009-0001-1915-3993)
Copy link
Member

Choose a reason for hiding this comment

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

You can add yourself in the same commit that introduced functionality. It is not necessary to split this into two commits.

"type": "object",
"title": "Dask cluster to be used by the workflow",
"properties": {
"image": {
Copy link
Member

Choose a reason for hiding this comment

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

Please introduce also help for the various properties such as image. (By means of description fields, see .)

"maximum_kubernetes_jobs_timeout",
"maximum_workspace_retention_period",
"workspaces_available",
"dask_enabled"
Copy link
Member

Choose a reason for hiding this comment

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

Note that testing the reana-client with this reana-commons PR does not work against "older" REANA clusters that do not contain Dask support, I mean even with non-Dask workflows, for example:

$ cd reana-demo-root6-roofit
$ export REANA_SERVER_URL=https://reana.cern.ch
$ read -s REANA_ACCESS_TOKEN
$ reana-client create -w test
==> ERROR: Cannot create workflow test:
'dask_enabled' is a required property

It would be good to make the client workable against both "old" (Dask-unaware) and "new" (Dask-aware) clusters.

Basically, we have four cases in the test matrix to consider: old client <-> old cluster, old client <-> new cluster, new client <-> old cluster, new client <-> new cluster. The Dask support is "optional" and so ideally all these combinations should keep working.

Copy link
Member Author

Choose a reason for hiding this comment

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

I removed the required part from the openapi spec and now it should be working fine with all combinations. I tested with several examples and all should be working fine.

Alputer added a commit to Alputer/reana-commons that referenced this pull request Sep 25, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Sep 25, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Oct 16, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Oct 16, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Oct 16, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Oct 16, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Oct 16, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Oct 16, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Oct 24, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Oct 24, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Oct 24, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Oct 24, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Oct 24, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Oct 24, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Oct 24, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Oct 24, 2024
Alputer added a commit to Alputer/reana-commons that referenced this pull request Oct 29, 2024
},
"single_worker_memory": {
"type": "string",
"description": "Memory for one Dask worker.",
Copy link
Member

Choose a reason for hiding this comment

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

Requested memory for one Dask worker

},
"number_of_workers": {
"type": "number",
"description": "Number of workers in the Dask cluster."
Copy link
Member

Choose a reason for hiding this comment

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

Requested number of Dask workers

"properties": {
"image": {
"type": "string",
"description": "Image to be used by Dask workers and scheduler"
Copy link
Member

Choose a reason for hiding this comment

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

Container image to be used by Dask scheduler and workers

"dask": {
"$id": "/properties/workflow/properties/resources/properties/dask",
"type": "object",
"title": "Dask cluster to be used by the workflow",
Copy link
Member

Choose a reason for hiding this comment

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

Information about Dask cluster requested for the analysis.

@@ -429,6 +429,26 @@
"slurmcern"
]
},
"dask_cluster_default_number_of_workers": {
"title": "Default number of workers for Dask clusters",
Copy link
Member

Choose a reason for hiding this comment

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

For the server-side variables, please see notes about documentation lines in https://github.com/reanahub/reana/pull/821/files

"value": "8Gi"
},
"dask_enabled": {
"title": "Dask workflows allowed in the cluster",
Copy link
Member

Choose a reason for hiding this comment

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

Boolean to inform whether cluster supports running Dask workflows.

(BTW some wild thoughts on the necessity of this variable. I'm wondering whether we could use some of the other existing variables to decide whether Dask is enabled or disabled on the given deployment. OT1H, if the total memory limit is 0, and the number of workers is 0, then this could in theory function as a sign that Dask is not supported. OTOH, we may want to start offering more enabled/disabled options for various functionalities in the future, such as is CWL enabled, is Snakemake enabled, etc. So I kind of like having it 😉 since we could generalise it towards enabling/disabling various functionalities in general. We can muse more IRL.)

Copy link
Member

@tiborsimko tiborsimko left a comment

Choose a reason for hiding this comment

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

Works nicely 👍

@tiborsimko tiborsimko merged commit d0becac into reanahub:master Oct 31, 2024
16 checks passed
@Alputer Alputer changed the title feat(dask): Dask integration (#467) feat(openapi): update reana.yaml schema to include dask field Oct 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants