Skip to content

Commit 978c970

Browse files
authored
control-service: fix deployment resources (#2955)
Why: Currently, the redeployment of a data job resets previously changed resources, such as CPU and memory. What: I have improved the method for merging deployment resources. Signed-off-by: Miroslav Ivanov [email protected] --------- Signed-off-by: Miroslav Ivanov [email protected] Co-authored-by: github-actions <>
1 parent 93d56f7 commit 978c970

File tree

1 file changed

+53
-20
lines changed

1 file changed

+53
-20
lines changed

projects/control-service/projects/pipelines_control_service/src/main/java/com/vmware/taurus/datajobs/DeploymentModelConverter.java

Lines changed: 53 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -264,27 +264,46 @@ private static void mergeDeploymentResources(
264264
DesiredDataJobDeployment mergedDeployment,
265265
JobDeployment newDeployment,
266266
DesiredDataJobDeployment oldDeployment) {
267-
if (newDeployment.getResources() == null) {
268-
return;
267+
268+
if (newDeployment.getResources() == null && oldDeployment.getResources() != null) {
269+
DataJobDeploymentResources resources = oldDeployment.getResources();
270+
setDeploymentResources(
271+
mergedDeployment,
272+
resources.getCpuRequestCores(),
273+
resources.getCpuLimitCores(),
274+
resources.getMemoryRequestMi(),
275+
resources.getMemoryLimitMi());
276+
} else if (newDeployment.getResources() != null && oldDeployment.getResources() == null) {
277+
DataJobResources resources = newDeployment.getResources();
278+
setDeploymentResources(
279+
mergedDeployment,
280+
resources.getCpuRequest(),
281+
resources.getCpuLimit(),
282+
resources.getMemoryRequest(),
283+
resources.getMemoryLimit());
284+
} else if (newDeployment.getResources() != null && oldDeployment.getResources() != null) {
285+
DataJobResources newResources = newDeployment.getResources();
286+
DataJobDeploymentResources oldResources = oldDeployment.getResources();
287+
Float cpuRequestCores =
288+
newResources.getCpuRequest() != null
289+
? newResources.getCpuRequest()
290+
: oldResources.getCpuRequestCores();
291+
Float cpuLimitCores =
292+
newResources.getCpuLimit() != null
293+
? newResources.getCpuLimit()
294+
: oldResources.getCpuLimitCores();
295+
Integer memoryRequestMi =
296+
newResources.getMemoryRequest() != null
297+
? newResources.getMemoryRequest()
298+
: oldResources.getMemoryRequestMi();
299+
Integer memoryLimitMi =
300+
newResources.getMemoryLimit() != null
301+
? newResources.getMemoryLimit()
302+
: oldResources.getMemoryLimitMi();
303+
304+
setDeploymentResources(
305+
mergedDeployment, cpuRequestCores, cpuLimitCores, memoryRequestMi, memoryLimitMi);
269306
}
270-
DataJobDeploymentResources resources = new DataJobDeploymentResources();
271-
resources.setCpuRequestCores(
272-
newDeployment.getResources().getCpuRequest() != null
273-
? newDeployment.getResources().getCpuRequest()
274-
: oldDeployment.getResources().getCpuRequestCores());
275-
resources.setCpuLimitCores(
276-
newDeployment.getResources().getCpuLimit() != null
277-
? newDeployment.getResources().getCpuLimit()
278-
: oldDeployment.getResources().getCpuLimitCores());
279-
resources.setMemoryRequestMi(
280-
newDeployment.getResources().getMemoryRequest() != null
281-
? newDeployment.getResources().getMemoryRequest()
282-
: oldDeployment.getResources().getMemoryRequestMi());
283-
resources.setMemoryLimitMi(
284-
newDeployment.getResources().getMemoryLimit() != null
285-
? newDeployment.getResources().getMemoryLimit()
286-
: oldDeployment.getResources().getMemoryLimitMi());
287-
mergedDeployment.setResources(resources);
288307
}
289308

290309
public static DataJobDeploymentStatus toJobDeploymentStatus(
@@ -352,4 +371,18 @@ private static DataJobResources getResourcesFromDeployment(ActualDataJobDeployme
352371
}
353372
return resources;
354373
}
374+
375+
private static void setDeploymentResources(
376+
DesiredDataJobDeployment mergedDeployment,
377+
Float cpuRequestCores,
378+
Float cpuLimitCores,
379+
Integer memoryRequestMi,
380+
Integer memoryLimitMi) {
381+
DataJobDeploymentResources resources = new DataJobDeploymentResources();
382+
resources.setCpuRequestCores(cpuRequestCores);
383+
resources.setCpuLimitCores(cpuLimitCores);
384+
resources.setMemoryRequestMi(memoryRequestMi);
385+
resources.setMemoryLimitMi(memoryLimitMi);
386+
mergedDeployment.setResources(resources);
387+
}
355388
}

0 commit comments

Comments
 (0)