|
|
@@ -7,6 +7,7 @@ import nju.seec.SEECdemo.logic.api.k8s.NamespaceApi;
|
|
|
import nju.seec.SEECdemo.logic.api.k8s.ResourceQuotaApi;
|
|
|
import nju.seec.SEECdemo.logic.api.k8s.SecretApi;
|
|
|
import nju.seec.SEECdemo.logic.api.k8s.dto.NamespaceDTO;
|
|
|
+import nju.seec.SEECdemo.logic.api.k8s.dto.ResourceQuotaDTO;
|
|
|
import nju.seec.SEECdemo.logic.api.k8s.exception.K8sApiException;
|
|
|
import nju.seec.SEECdemo.logic.api.k8s.vo.*;
|
|
|
import nju.seec.SEECdemo.logic.service.DBService;
|
|
|
@@ -74,21 +75,11 @@ public class ProjectServiceImpl implements ProjectService{
|
|
|
secretApi.createPrivateRegistrySecret(projectName, registry.getHost(), registry.getUsername(), registry.getPassword());
|
|
|
|
|
|
//创建项目资源限额
|
|
|
- ResourceConfig resourceConfig = seecIITemplate.getDefaultResourceConfig();
|
|
|
- ResourceQuota resourceQuota = new ResourceQuota();
|
|
|
- resourceQuota.setNamespace(projectName);
|
|
|
- resourceQuota.setName(projectName);
|
|
|
- resourceQuota.setMaxMemoryTotalRequest(resourceConfig.getMaxMemory());
|
|
|
- resourceQuota.setMaxMemoryTotalLimit(resourceConfig.getMaxMemory());
|
|
|
- resourceQuota.setMaxCpuTotalRequest(resourceConfig.getMaxCPU());
|
|
|
- resourceQuota.setMaxCpuTotalLimit(resourceConfig.getMaxCPU());
|
|
|
+ ResourceQuotaDTO resourceQuota = buildResourceQuota(projectName, seecIITemplate.getDefaultResourceConfig());
|
|
|
resourceQuotaApi.create(resourceQuota);
|
|
|
|
|
|
- //配置应用的默认配额
|
|
|
- Map<String, Integer> defaultValue = new HashMap<>();
|
|
|
- defaultValue.put("cpu", resourceConfig.getDefaultCPU().getQuantityIntValue());
|
|
|
- defaultValue.put("memory", resourceConfig.getDefaultMemory().getQuantityIntValue());
|
|
|
- V1LimitRange v1LimitRange = limitRangeApi.toLimitRange(projectName, projectName, defaultValue, defaultValue, null, null);
|
|
|
+ //创建项目资源默认配额
|
|
|
+ V1LimitRange v1LimitRange = buildLimitRange(projectName, seecIITemplate.getDefaultResourceConfig());
|
|
|
limitRangeApi.createLimitRange(projectName, v1LimitRange);
|
|
|
|
|
|
//创建项目同名数据库
|
|
|
@@ -144,4 +135,23 @@ public class ProjectServiceImpl implements ProjectService{
|
|
|
return namespace;
|
|
|
}
|
|
|
|
|
|
+ private ResourceQuotaDTO buildResourceQuota(String projectName, ResourceConfig resourceConfig) {
|
|
|
+ ResourceQuotaDTO resourceQuota = new ResourceQuotaDTO();
|
|
|
+ resourceQuota.setNamespace(projectName);
|
|
|
+ resourceQuota.setName(projectName);
|
|
|
+ resourceQuota.setMaxMemoryTotalRequest(resourceConfig.getMaxMemory());
|
|
|
+ resourceQuota.setMaxMemoryTotalLimit(resourceConfig.getMaxMemory());
|
|
|
+ resourceQuota.setMaxCpuTotalRequest(resourceConfig.getMaxCPU());
|
|
|
+ resourceQuota.setMaxCpuTotalLimit(resourceConfig.getMaxCPU());
|
|
|
+ return resourceQuota;
|
|
|
+ }
|
|
|
+
|
|
|
+ private V1LimitRange buildLimitRange(String projectName, ResourceConfig resourceConfig) {
|
|
|
+ //配置应用的默认配额
|
|
|
+ Map<String, Integer> defaultValue = new HashMap<>();
|
|
|
+ defaultValue.put("cpu", 50);
|
|
|
+ defaultValue.put("memory", 500);
|
|
|
+ V1LimitRange v1LimitRange = limitRangeApi.toLimitRange(projectName, projectName, defaultValue, defaultValue, null, null);
|
|
|
+ return v1LimitRange;
|
|
|
+ }
|
|
|
}
|