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(helm): add initial Dask support #821

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 31.08%. Comparing base (467be7a) to head (c0d2e92).
Report is 1 commits behind head on master.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #821   +/-   ##
=======================================
  Coverage   31.08%   31.08%           
=======================================
  Files          26       26           
  Lines        2487     2487           
=======================================
  Hits          773      773           
  Misses       1714     1714           

@Alputer Alputer changed the title Dask integration feat(dask): Dask integration (#821) Aug 13, 2024
@Alputer Alputer force-pushed the dask-integration branch 2 times, most recently from bd35dcc to aed3588 Compare August 28, 2024 15:24
Alputer added a commit to Alputer/reana that referenced this pull request Aug 28, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Aug 28, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Aug 29, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Sep 5, 2024
@@ -22,6 +22,16 @@ rules:
- apiGroups: ["metrics.k8s.io"]
resources: ["pods", "nodes"]
verbs: ["get", "list", "watch"]
# Custom dask kubernetes resources
Copy link
Member

Choose a reason for hiding this comment

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

It would be good to wrap the Dask stuff into a conditional variable such as dask.enabled -- similarly as we have traefik.enabled -- because some REANA deployments may not want to (or may not be allowed to) support Dask operators in their deployments.

Copy link
Member

Choose a reason for hiding this comment

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

Also, when dask.enabled is true, it would be good to deploy Dask operator automatically, in quite the same way as we do for traefik; see the dependencies in Chart.yaml.

Alputer added a commit to Alputer/reana that referenced this pull request Sep 9, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Sep 9, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Sep 9, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Sep 9, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Sep 10, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Sep 10, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Sep 10, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Sep 10, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Sep 10, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Oct 16, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Oct 16, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Oct 16, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Oct 24, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Oct 24, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Oct 24, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Oct 24, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Oct 24, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Oct 24, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Oct 24, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Oct 25, 2024
@tiborsimko tiborsimko changed the title feat(dask): Dask integration (#821) feat(helm): add initial dask support Oct 29, 2024
@tiborsimko tiborsimko changed the title feat(helm): add initial dask support feat(helm): add initial Dask support Oct 29, 2024
value: {{ .Values.dask.cluster_default_single_worker_memory | default "2Gi" }}
- name: REANA_DASK_CLUSTER_MAX_SINGLE_WORKER_MEMORY
value: {{ .Values.dask.cluster_max_single_worker_memory | default "8Gi" }}
{{- end }}
Copy link
Member

Choose a reason for hiding this comment

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

There is a trailing white space that you can remove here.

@@ -68,6 +68,11 @@ This Helm automatically prefixes all names using the release name to avoid colli
| `components.reana_workflow_engine_snakemake.environment` | [REANA-Workflow-Engine-Snakemake](https://github.com/reanahub/reana-workflow-engine-snakemake) environment variables | `{}` |
| `components.reana_workflow_engine_snakemake.image` | [REANA-Workflow-Engine-Snakemake image](https://hub.docker.com/r/reanahub/reana-workflow-engine-snakemake) to use | `docker.io/reanahub/reana-workflow-engine-snakemake:<chart-release-version>` |
| `compute_backends` | List of supported compute backends (kubernetes, htcondorcern, slurmcern) | "kubernetes" |
| `dask.enabled` | Install dask-kubernetes-operator custom resources in the cluster to support Dask workflows | false |
Copy link
Member

Choose a reason for hiding this comment

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

Please indent the table so that | separators would appear under previous ones.

There is also trailing white space at some of the line ends.

cluster_max_memory_limit: "16Gi"
cluster_default_number_of_workers: 2
cluster_default_single_worker_memory: "2Gi"
cluster_max_single_worker_memory: "4Gi"
Copy link
Member

Choose a reason for hiding this comment

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

The value of 4Gi does not correspond to what was advertised in the README file. Please change to 8Gi.

@@ -68,6 +68,11 @@ This Helm automatically prefixes all names using the release name to avoid colli
| `components.reana_workflow_engine_snakemake.environment` | [REANA-Workflow-Engine-Snakemake](https://github.com/reanahub/reana-workflow-engine-snakemake) environment variables | `{}` |
| `components.reana_workflow_engine_snakemake.image` | [REANA-Workflow-Engine-Snakemake image](https://hub.docker.com/r/reanahub/reana-workflow-engine-snakemake) to use | `docker.io/reanahub/reana-workflow-engine-snakemake:<chart-release-version>` |
| `compute_backends` | List of supported compute backends (kubernetes, htcondorcern, slurmcern) | "kubernetes" |
| `dask.enabled` | Install dask-kubernetes-operator custom resources in the cluster to support Dask workflows | false |
Copy link
Member

Choose a reason for hiding this comment

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

The help could be shorter: Enable support for running Dask workflows.

@@ -68,6 +68,11 @@ This Helm automatically prefixes all names using the release name to avoid colli
| `components.reana_workflow_engine_snakemake.environment` | [REANA-Workflow-Engine-Snakemake](https://github.com/reanahub/reana-workflow-engine-snakemake) environment variables | `{}` |
| `components.reana_workflow_engine_snakemake.image` | [REANA-Workflow-Engine-Snakemake image](https://hub.docker.com/r/reanahub/reana-workflow-engine-snakemake) to use | `docker.io/reanahub/reana-workflow-engine-snakemake:<chart-release-version>` |
| `compute_backends` | List of supported compute backends (kubernetes, htcondorcern, slurmcern) | "kubernetes" |
| `dask.enabled` | Install dask-kubernetes-operator custom resources in the cluster to support Dask workflows | false |
| `dask.cluster_max_memory_limit` | Max memory limit for Dask clusters | "16Gi" |
Copy link
Member

Choose a reason for hiding this comment

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

The maximum memory limit for Dask clusters created by users

@@ -68,6 +68,11 @@ This Helm automatically prefixes all names using the release name to avoid colli
| `components.reana_workflow_engine_snakemake.environment` | [REANA-Workflow-Engine-Snakemake](https://github.com/reanahub/reana-workflow-engine-snakemake) environment variables | `{}` |
| `components.reana_workflow_engine_snakemake.image` | [REANA-Workflow-Engine-Snakemake image](https://hub.docker.com/r/reanahub/reana-workflow-engine-snakemake) to use | `docker.io/reanahub/reana-workflow-engine-snakemake:<chart-release-version>` |
| `compute_backends` | List of supported compute backends (kubernetes, htcondorcern, slurmcern) | "kubernetes" |
| `dask.enabled` | Install dask-kubernetes-operator custom resources in the cluster to support Dask workflows | false |
| `dask.cluster_max_memory_limit` | Max memory limit for Dask clusters | "16Gi" |
| `dask.cluster_default_number_of_workers` | Number of workers in Dask clusters by default | 2 |
Copy link
Member

Choose a reason for hiding this comment

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

The number of Dask workflows created by default

| `dask.enabled` | Install dask-kubernetes-operator custom resources in the cluster to support Dask workflows | false |
| `dask.cluster_max_memory_limit` | Max memory limit for Dask clusters | "16Gi" |
| `dask.cluster_default_number_of_workers` | Number of workers in Dask clusters by default | 2 |
| `dask.cluster_default_single_worker_memory` | Amount of memory used by a single Dask worker by default | "2Gi" |
Copy link
Member

Choose a reason for hiding this comment

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

The amount of memory used by default by a single Dask worker

| `dask.cluster_max_memory_limit` | Max memory limit for Dask clusters | "16Gi" |
| `dask.cluster_default_number_of_workers` | Number of workers in Dask clusters by default | 2 |
| `dask.cluster_default_single_worker_memory` | Amount of memory used by a single Dask worker by default | "2Gi" |
| `dask.cluster_max_single_worker_memory` | Maximum amount of memory that can be used by a single Dask worker | "8Gi" |
Copy link
Member

Choose a reason for hiding this comment

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

The maximum amount of memory that users can ask for the single 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.

BTW we may want to chat IRL about these, since the autoscaler could affect the variables and their names and/or documentation strings.

Alputer added a commit to Alputer/reana that referenced this pull request Oct 30, 2024
Alputer added a commit to Alputer/reana that referenced this pull request Oct 30, 2024
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 c0d2e92 into reanahub:master Oct 31, 2024
12 checks passed
Alputer added a commit to Alputer/reana that referenced this pull request Oct 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants