Commit e94b6e9b authored by 黎博's avatar 黎博

修复/service/create和/service/modify接口问题

parent e5774d2a
......@@ -94,88 +94,111 @@ public class K8sController {
String label = serviceCreateVo.getLabel();
String namespace = serviceCreateVo.getNamespace();
String image = serviceCreateVo.getImage();
// 如果Deployment已存在,则不重新添加
if (k8sService.queryIfDeploymentExistByName(namespace, serviceName)) {
return JsonResult.buildErrorStateResult("服务已存在,无法重复添加!", false);
}
QueryWrapper<DockerProject> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("project_name", serviceName);
if (label.equals("base")) {
// Service
if (!k8sService.queryIfServiceExistByName(namespace, serviceName)) {
if (serviceName.equals("mysql")) {
// 如果有Service,则首先删除Service
if (k8sService.queryIfServiceExistByName(namespace, serviceName)) {
k8sService.deleteService(namespace, serviceName);
}
// 重新创建Service
switch (serviceName) {
case "mysql":
k8sService.createMysqlService(namespace);
}
if (serviceName.equals("redis")) {
break;
case "redis":
k8sService.createRedisService(namespace);
}
if (serviceName.equals("mongodb")) {
break;
case "mongodb":
k8sService.createMongodbService(namespace);
}
if (serviceName.equals("zookeeper")) {
break;
case "zookeeper":
k8sService.createZookeeperService(namespace);
}
if (serviceName.equals("rabbitmq")) {
break;
case "rabbitmq":
k8sService.createRabbitmqService(namespace);
}
break;
default:
break;
}
// Pvc
// Pvc不存在则创建,已存在无需重新创建
if (!k8sService.queryIfPvcExistByName(namespace, serviceName)) {
if (serviceName.equals("mysql")) {
k8sService.createMysqlPvc(namespace);
}
// redis不需要pvc
// if (serviceName.equals("redis")) {
// tkeService.createRedisPvc(namespace);
// }
if (serviceName.equals("mongodb")) {
k8sService.createMongodbPvc(namespace);
}
if (serviceName.equals("zookeeper")) {
k8sService.createZookeeperPvc(namespace);
}
if (serviceName.equals("rabbitmq")) {
k8sService.createRabbitmqPvc(namespace);
switch (serviceName) {
case "mysql":
k8sService.createMysqlPvc(namespace);
break;
case "mongodb":
k8sService.createMongodbPvc(namespace);
break;
case "zookeeper":
k8sService.createZookeeperPvc(namespace);
break;
case "rabbitmq":
k8sService.createRabbitmqPvc(namespace);
break;
default:
break;
}
}
// deployment
if (!k8sService.queryIfDeploymentExistByName(namespace, serviceName)) {
if (serviceName.equals("mysql")) {
// 创建Deployment
switch (serviceName) {
case "mysql":
k8sService.createMysqlDeployment(namespace, image);
}
if (serviceName.equals("redis")) {
break;
case "redis":
k8sService.createRedisDeployment(namespace, image);
}
if (serviceName.equals("mongodb")) {
break;
case "mongodb":
k8sService.createMongoDbDeployment(namespace, image);
}
if (serviceName.equals("zookeeper")) {
break;
case "zookeeper":
k8sService.createZookeeperDeployment(namespace, image);
}
if (serviceName.equals("rabbitmq")) {
break;
case "rabbitmq":
k8sService.createRabbitmqDeployment(namespace, image);
}
break;
default:
break;
}
} else if (label.equals("java")) {
DockerProject dockerProject = dockerProjectService.getOne(queryWrapper);
if (!k8sService.queryIfServiceExistByName(namespace, serviceName)) {
k8sService.createJavaService(namespace, serviceName, serviceCreateVo.getDebug());
}
if (!k8sService.queryIfDeploymentExistByName(namespace, serviceName)) {
k8sService.createJavaDeployment(serviceCreateVo, dockerProject);
// 直接创建Java Deployment
k8sService.createJavaDeployment(serviceCreateVo, dockerProject);
// 如果存在Service,则首先删除,再创建新的
if (k8sService.queryIfServiceExistByName(namespace, serviceName)) {
k8sService.deleteService(namespace, serviceName);
}
if (!k8sService.queryIfIngressExistByName(namespace, serviceName)) {
k8sService.createIngress(namespace, serviceName, serviceCreateVo.getDomain());
k8sService.createJavaService(namespace, serviceName, serviceCreateVo.getDebug());
// 如果存在Ingress,则首先删除Ingress,再创建新的
if (k8sService.queryIfIngressExistByName(namespace, serviceName)) {
k8sService.deleteIngress(namespace, serviceName);
}
k8sService.createIngress(namespace, serviceName, serviceCreateVo.getDomain());
} else if (label.equals("ui") || label.equals("node")) {
DockerProject dockerProject = dockerProjectService.getOne(queryWrapper);
if (!k8sService.queryIfServiceExistByName(namespace, serviceName)) {
k8sService.createUIAndNodeService(namespace, serviceName, type, label);
}
if (!k8sService.queryIfDeploymentExistByName(namespace, serviceName)) {
k8sService.createUIAndNodeDeployment(serviceCreateVo, dockerProject);
// 如果存在Service,则首先删除,再创建新的
if (k8sService.queryIfServiceExistByName(namespace, serviceName)) {
k8sService.deleteService(namespace, serviceName);
}
k8sService.createUIAndNodeService(namespace, serviceName, type, label);
// 如果存在Ingress,则首先删除Ingress,再创建新的
if (!k8sService.queryIfIngressExistByName(namespace, serviceName)) {
k8sService.createIngress(namespace, serviceName, serviceCreateVo.getDomain());
k8sService.deleteIngress(namespace, serviceName);
}
k8sService.createIngress(namespace, serviceName, serviceCreateVo.getDomain());
k8sService.createUIAndNodeDeployment(serviceCreateVo, dockerProject);
} else {
return JsonResult.buildErrorStateResult("暂不支持!", false);
return JsonResult.buildErrorStateResult("服务类型暂不支持!", false);
}
return JsonResult.buildSuccessResult("pod创建成功!");
} catch (Exception e) {
......@@ -226,37 +249,30 @@ public class K8sController {
}
k8sService.createJavaDeployment(serviceCreateVo, dockerProject);
// 创建Service
if (k8sService.queryIfServiceExistByName(namespace, serviceName)) {
k8sService.deleteService(namespace, serviceName);
// 如果不存在Service,则重新创建Service
if (!k8sService.queryIfServiceExistByName(namespace, serviceName)) {
k8sService.createJavaService(namespace, serviceName, serviceCreateVo.getDebug());
}
k8sService.createJavaService(namespace, serviceName, serviceCreateVo.getDebug());
// 创建Ingress
if (k8sService.queryIfIngressExistByName(namespace, serviceName)) {
k8sService.deleteIngress(namespace, serviceName);
// 如果不存在ingress则创建ingress
if (!k8sService.queryIfIngressExistByName(namespace, serviceName)) {
k8sService.createIngress(namespace, serviceName, serviceCreateVo.getDomain());
}
k8sService.createIngress(namespace, serviceName, serviceCreateVo.getDomain());
} else if (label.equals("ui") || label.equals("node")) {
// UI
DockerProject dockerProject = dockerProjectService.getOne(queryWrapper);
// 创建Deployment
if (k8sService.queryIfDeploymentExistByName(namespace, serviceName)) {
k8sService.deleteDeployment(namespace, serviceName);
}
k8sService.createUIAndNodeDeployment(serviceCreateVo, dockerProject);
// 创建Service
if (k8sService.queryIfServiceExistByName(namespace, serviceName)) {
k8sService.deleteService(namespace, serviceName);
// 如果不存在Service,则重新创建Service
if (!k8sService.queryIfServiceExistByName(namespace, serviceName)) {
k8sService.createUIAndNodeService(namespace, serviceName, type, label);
}
k8sService.createUIAndNodeService(namespace, serviceName, type, label);
// 创建Ingress
if (k8sService.queryIfIngressExistByName(namespace, serviceName)) {
k8sService.deleteIngress(namespace, serviceName);
// 如果不存在ingress则创建ingress
if (!k8sService.queryIfIngressExistByName(namespace, serviceName)) {
k8sService.createIngress(namespace, serviceName, serviceCreateVo.getDomain());
}
k8sService.createIngress(namespace, serviceName, serviceCreateVo.getDomain());
} else {
return JsonResult.buildErrorStateResult("暂不支持!", false);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment