Commit dc23d4df authored by 黎博's avatar 黎博

新增/k8s/service/modify接口

parent 41d9f868
...@@ -196,16 +196,62 @@ public class K8sController { ...@@ -196,16 +196,62 @@ public class K8sController {
} }
/** /**
* 废弃 * jenkins打包部署镜像接口
* 修改pod * @param serviceCreateVo
* @param namespace 环境
* @param serviceName 服务名
* @param image 镜像名
* @return * @return
*/ */
@PostMapping("/service/modify") @PostMapping("/service/modify")
public JsonResult modifyPod(String namespace, String serviceName, String image) { public JsonResult modifyPod(@RequestBody ServiceCreateVo serviceCreateVo) {
return JsonResult.buildSuccessResult(k8sService.updateDeployment(namespace, serviceName, image)); String serviceName = serviceCreateVo.getServiceName();
String type = serviceCreateVo.getType();
String label = serviceCreateVo.getLabel();
String namespace = serviceCreateVo.getNamespace();
QueryWrapper<DockerProject> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("project_name", serviceName);
if (label.equals("java")) {
// JAVA
DockerProject dockerProject = dockerProjectService.getOne(queryWrapper);
// 创建Service
if (k8sService.queryIfServiceExistByName(namespace, serviceName)) {
k8sService.deleteService(namespace, serviceName);
}
k8sService.createJavaService(namespace, serviceName, serviceCreateVo.getDebug());
// 创建Deployment
if (k8sService.queryIfDeploymentExistByName(namespace, serviceName)) {
k8sService.deleteDeployment(namespace, serviceName);
}
k8sService.createJavaDeployment(serviceCreateVo, dockerProject);
// 创建Ingress
if (k8sService.queryIfIngressExistByName(namespace, serviceName)) {
k8sService.deleteIngress(namespace, serviceName);
}
k8sService.createIngress(namespace, serviceName, serviceCreateVo.getDomain());
} else if (label.equals("ui") || label.equals("node")) {
// UI
DockerProject dockerProject = dockerProjectService.getOne(queryWrapper);
// 创建Service
if (k8sService.queryIfServiceExistByName(namespace, serviceName)) {
k8sService.deleteService(namespace, serviceName);
}
k8sService.createUIAndNodeService(namespace, serviceName, type, label);
// 创建Deployment
if (k8sService.queryIfDeploymentExistByName(namespace, serviceName)) {
k8sService.deleteDeployment(namespace, serviceName);
}
k8sService.createUIAndNodeDeployment(serviceCreateVo, dockerProject);
// 创建Ingress
if (k8sService.queryIfIngressExistByName(namespace, serviceName)) {
k8sService.deleteIngress(namespace, serviceName);
}
k8sService.createIngress(namespace, serviceName, serviceCreateVo.getDomain());
} else {
return JsonResult.buildErrorStateResult("暂不支持!", false);
}
return JsonResult.buildSuccessResult("镜像部署成功");
} }
/** /**
......
...@@ -2197,6 +2197,26 @@ public class K8sService { ...@@ -2197,6 +2197,26 @@ public class K8sService {
return kubernetesClient.namespaces().create(namespace); return kubernetesClient.namespaces().create(namespace);
} }
/**
* 删除ingress
* @param namespace 环境
* @param serviceName 服务名
* @return
*/
public boolean deleteIngress(String namespace, String serviceName) {
return kubernetesClient.extensions().ingresses().inNamespace(namespace).withName(serviceName).delete();
}
/**
* 删除Service
* @param namespace 环境
* @param serviceName 服务名
* @return
*/
public boolean deleteService(String namespace, String serviceName) {
return kubernetesClient.services().inNamespace(namespace).withName(serviceName).delete();
}
public void podTest() { public void podTest() {
Map<String, String> labels = new HashMap<>(); Map<String, String> labels = new HashMap<>();
labels.put("qcloud-app", "mysql"); labels.put("qcloud-app", "mysql");
......
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