reanahub / reana

REANA: Reusable research data analysis platform
https://docs.reana.io
MIT License
123 stars 54 forks source link

system: Introduce Kueue as an Optional Job Submission Approach #800

Open xaviertintin opened 4 months ago

xaviertintin commented 4 months ago

This feature introduces Kueue as an optional alternative to the existing Kubernetes Job API for submitting user jobs in REANA. This enhances flexibility for REANA admins by allowing them to choose the most suitable job submission method for their specific requirements.

Goals:

Implementation Overview (Conceptual):

The GitHub project with the implementation steps and discussions that lead up to this integration can be found here The repository with integration commands can be found here Official documentation expected to be released June 2024 at latest

Component Updates:

1. reana:

2. reana-workflow-controller:

  • Retrieve the environment variable (KUEUE_ENABLED) in (reana-workflow-controller/reana_workflow_controller/config.py)
  • Select the appropriate job submission method based on the deployment type in (reana-workflow-controller/reana_workflow_controller/workflow_run_manager.py):
    • Standard: Utilize the existing Kubernetes Job API.
    • Kueue: Implement Kueue job submission logic.
  • Pass the chosen deployment type to downstream components (job_controller_env_vars).

3. reana-job-controller:

  • Access the environment variable (KUEUE_ENABLED) in (reana-job-controller/reana_job_controller/config.py).
  • Select the appropriate job submission method based on the deployment type in (reana-job-controller/reana_job_controller/kubernetes_job_manager.py):
    • Standard: Utilize the existing Kubernetes Job API.
    • Kueue: Implement Kueue job submission logic.