Commit 2ed94e6c authored by 黎博's avatar 黎博

update

parent 5908c9ae
......@@ -140,6 +140,9 @@ public class K8sController {
if (!tkeService.queryIfDeploymentExistByName(namespace, serviceName)) {
tkeService.createJavaDeployment(serviceCreateVo, dockerProject);
}
if (!tkeService.queryIfIngressExistByName(namespace, serviceName)) {
tkeService.createIngress(namespace, serviceName, serviceCreateVo.getDomain());
}
} else if (label.equals("ui") || label.equals("node")) {
DockerProject dockerProject = dockerProjectService.getOne(queryWrapper);
if (!tkeService.queryIfServiceExistByName(namespace, serviceName)) {
......@@ -148,6 +151,9 @@ public class K8sController {
if (!tkeService.queryIfDeploymentExistByName(namespace, serviceName)) {
tkeService.createUIAndNodeDeployment(serviceCreateVo, dockerProject);
}
if (!tkeService.queryIfIngressExistByName(namespace, serviceName)) {
tkeService.createIngress(namespace, serviceName, serviceCreateVo.getDomain());
}
} else {
return JsonResult.buildErrorStateResult("暂不支持!", false);
}
......
......@@ -9,6 +9,7 @@ import io.fabric8.kubernetes.api.model.apps.Deployment;
import io.fabric8.kubernetes.api.model.apps.DeploymentSpec;
import io.fabric8.kubernetes.api.model.apps.DeploymentStatus;
import io.fabric8.kubernetes.api.model.apps.DeploymentStrategy;
import io.fabric8.kubernetes.api.model.extensions.*;
import io.fabric8.kubernetes.client.Config;
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClient;
......@@ -1769,8 +1770,71 @@ public class TkeService {
return kubernetesClient.apps().deployments().inNamespace(namespace).withName(serviceName).createOrReplace(deployment);
}
/**
* 创建Ingress,主要用来配置域名
* @param namespace 环境
* @param serviceName 服务名
* @param domain 域名
*/
public Ingress createIngress(String namespace, String serviceName, String domain) {
Ingress ingress = new Ingress();
ObjectMeta objectMeta = new ObjectMeta();
objectMeta.setName(serviceName);
objectMeta.setNamespace(namespace);
Map<String, String> annotationMap = new HashMap<>();
annotationMap.put("kubernetes.io/ingress.class", "traefik");
objectMeta.setAnnotations(annotationMap);
IngressSpec ingressSpec = new IngressSpec();
List<IngressRule> ingressRuleList = new ArrayList<>();
IngressRule ingressRule = new IngressRule();
HTTPIngressRuleValue httpIngressRuleValue = new HTTPIngressRuleValue();
List<HTTPIngressPath> paths = new ArrayList<>();
HTTPIngressPath ingressPath = new HTTPIngressPath();
ingressPath.setPath("/");
IngressBackend ingressBackend = new IngressBackend();
ingressBackend.setServiceName(serviceName);
IntOrString servicePort = new IntOrString();
if (serviceName.equals("heimdallr")) {
servicePort.setIntVal(5555);
} else {
servicePort.setIntVal(80);
}
ingressBackend.setServicePort(servicePort);
ingressPath.setBackend(ingressBackend);
paths.add(ingressPath);
httpIngressRuleValue.setPaths(paths);
ingressRule.setHttp(httpIngressRuleValue);
ingressRuleList.add(ingressRule);
ingressRule.setHost(domain + "-" + namespace + ".liangkebang.net");
ingressRule.setHttp(httpIngressRuleValue);
ingressRuleList.add(ingressRule);
ingressSpec.setRules(ingressRuleList);
ingress.setApiVersion("extensions/v1beta1");
ingress.setKind("Ingress");
ingress.setMetadata(objectMeta);
ingress.setSpec(ingressSpec);
return kubernetesClient.extensions().ingresses().inNamespace(namespace).create(ingress);
}
/**
* 查询Ingress是否存在
* @param namespace 环境
* @param serviceName 服务名
* @return
*/
public boolean queryIfIngressExistByName(String namespace, String serviceName) {
return kubernetesClient.extensions().ingresses().inNamespace(namespace).withName(serviceName).get() != null;
}
public static void main(String[] args) {
TkeService tkeService = new TkeService();
tkeService.updateDeployment("k8s", "qa-platform", "qa-test/qa-platform:master-20210729112805284");
// TkeService tkeService = new TkeService();
// tkeService.updateDeployment("k8s", "qa-platform", "qa-test/qa-platform:master-20210729112805284");
// tkeService.createIngress("k8s", "qa-platform", "qa-platform");
// System.out.println(tkeService.queryIfIngressExistByName("k8s", "qa-platform"));
// System.out.println(tkeService.queryIfIngressExistByName("namespace", "qa-platform-ui"));
}
}
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