Skip to content

Commit 459d6fc

Browse files
authored
control-service: fix data job deployment cpu conversion (#3109)
Why Currently, we can configure data job CPU only in milicores. What Added an ability to provide cpu resources in either milicores or cores. Also, switched the database CPU unit to cores as it used to be. Testing done: Unit tests Signed-off-by: Miroslav Ivanov [email protected] Signed-off-by: Miroslav Ivanov [email protected]
1 parent 6e4e0a0 commit 459d6fc

File tree

6 files changed

+33
-10
lines changed

6 files changed

+33
-10
lines changed
Binary file not shown.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
distributionBase=GRADLE_USER_HOME
2+
distributionPath=wrapper/dists
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-bin.zip
4+
zipStoreBase=GRADLE_USER_HOME
5+
zipStorePath=wrapper/dists

projects/control-service/projects/pipelines_control_service/src/integration-test/java/com/vmware/taurus/datajobs/it/DataJobDeploymentCrudAsyncIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ private void checkDeployment() throws Exception {
6161
Assertions.assertFalse(jobDeployment.getEnabled());
6262
Assertions.assertEquals(1000, jobDeployment.getResources().getMemoryLimit());
6363
Assertions.assertEquals(500, jobDeployment.getResources().getMemoryRequest());
64-
Assertions.assertEquals(2000, jobDeployment.getResources().getCpuLimit());
65-
Assertions.assertEquals(1000, jobDeployment.getResources().getCpuRequest());
64+
Assertions.assertEquals(2, jobDeployment.getResources().getCpuLimit());
65+
Assertions.assertEquals(1, jobDeployment.getResources().getCpuRequest());
6666
Assertions.assertNotNull(jobDeployment.getJobVersion());
6767
Assertions.assertNotNull(jobDeployment.getContacts());
6868
}

projects/control-service/projects/pipelines_control_service/src/main/java/com/vmware/taurus/service/deploy/JobImageDeployerV2.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,7 @@ private void setDefaultCpuRequestIfNeeded(DataJobDeploymentResources resources)
457457
try {
458458
if (resources.getCpuRequestCores() == null) {
459459
String cpu = defaultConfigurations.dataJobRequests().getCpu();
460-
resources.setCpuRequestCores(K8SMemoryConversionUtils.getCpuInFloat(cpu));
460+
resources.setCpuRequestCores(K8SMemoryConversionUtils.getCpuInCores(cpu));
461461
}
462462
} catch (ParseException e) {
463463
handleResourcesException(e);
@@ -468,7 +468,7 @@ private void setDefaultCpuLimitIfNeeded(DataJobDeploymentResources resources) {
468468
try {
469469
if (resources.getCpuLimitCores() == null) {
470470
String cpu = defaultConfigurations.dataJobLimits().getCpu();
471-
resources.setCpuLimitCores(K8SMemoryConversionUtils.getCpuInFloat(cpu));
471+
resources.setCpuLimitCores(K8SMemoryConversionUtils.getCpuInCores(cpu));
472472
}
473473
} catch (ParseException e) {
474474
handleResourcesException(e);

projects/control-service/projects/pipelines_control_service/src/main/java/com/vmware/taurus/service/deploy/K8SMemoryConversionUtils.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,13 @@ public static int getMemoryInMi(String memory) throws ParseException {
3737
return getMemoryInMi(memoryAmount, memory);
3838
}
3939

40-
public static float getCpuInFloat(String cpu) throws ParseException {
41-
return NumberFormat.getInstance().parse(cpu).floatValue();
40+
public static float getCpuInCores(String cpu) throws ParseException {
41+
float value = NumberFormat.getInstance().parse(cpu).floatValue();
42+
43+
if (cpu != null && cpu.endsWith("m")) {
44+
value = value / 1000;
45+
}
46+
47+
return value;
4248
}
4349
}

projects/control-service/projects/pipelines_control_service/src/test/java/com/vmware/taurus/service/deploy/DataJobDefaultConfigurationsTest.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import org.springframework.beans.factory.annotation.Autowired;
1212
import org.springframework.boot.test.context.SpringBootTest;
1313

14+
import java.text.ParseException;
15+
1416
@SpringBootTest(classes = ControlplaneApplication.class)
1517
public class DataJobDefaultConfigurationsTest {
1618

@@ -35,16 +37,16 @@ public void testDefaultMemoryLimit() throws Exception {
3537
@Test
3638
public void testDefaultCpuRequest() throws Exception {
3739
Assertions.assertEquals(
38-
1000,
39-
K8SMemoryConversionUtils.getCpuInFloat(
40+
1,
41+
K8SMemoryConversionUtils.getCpuInCores(
4042
dataJobDefaultConfigurations.dataJobRequests().getCpu()));
4143
}
4244

4345
@Test
4446
public void testDefaultCpuLimit() throws Exception {
4547
Assertions.assertEquals(
46-
2000,
47-
K8SMemoryConversionUtils.getCpuInFloat(
48+
2,
49+
K8SMemoryConversionUtils.getCpuInCores(
4850
dataJobDefaultConfigurations.dataJobLimits().getCpu()));
4951
}
5052

@@ -77,4 +79,14 @@ public void testTbConversion() {
7779
public void testTiConversion() {
7880
Assertions.assertEquals(2097152, K8SMemoryConversionUtils.getMemoryInMi(2, "Ti"));
7981
}
82+
83+
@Test
84+
public void testCpuMilicoresConversion() throws ParseException {
85+
Assertions.assertEquals(1, K8SMemoryConversionUtils.getCpuInCores("1000m"));
86+
}
87+
88+
@Test
89+
public void testCpuCoresConversion() throws ParseException {
90+
Assertions.assertEquals(1, K8SMemoryConversionUtils.getCpuInCores("1"));
91+
}
8092
}

0 commit comments

Comments
 (0)