diff --git a/reana_job_controller/config.py b/reana_job_controller/config.py index f5794c46..b9331ef2 100644 --- a/reana_job_controller/config.py +++ b/reana_job_controller/config.py @@ -27,5 +27,11 @@ MAX_JOB_RESTARTS = 3 """Number of retries for a job before considering it as failed.""" -SHARED_VOLUME_PATH_ROOT = os.getenv("SHARED_VOLUME_PATH_ROOT", '/reana') -"""Root path in the underlying shared file system.""" +SHARED_FS_MAPPING = { + 'MOUNT_SOURCE_PATH': os.getenv("SHARED_VOLUME_PATH_ROOT", '/reana'), + # Root path in the underlying shared file system to be mounted inside + # jobs. + 'MOUNT_DEST_PATH': os.getenv("SHARED_VOLUME_PATH", '/reana'), + # Mount path for the shared file system volume inside jobs. +} +"""Mapping from the shared file system backend to the job file system.""" diff --git a/reana_job_controller/k8s.py b/reana_job_controller/k8s.py index 8769b9e8..a6b4fb8d 100644 --- a/reana_job_controller/k8s.py +++ b/reana_job_controller/k8s.py @@ -68,7 +68,7 @@ def add_shared_volume(job): else: volume = volume_templates.get_k8s_hostpath_volume( job['metadata']['namespace']) - mount_path = config.SHARED_VOLUME_PATH_ROOT + mount_path = config.SHARED_FS_MAPPING['MOUNT_SOURCE_PATH'] job['spec']['template']['spec']['containers'][0]['volumeMounts'].append( {'name': volume['name'], 'mountPath': mount_path} diff --git a/reana_job_controller/volume_templates.py b/reana_job_controller/volume_templates.py index 00200771..4318dd24 100644 --- a/reana_job_controller/volume_templates.py +++ b/reana_job_controller/volume_templates.py @@ -25,7 +25,7 @@ import json from string import Template -from reana_job_controller.config import SHARED_VOLUME_PATH_ROOT +from reana_job_controller.config import SHARED_FS_MAPPING CEPHFS_SECRET_NAME = 'ceph-secret' @@ -96,9 +96,10 @@ def get_k8s_cephfs_volume(experiment): :returns: k8s CephFS volume spec as a dictionary. """ return json.loads( - K8S_CEPHFS_TEMPLATE.substitute(experiment=experiment, - path=SHARED_VOLUME_PATH_ROOT, - secret_name=CEPHFS_SECRET_NAME) + K8S_CEPHFS_TEMPLATE.substitute( + experiment=experiment, + path=SHARED_FS_MAPPING['MOUNT_SOURCE_PATH'], + secret_name=CEPHFS_SECRET_NAME) ) @@ -122,6 +123,7 @@ def get_k8s_hostpath_volume(experiment): :returns: k8s HostPath spec as a dictionary. """ return json.loads( - K8S_HOSTPATH_TEMPLATE.substitute(experiment=experiment, - path=SHARED_VOLUME_PATH_ROOT) + K8S_HOSTPATH_TEMPLATE.substitute( + experiment=experiment, + path=SHARED_FS_MAPPING['MOUNT_SOURCE_PATH']) )