|
|
@@ -2,7 +2,10 @@ package seecoder.devcloud.core.pipeline.handler;
|
|
|
|
|
|
import seecoder.devcloud.api.k8s.K8sConstants;
|
|
|
import seecoder.devcloud.api.k8s.ServiceApi;
|
|
|
+import seecoder.devcloud.api.k8s.model.K8sObject;
|
|
|
+import seecoder.devcloud.api.k8s.model.K8sObjectRequest;
|
|
|
import seecoder.devcloud.api.k8s.model.Service;
|
|
|
+import seecoder.devcloud.api.k8s.model.ServicePort;
|
|
|
import seecoder.devcloud.common.util.SpringUtil;
|
|
|
import seecoder.devcloud.core.pipeline.Context;
|
|
|
import seecoder.devcloud.core.pipeline.Handler;
|
|
|
@@ -30,20 +33,32 @@ public class K8sServiceHandler extends AbstractHandler {
|
|
|
@Override
|
|
|
public void process(Context context){
|
|
|
|
|
|
+ //pod内容器暴露的端口
|
|
|
+ int targetPort = Integer.parseInt(context.getConfigs().get("port"));
|
|
|
+ //service对集群内暴露的端口,这里默认与targetPort一致
|
|
|
+ int servicePort = targetPort;
|
|
|
+ context.getConfigs().put("servicePort", String.valueOf(servicePort));
|
|
|
|
|
|
-// Service service = new Service();
|
|
|
-// service.setNamespace(context.getGroupName());
|
|
|
-// service.setName(context.getProjectName()+ K8sConstants.SERVICE_SUFFIX);
|
|
|
-// service.setSelectors(Collections.singletonMap(APPLICATION_LABEL, ));
|
|
|
-// service.setServicePorts(
|
|
|
-// containers
|
|
|
-// .stream()
|
|
|
-// .map(ContainerDTO::getPorts)
|
|
|
-// .flatMap(Collection::stream)
|
|
|
-// .map(PortDTO::toServicePortDTO)
|
|
|
-// .collect(Collectors.toSet())
|
|
|
-// );
|
|
|
- }
|
|
|
+ //配置K8s的service
|
|
|
+ Service service = new Service();
|
|
|
+ service.setNamespace(context.getGroupName());
|
|
|
+ service.setName(context.getProjectName()+ K8sConstants.SERVICE_SUFFIX);
|
|
|
+ //标签选择器选择 此项目对应的deployment的name
|
|
|
+ service.setSelectors(Collections.singletonMap(K8sConstants.APPLICATION_LABEL, context.getProjectName()));
|
|
|
+ service.setServicePorts(
|
|
|
+ Collections.singleton(ServicePort.builder().port(servicePort).targetPort(targetPort).build())
|
|
|
+ );
|
|
|
+
|
|
|
+ K8sObjectRequest request = K8sObjectRequest.builder()
|
|
|
+ .namespace(context.getGroupName())
|
|
|
+ .name(context.getProjectName()+ K8sConstants.DEPLOYMENT_SUFFIX)
|
|
|
+ .build();
|
|
|
+ if (serviceApi.getByCondition(request).size()==0){
|
|
|
+ serviceApi.create(service);
|
|
|
+ } else {
|
|
|
+ serviceApi.update(service);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
+ }
|
|
|
}
|