1
0
370774330@qq.com 5 лет назад
Родитель
Сommit
b0f9be019b

+ 0 - 15
core/src/main/java/seecoder/devcloud/core/pipeline/TestHandler.java

@@ -1,15 +0,0 @@
-package seecoder.devcloud.core.pipeline;
-
-/**
- * @author PuHong Weng
- * @date 2021/1/18
- * @description:
- */
-public class TestHandler implements Handler<String,String> {
-
-    @Override
-    public String process(String input) {
-        System.out.println("test");
-        return input.substring(1);
-    }
-}

+ 1 - 1
core/src/main/java/seecoder/devcloud/core/pipeline/handler/K8sNamespaceHandler.java

@@ -16,7 +16,7 @@ import javax.swing.*;
 /**
  * @author PuHong Weng
  * @date 2021/2/2
- * @description: 创建k8sNamespace。以小组名称为单位创建。
+ * @description: 创建k8sNamespace。这里以小组名称为单位创建。
  */
 @Slf4j
 public class K8sNamespaceHandler extends AbstractHandler {

+ 28 - 13
core/src/main/java/seecoder/devcloud/core/pipeline/handler/K8sServiceHandler.java

@@ -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);
+         }
 
 
+    }
 }

+ 45 - 0
core/src/main/resources/application-local.yml

@@ -0,0 +1,45 @@
+# 用于core包的本地测试,连的是本地搭的minikube
+seecoder:
+  secret: 1qaz2wsx
+  auth:
+    signingKey: SEEC-1919810-OIDC-114514
+    iss: p.seecoder.cn
+    aud: seec-seec
+    portal: http://p.seecoder.cn/api/interaction
+    redirectUri: http://seec.seecoder.cn/api/auth/receive
+  gitlab:
+    host: http://gitlab.seec.seecoder.cn
+    git-proxy: http://gitlab.seec.seecoder.cn
+    webHookProxy: http://localhost:3000
+    username: root
+    token: x7Hwx-zq8LFkHznGku9a
+  jenkins:
+    host: http://192.168.68.79:8082
+    username: root
+    token: 11d7b9e4c1acac481904c25813e2ec1f0a
+    baseImage: 172.19.51.9:18082/build-base
+  docker:
+    registry: 192.168.68.79:18082
+  mail:
+    from: seecoder@163.com
+  storage:
+    type: local
+    properties:
+      location: ./problem
+  k8s:
+    api-server: https://192.168.99.101:8443
+    token: "eyJhbGciOiJSUzI1NiIsImtpZCI6IkM0R1hBTlZ3UjU1eVlKemNocUxBMUtxcUEwaWR3NW9Tb0pzYjA3RktTcjAifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImRlZmF1bHQtdG9rZW4tZHo5bHYiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGVmYXVsdCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjE5NTg0N2NhLTlhYjEtNGQ0Yi05Yjk3LTFhYmQ0MmFlMTQwYyIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpkZWZhdWx0OmRlZmF1bHQifQ.bEBgxEKWiATzkFu3gb2pljEHYcg5SZXd3fEH9RREbUGCzMQ7T2mibJ-MEMXnUJbEmft7L2OobUs1w_qPe2DSKgBbW97R6XYsillDhsORoDEhHbT-LIn2uK8hKa-1BYMoZ8g3Eo0FR2Ltkod5OrLEhldlkTMcylF_wtg64LlNHfG8MbGHFOZyjhHJRlMeZRrVDg9_c2KBHb_t42tD4NeaUcVrV8t3rA6qT69H8SvNCD4tioE1Pe3jJ840ZDXiJSzo7Qqk9zfyzkGsxC8ND6tc8UbaTt3tZqU9_TmDcptWGlE5wf1cu-F56PmotaQjOwTF1q4_XeY5Vbg_pVknR8-d7Q"
+    ingress-host: seecii.cn
+    public-namespace: dev
+    public-mysql-url: jdbc:mysql://seecii-mysql.dev.svc.cluster.local:3306
+    public-mysql-pod: seecii-mysql-579dc7c857-8m2fd
+    public-mysql-username: root
+    public-mysql-password: NJU67software
+    debugging: false
+  registry:
+    host: 192.168.68.79:18082
+    username: admin
+    password: admin123
+    nexus-server: 192.168.68.79:18081
+    repo-name: sec-repo
+    clean-up-task: 83bb8249-71e8-4367

+ 4 - 44
core/src/main/resources/application.yml

