Skip to content

Commit d70b927

Browse files
committed
Implement job cpu and memory resource requests and limits for jobs
1 parent ffa10a0 commit d70b927

File tree

4 files changed

+14
-4
lines changed

4 files changed

+14
-4
lines changed

envvars.py

+4
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,9 @@
4646
DR2_TILE_HOST_PATH = os.environ['DR2_TILE_HOST_PATH']
4747
JOB_UID = os.environ.get('JOB_UID', '1001')
4848
JOB_GID = os.environ.get('JOB_GID', '1001')
49+
JOB_RESOURCE_REQUEST_CPU = os.environ.get('JOB_RESOURCE_REQUEST_CPU', '100m')
50+
JOB_RESOURCE_LIMIT_CPU = os.environ.get('JOB_RESOURCE_LIMIT_CPU', '1')
51+
JOB_RESOURCE_REQUEST_MEMORY = os.environ.get('JOB_RESOURCE_REQUEST_MEMORY', '100Mi')
52+
JOB_RESOURCE_LIMIT_MEMORY = os.environ.get('JOB_RESOURCE_LIMIT_MEMORY', '1Gi')
4953

5054
FRONTEND_BASE_PATH = re.sub(r'http.*\/\/{}'.format(BASE_DOMAIN), '', FRONTEND_BASE_URL)

job.tpl.yaml

+4-2
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ spec:
8989
command: ["python3", "prestop.py"]
9090
resources:
9191
limits:
92-
cpu: {{ resource_limit_cpu}}
92+
cpu: {{ resource_limit_cpu | quote }}
93+
memory: {{ resource_limit_memory | quote }}
9394
requests:
94-
cpu: {{ resource_request_cpu}}
95+
cpu: {{ resource_request_cpu | quote }}
96+
memory: {{ resource_request_memory | quote }}

jobutils.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -1959,8 +1959,10 @@ def submit_job(params):
19591959
conf['configjob']['spec'] = {}
19601960

19611961
# TODO: Variate the resource requests/limits between the task types
1962-
conf["resource_limit_cpu"] = 1
1963-
conf["resource_request_cpu"] = 1
1962+
conf["resource_limit_cpu"] = envvars.JOB_RESOURCE_LIMIT_CPU
1963+
conf["resource_request_cpu"] = envvars.JOB_RESOURCE_REQUEST_CPU
1964+
conf["resource_limit_memory"] = envvars.JOB_RESOURCE_LIMIT_MEMORY
1965+
conf["resource_request_memory"] = envvars.JOB_RESOURCE_REQUEST_MEMORY
19641966

19651967

19661968
# Should the job be executed synchronously or in an independent container (Kubernetes Job)

kubejob.py

+2
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ def job(input):
5757
username=input["configjob"]["metadata"]["username"],
5858
resource_limit_cpu=input["resource_limit_cpu"],
5959
resource_request_cpu=input["resource_request_cpu"],
60+
resource_limit_memory=input["resource_limit_memory"],
61+
resource_request_memory=input["resource_request_memory"],
6062
desarchiveHostPath=envvars.DESARCHIVE_HOST_PATH,
6163
coaddHostPath=envvars.COADD_HOST_PATH,
6264
dr2TilePath=envvars.DR2_TILE_HOST_PATH,

0 commit comments

Comments
 (0)