Commit e94b6e9b authored by 黎博's avatar 黎博

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

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