Skip to content

Commit 0f90c8a

Browse files
committed
feat(dask): create Kerberos sidecars for Dask workflows (#632)
If we detect that the user asked for Kerberos resources, we create the necessary Kerberos sidecar and add relevant credentials to Dask pods as environment variables. No additional changes were needed as first implementation of adding kerberos credentials works just fine. Closes reanahub/reana#871
1 parent 56f702e commit 0f90c8a

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

reana_workflow_controller/dask.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ def __init__(
5959
user_id,
6060
num_of_workers,
6161
single_worker_memory,
62+
kerberos=False,
6263
):
6364
"""Instantiate Dask resource manager.
6465
@@ -93,6 +94,8 @@ def __init__(
9394
)
9495
self.kubernetes_uid = WORKFLOW_RUNTIME_USER_UID
9596

97+
self.kerberos = kerberos
98+
9699
if DASK_AUTOSCALER_ENABLED:
97100
self.autoscaler_name = get_dask_component_name(workflow_id, "autoscaler")
98101
self.autoscaler_body = self._load_dask_autoscaler_template()
@@ -212,12 +215,10 @@ def _prepare_cluster(self):
212215
self.secrets_store.get_file_secrets_volume_as_k8s_specs()
213216
)
214217

215-
# FIXME: Decide how to detect if krb5, rucio and voms_proxy are needed
216-
kerberos = False
217218
rucio = False
218219
voms_proxy = False
219220

220-
if kerberos:
221+
if self.kerberos:
221222
self._add_krb5_containers()
222223
if voms_proxy:
223224
self._add_voms_proxy_init_container()

reana_workflow_controller/workflow_run_manager.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# This file is part of REANA.
2-
# Copyright (C) 2019, 2020, 2021, 2022, 2023, 2024 CERN.
2+
# Copyright (C) 2019, 2020, 2021, 2022, 2023, 2024, 2025 CERN.
33
#
44
# REANA is free software; you can redistribute it and/or modify it
55
# under the terms of the MIT License; see LICENSE file for more details.
@@ -399,6 +399,7 @@ def start_batch_workflow_run(
399399
"single_worker_memory",
400400
REANA_DASK_CLUSTER_DEFAULT_SINGLE_WORKER_MEMORY,
401401
),
402+
kerberos=self.requires_kerberos(),
402403
).create_dask_resources()
403404

404405
current_k8s_batchv1_api_client.create_namespaced_job(

0 commit comments

Comments
 (0)