@@ -1,44 +1,4 @@
-seecoder:
-  secret: 1qaz2wsx
-  auth:
-    signingKey: SEEC-1919810-OIDC-114514
-    iss: p.seecoder.cn
-    aud: seec-seec
-    portal: http://p.seecoder.cn/api/interaction
-    redirectUri: http://seec.seecoder.cn/api/auth/receive
-  gitlab:
-    host: http://gitlab.seec.seecoder.cn
-    git-proxy: http://gitlab.seec.seecoder.cn
-    webHookProxy: http://localhost:3000
-    username: root
-    token: x7Hwx-zq8LFkHznGku9a
-  jenkins:
-    host: http://192.168.68.79:8082
-    username: root
-    token: 11d7b9e4c1acac481904c25813e2ec1f0a
-    baseImage: 172.19.51.9:18082/build-base
-  docker:
-    registry: 192.168.68.79:18082
-  mail:
-    from: seecoder@163.com
-  storage:
-    type: local
-    properties:
-      location: ./problem
-  k8s:
-    api-server: https://192.168.99.101:8443
-    token: "eyJhbGciOiJSUzI1NiIsImtpZCI6IkM0R1hBTlZ3UjU1eVlKemNocUxBMUtxcUEwaWR3NW9Tb0pzYjA3RktTcjAifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImRlZmF1bHQtdG9rZW4tZHo5bHYiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGVmYXVsdCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjE5NTg0N2NhLTlhYjEtNGQ0Yi05Yjk3LTFhYmQ0MmFlMTQwYyIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpkZWZhdWx0OmRlZmF1bHQifQ.bEBgxEKWiATzkFu3gb2pljEHYcg5SZXd3fEH9RREbUGCzMQ7T2mibJ-MEMXnUJbEmft7L2OobUs1w_qPe2DSKgBbW97R6XYsillDhsORoDEhHbT-LIn2uK8hKa-1BYMoZ8g3Eo0FR2Ltkod5OrLEhldlkTMcylF_wtg64LlNHfG8MbGHFOZyjhHJRlMeZRrVDg9_c2KBHb_t42tD4NeaUcVrV8t3rA6qT69H8SvNCD4tioE1Pe3jJ840ZDXiJSzo7Qqk9zfyzkGsxC8ND6tc8UbaTt3tZqU9_TmDcptWGlE5wf1cu-F56PmotaQjOwTF1q4_XeY5Vbg_pVknR8-d7Q"
-    ingress-host: seecii.cn
-    public-namespace: dev
-    public-mysql-url: jdbc:mysql://seecii-mysql.dev.svc.cluster.local:3306
-    public-mysql-pod: seecii-mysql-579dc7c857-8m2fd
-    public-mysql-username: root
-    public-mysql-password: NJU67software
-    debugging: false
-  registry:
-    host: 192.168.68.79:18082
-    username: admin
-    password: admin123
-    nexus-server: 192.168.68.79:18081
-    repo-name: sec-repo
-    clean-up-task: 83bb8249-71e8-4367
+spring:
+  profiles:
+    active: local
+

+ 0 - 1
core/src/test/java/seecoder/devcloud/core/CoreApplicationTests.java

@@ -9,7 +9,6 @@ import seecoder.devcloud.api.ApplicationProperties;
 import seecoder.devcloud.api.k8s.DeploymentApi;
 import seecoder.devcloud.core.pipeline.handler.K8sDeploymentHandler;
 import seecoder.devcloud.core.pipeline.Pipeline;
-import seecoder.devcloud.core.pipeline.TestHandler;
 
 @RunWith(SpringRunner.class)
 @SpringBootTest

+ 6 - 2
web/src/main/java/seecoder/devcloud/web/DevcloudWebApplication.java

@@ -1,10 +1,13 @@
 package seecoder.devcloud.web;
 
 import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.scheduling.annotation.EnableScheduling;
+import seecoder.devcloud.web.vo.Response;
 
 import java.time.ZoneId;
 import java.util.TimeZone;
@@ -12,13 +15,14 @@ import java.util.TimeZone;
 
 @EnableScheduling
 @EnableAsync
-@SpringBootApplication
-@ComponentScan({"seecoder.devcloud.api","seecoder.devcloud.common"})
+@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
+@ComponentScan({"seecoder.devcloud.web","seecoder.devcloud.api","seecoder.devcloud.common"})
 public class DevcloudWebApplication {
 
     public static void main(String[] args) {
         // 强制写入默认时区
         TimeZone.setDefault(TimeZone.getTimeZone(ZoneId.of("GMT+8")));
         SpringApplication.run(DevcloudWebApplication.class, args);
+
     }
 }

+ 6 - 6
web/src/main/resources/application-dev.yml

@@ -1,11 +1,11 @@
 spring:
 
-  datasource:
-    # url: jdbc:mysql://192.168.68.76:13306/seecoder_ii?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false
-    url: jdbc:mysql://localhost:3306/seecoder?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false
-#    url: jdbc:mysql://218.94.159.108:13306/seec_ii?useUnicode=true&characterEncoding=UTF-8&useSSL=false
-    username: root
-    password: 123456
+#  datasource:
+#    # url: jdbc:mysql://192.168.68.76:13306/seecoder_ii?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false
+#    url: jdbc:mysql://localhost:3306/seecoder?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false
+##    url: jdbc:mysql://218.94.159.108:13306/seec_ii?useUnicode=true&characterEncoding=UTF-8&useSSL=false
+#    username: root
+#    password: 123456
   jpa:
     hibernate:
       ddl-auto: update