Commit 68a79e99 authored by 黎博's avatar 黎博

merge master

parents d8332a69 a283706a
......@@ -29,10 +29,10 @@ public class DockerProjectController {
* @return
*/
@GetMapping("/list")
public JsonResult getDockerProjectList(String projectName, String projectType, Integer isActive,
public JsonResult getDockerProjectList(String projectName, String projectType, Integer isActive, String hostName,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize) {
IPage projectIPage = dockerProjectService.getDockerProjectList(projectName, projectType, isActive, pageNum, pageSize);
IPage projectIPage = dockerProjectService.getDockerProjectList(projectName, projectType, isActive, hostName, pageNum, pageSize);
Map<String, Object> map = new HashMap<>();
map.put("total", projectIPage.getTotal());
map.put("list", projectIPage.getRecords());
......
......@@ -10,7 +10,9 @@ import cn.qg.holmes.service.auth.TokenService;
import cn.qg.holmes.service.k8s.*;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jayway.jsonpath.JsonPath;
import com.tencentcloudapi.tcr.v20190924.models.RepoInfo;
import io.fabric8.kubernetes.api.model.ServicePort;
import com.tencentcloudapi.tcr.v20190924.models.TagInfo;
import com.tencentcloudapi.tcr.v20190924.models.TagInfoResp;
import io.fabric8.kubernetes.api.model.Namespace;
......@@ -180,15 +182,15 @@ public class K8sController {
}
} else if (label.equals("java")) {
DockerProject dockerProject = dockerProjectService.getOne(queryWrapper);
// 直接创建Java Deployment
k8sService.createJavaDeployment(serviceCreateVo, dockerProject);
// 如果存在Service,则首先删除,再创建新的
if (k8sService.queryIfServiceExistByName(namespace, serviceName)) {
k8sService.deleteService(namespace, serviceName);
}
k8sService.createJavaService(namespace, serviceName, serviceCreateVo.getDebug());
// 直接创建Java Deployment
k8sService.createJavaDeployment(serviceCreateVo, dockerProject);
// 如果存在Ingress,则首先删除Ingress,再创建新的
if (k8sService.queryIfIngressExistByName(namespace, serviceName)) {
k8sService.deleteIngress(namespace, serviceName);
......@@ -257,6 +259,12 @@ public class K8sController {
if (label.equals("java")) {
// JAVA
DockerProject dockerProject = dockerProjectService.getOne(queryWrapper);
// 如果不存在Service,则重新创建Service
if (!k8sService.queryIfServiceExistByName(namespace, serviceName)) {
k8sService.createJavaService(namespace, serviceName, serviceCreateVo.getDebug());
}
// 创建Deployment
if (k8sService.queryIfDeploymentExistByName(namespace, serviceName)) {
log.info("{}环境{}服务的Deployment已存在,首先删除该Deployment.", namespace, serviceName);
......@@ -264,11 +272,6 @@ public class K8sController {
}
k8sService.createJavaDeployment(serviceCreateVo, dockerProject);
// 如果不存在Service,则重新创建Service
if (!k8sService.queryIfServiceExistByName(namespace, serviceName)) {
k8sService.createJavaService(namespace, serviceName, serviceCreateVo.getDebug());
}
// 如果不存在ingress则创建ingress
if (!k8sService.queryIfIngressExistByName(namespace, serviceName)) {
k8sService.createIngress(namespace, serviceName, serviceCreateVo.getDomain());
......@@ -276,6 +279,12 @@ public class K8sController {
} else if (label.equals("ui") || label.equals("node")) {
// UI
DockerProject dockerProject = dockerProjectService.getOne(queryWrapper);
// 如果不存在Service,则重新创建Service
if (!k8sService.queryIfServiceExistByName(namespace, serviceName)) {
k8sService.createUIAndNodeService(namespace, serviceName, type, label);
}
// 创建Deployment
if (k8sService.queryIfDeploymentExistByName(namespace, serviceName)) {
log.info("{}环境{}服务的Deployment已存在,首先删除该Deployment.", namespace, serviceName);
......@@ -283,11 +292,6 @@ public class K8sController {
}
k8sService.createUIAndNodeDeployment(serviceCreateVo, dockerProject);
// 如果不存在Service,则重新创建Service
if (!k8sService.queryIfServiceExistByName(namespace, serviceName)) {
k8sService.createUIAndNodeService(namespace, serviceName, type, label);
}
// 如果不存在ingress则创建ingress
if (!k8sService.queryIfIngressExistByName(namespace, serviceName)) {
k8sService.createIngress(namespace, serviceName, serviceCreateVo.getDomain());
......@@ -315,6 +319,7 @@ public class K8sController {
.eq("project_name", serviceName)
.eq("project_type", type);
DockerProject dockerProject = dockerProjectService.getOne(dockerProjectQueryWrapper);
// 先删除原有pod
if (!k8sService.deleteDeployment(namespace, serviceName)) {
return JsonResult.buildErrorStateResult("更新服务失败!", false);
......@@ -327,13 +332,13 @@ public class K8sController {
}
// 类型为Java
if (label.equals("java")) {
deployment = k8sService.createJavaDeployment(serviceCreateVo, dockerProject);
k8sService.createJavaService(namespace, serviceName, serviceCreateVo.getDebug());
deployment = k8sService.createJavaDeployment(serviceCreateVo, dockerProject);
}
// 类型为UI或Node
if (label.equals("ui") || label.equals("node")) {
deployment = k8sService.createUIAndNodeDeployment(serviceCreateVo, dockerProject);
k8sService.createUIAndNodeService(namespace, serviceName, type, label);
deployment = k8sService.createUIAndNodeDeployment(serviceCreateVo, dockerProject);
}
// 删除原有Ingress
if (k8sService.queryIfIngressExistByName(namespace, serviceName)) {
......@@ -613,4 +618,42 @@ public class K8sController {
return JsonResult.buildSuccessResult(resultMapList);
}
/**
* 给打包用的,获取dubbo接口
* @param namespace 环境
* @param serviceType 服务类型
* @param serviceName 服务名称
* @param key port_20880
* @return
*/
@GetMapping("/dubbo/port")
public String getDubboPort(@RequestParam String namespace,
@RequestParam String serviceType,
@RequestParam String serviceName,
@RequestParam String key) {
log.info("获取dubbo接口收到参数:{}, {}, {}, {}", namespace, serviceType, serviceName, key);
List<ServicePort> servicePortList = k8sService.getServiceDetail(namespace, serviceName).getSpec().getPorts();
Map<String, Object> serviceMap = new HashMap<>();
List<Map<String, Object>> portMappingList = new ArrayList<>();
if (servicePortList.size() > 0) {
for (ServicePort servicePort : servicePortList) {
if (servicePort.getNodePort() != null) {
serviceMap.put("port_" + servicePort.getName(), servicePort.getNodePort());
}
Map<String, Object> portMap = new HashMap<>();
portMap.put("name", servicePort.getName());
portMap.put("nodePort", servicePort.getNodePort());
portMap.put("port", servicePort.getPort());
portMap.put("protocol", servicePort.getProtocol());
portMap.put("targetPort", servicePort.getTargetPort());
portMappingList.add(portMap);
}
}
serviceMap.put("portMappings", portMappingList);
serviceMap.put("serviceName", serviceName);
serviceMap.put("namespace", namespace);
log.info("返回结果为:{}", JSON.toJSONString(serviceMap));
return serviceMap.get(key).toString();
}
}
......@@ -6,5 +6,5 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
public interface DockerProjectMapper extends BaseMapper<DockerProject> {
IPage<DockerProject> getDockerProjectList(IPage<DockerProject> page, String projectName, String projectType, Integer isActive);
IPage<DockerProject> getDockerProjectList(IPage<DockerProject> page, String projectName, String projectType, Integer isActive, String hostName);
}
......@@ -5,5 +5,5 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
public interface DockerProjectService extends IService<DockerProject> {
IPage<DockerProject> getDockerProjectList(String projectName, String projectType, Integer isActive, Integer pageNum, Integer pageSize);
IPage<DockerProject> getDockerProjectList(String projectName, String projectType, Integer isActive, String hostName, Integer pageNum, Integer pageSize);
}
......@@ -604,7 +604,7 @@ public class K8sService {
envVar3.setName("CLUSTER");
envVar3.setValue(cluster);
EnvVar envVar4 = new EnvVar();
envVar4.setName("CLUSTER");
envVar4.setName("SYSTEM_NAME");
envVar4.setValue(serviceName);
EnvVar envVar5 = new EnvVar();
envVar5.setName("HOSTS");
......@@ -668,15 +668,15 @@ public class K8sService {
livenessProbe.setExec(execAction);
livenessProbe.setInitialDelaySeconds(200);
livenessProbe.setSuccessThreshold(1);
livenessProbe.setFailureThreshold(5);
livenessProbe.setFailureThreshold(40);
container.setLivenessProbe(livenessProbe);
//readinessProbe
Probe readinessProbe = new Probe();
readinessProbe.setExec(execAction);
readinessProbe.setInitialDelaySeconds(30);
readinessProbe.setInitialDelaySeconds(200);
readinessProbe.setTimeoutSeconds(2);
readinessProbe.setPeriodSeconds(5);
readinessProbe.setPeriodSeconds(40);
container.setReadinessProbe(readinessProbe);
}
......
......@@ -25,8 +25,8 @@ public class DockerProjectServiceImpl extends ServiceImpl<DockerProjectMapper, D
* @return
*/
@Override
public IPage<DockerProject> getDockerProjectList(String projectName, String projectType, Integer isActive, Integer pageNum, Integer pageSize) {
public IPage<DockerProject> getDockerProjectList(String projectName, String projectType, Integer isActive, String hostName, Integer pageNum, Integer pageSize) {
IPage<DockerProject> page = new Page<>(pageNum, pageSize);
return dockerProjectMapper.getDockerProjectList(page, projectName, projectType, isActive);
return dockerProjectMapper.getDockerProjectList(page, projectName, projectType, isActive, hostName);
}
}
......@@ -14,6 +14,9 @@
<if test="isActive != null">
AND `is_active` = #{isActive}
</if>
<if test="hostName != null and hostName !=''">
AND `host_name` like CONCAT('%', #{hostName}, '%')
</if>
ORDER BY `id` DESC
</select>
......
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