Explorar o código

refactor: merge api module into web

weipengtao hai 3 meses
pai
achega
8269af8d85
Modificáronse 95 ficheiros con 366 adicións e 606 borrados
  1. 0 121
      api/pom.xml
  2. 0 156
      api/src/main/java/cn/seecoder/api/DevcloudApiAutoConfiguration.java
  3. 0 7
      api/src/main/java/cn/seecoder/api/k8s/ConfigMapApi.java
  4. 0 6
      api/src/main/java/cn/seecoder/api/k8s/JobApi.java
  5. 0 6
      api/src/main/java/cn/seecoder/api/k8s/LimitRangeApi.java
  6. 0 8
      api/src/main/java/cn/seecoder/api/k8s/NamespaceApi.java
  7. 0 7
      api/src/main/java/cn/seecoder/api/k8s/PersistentVolumeClaimApi.java
  8. 0 7
      api/src/main/java/cn/seecoder/api/k8s/PodApi.java
  9. 0 8
      api/src/main/java/cn/seecoder/api/k8s/ServiceApi.java
  10. 0 2
      api/src/main/resources/META-INF/spring.factories
  11. 0 2
      api/src/main/resources/application.yml
  12. 0 1
      api/src/main/resources/readme.md
  13. 0 1
      pom.xml
  14. 32 5
      web/pom.xml
  15. 1 1
      web/src/main/java/cn/seecoder/web/core/pipeline/Context.java
  16. 19 19
      web/src/main/java/cn/seecoder/web/core/pipeline/handler/DeployHandler.java
  17. 3 3
      web/src/main/java/cn/seecoder/web/core/pipeline/handler/JavaImageBuildHandler.java
  18. 10 10
      web/src/main/java/cn/seecoder/web/core/pipeline/handler/K8sDeploymentHandler.java
  19. 6 6
      web/src/main/java/cn/seecoder/web/core/pipeline/handler/K8sIngressHandler.java
  20. 13 13
      web/src/main/java/cn/seecoder/web/core/pipeline/handler/K8sJobHandler.java
  21. 5 5
      web/src/main/java/cn/seecoder/web/core/pipeline/handler/K8sNamespaceHandler.java
  22. 6 6
      web/src/main/java/cn/seecoder/web/core/pipeline/handler/K8sServiceHandler.java
  23. 17 17
      web/src/main/java/cn/seecoder/web/core/pipeline/handler/MysqlDeployHandler.java
  24. 3 3
      web/src/main/java/cn/seecoder/web/core/pipeline/handler/NodeImageBuildHandler.java
  25. 3 3
      web/src/main/java/cn/seecoder/web/core/pipeline/handler/SonarJavaImageBuildHandler.java
  26. 12 12
      web/src/main/java/cn/seecoder/web/core/pipeline/inspector/PipelineInspector.java
  27. 1 1
      web/src/main/java/cn/seecoder/web/infra/ApplicationProperties.java
  28. 16 0
      web/src/main/java/cn/seecoder/web/infra/DevcloudInfraConfiguration.java
  29. 1 1
      web/src/main/java/cn/seecoder/web/infra/docker/DockerApi.java
  30. 3 3
      web/src/main/java/cn/seecoder/web/infra/docker/impl/DockerApiImpl.java
  31. 1 1
      web/src/main/java/cn/seecoder/web/infra/git/GitApi.java
  32. 3 3
      web/src/main/java/cn/seecoder/web/infra/git/impl/GitApiImpl.java
  33. 3 3
      web/src/main/java/cn/seecoder/web/infra/k8s/AbstractApi.java
  34. 7 0
      web/src/main/java/cn/seecoder/web/infra/k8s/ConfigMapApi.java
  35. 4 4
      web/src/main/java/cn/seecoder/web/infra/k8s/DeploymentApi.java
  36. 2 2
      web/src/main/java/cn/seecoder/web/infra/k8s/ExecApi.java
  37. 2 2
      web/src/main/java/cn/seecoder/web/infra/k8s/IngressApi.java
  38. 6 0
      web/src/main/java/cn/seecoder/web/infra/k8s/JobApi.java
  39. 2 2
      web/src/main/java/cn/seecoder/web/infra/k8s/K8sApiConfiguration.java
  40. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/K8sConstants.java
  41. 6 0
      web/src/main/java/cn/seecoder/web/infra/k8s/LimitRangeApi.java
  42. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/LogApi.java
  43. 8 0
      web/src/main/java/cn/seecoder/web/infra/k8s/NamespaceApi.java
  44. 7 0
      web/src/main/java/cn/seecoder/web/infra/k8s/PersistentVolumeClaimApi.java
  45. 7 0
      web/src/main/java/cn/seecoder/web/infra/k8s/PodApi.java
  46. 3 3
      web/src/main/java/cn/seecoder/web/infra/k8s/SecretApi.java
  47. 8 0
      web/src/main/java/cn/seecoder/web/infra/k8s/ServiceApi.java
  48. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/WatchApi.java
  49. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/exception/K8sApiException.java
  50. 10 10
      web/src/main/java/cn/seecoder/web/infra/k8s/impl/ConfigMapApiImpl.java
  51. 12 12
      web/src/main/java/cn/seecoder/web/infra/k8s/impl/DeploymentApiImpl.java
  52. 3 3
      web/src/main/java/cn/seecoder/web/infra/k8s/impl/ExecApiImpl.java
  53. 11 11
      web/src/main/java/cn/seecoder/web/infra/k8s/impl/IngressApiImpl.java
  54. 11 11
      web/src/main/java/cn/seecoder/web/infra/k8s/impl/JobApiImpl.java
  55. 11 11
      web/src/main/java/cn/seecoder/web/infra/k8s/impl/LimitRangeApiImpl.java
  56. 4 4
      web/src/main/java/cn/seecoder/web/infra/k8s/impl/LogApiImpl.java
  57. 7 7
      web/src/main/java/cn/seecoder/web/infra/k8s/impl/NamespaceApiImpl.java
  58. 12 12
      web/src/main/java/cn/seecoder/web/infra/k8s/impl/PersistentVolumeClaimImpl.java
  59. 10 10
      web/src/main/java/cn/seecoder/web/infra/k8s/impl/PodApiImpl.java
  60. 6 6
      web/src/main/java/cn/seecoder/web/infra/k8s/impl/SecretApiImpl.java
  61. 11 11
      web/src/main/java/cn/seecoder/web/infra/k8s/impl/ServiceApiImpl.java
  62. 3 3
      web/src/main/java/cn/seecoder/web/infra/k8s/impl/WatchApiImpl.java
  63. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/ConfigMap.java
  64. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/Container.java
  65. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/ContainerPort.java
  66. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/CpuQuantity.java
  67. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/Deployment.java
  68. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/DeploymentStatus.java
  69. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/HttpGetAction.java
  70. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/Ingress.java
  71. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/Job.java
  72. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/K8sAbstractObject.java
  73. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/K8sObject.java
  74. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/K8sObjectRequest.java
  75. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/K8sObjectTransformer.java
  76. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/LabelSelector.java
  77. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/LimitRange.java
  78. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/Namespace.java
  79. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/PersistentVolumeClaim.java
  80. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/Pod.java
  81. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/PodStatus.java
  82. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/Service.java
  83. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/model/ServicePort.java
  84. 1 1
      web/src/main/java/cn/seecoder/web/infra/k8s/util/SecretTypeEnum.java
  85. 2 2
      web/src/main/java/cn/seecoder/web/infra/k8s/vo/SecretVO.java
  86. 1 1
      web/src/main/java/cn/seecoder/web/service/commit/impl/CommitQualityServiceImpl.java
  87. 1 1
      web/src/main/java/cn/seecoder/web/service/fork/impl/ForkServiceImpl.java
  88. 2 2
      web/src/main/java/cn/seecoder/web/service/pipeline/impl/DeploymentServiceImpl.java
  89. 1 1
      web/src/main/java/cn/seecoder/web/service/project/impl/ProjectServiceImpl.java
  90. 1 1
      web/src/main/java/cn/seecoder/web/service/user/impl/MailServiceImpl.java
  91. 0 0
      web/src/main/resources/ca.pem
  92. 0 0
      web/src/main/resources/cert.pem
  93. 0 0
      web/src/main/resources/docker-config.json
  94. 0 0
      web/src/main/resources/key.pem
  95. 1 1
      web/src/test/java/cn/seecoder/web/service/user/UserServiceTest.java

+ 0 - 121
api/pom.xml

@@ -1,121 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>seecoder-devcloud-api</artifactId>
-    <version>0.1.0</version>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>8</source>
-                    <target>8</target>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-    <packaging>jar</packaging>
-    <description>Demo project for Spring Boot</description>
-
-    <properties>
-        <java.version>1.8</java.version>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
-    </properties>
-
-    <parent>
-        <artifactId>seecoder-devcloud-parent</artifactId>
-        <groupId>cn.seecoder</groupId>
-        <version>0.1.0</version>
-    </parent>
-
-
-    <dependencies>
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-            <version>${lombok.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.nju.edu</groupId>
-            <artifactId>seecoder-gitlab-client</artifactId>
-        </dependency>
-        <!-- https://mvnrepository.com/artifact/org.eclipse.jgit/org.eclipse.jgit -->
-        <dependency>
-            <groupId>org.eclipse.jgit</groupId>
-            <artifactId>org.eclipse.jgit</artifactId>
-            <version>5.9.0.202009080501-r</version>
-        </dependency>
-        <!-- Api Dependencies -->
-        <!-- use guava-20.0 to solve the dependency conflict between jenkins-client and docker-client -->
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-            <version>20.0</version>
-        </dependency>
-        <dependency>
-            <groupId>com.spotify</groupId>
-            <artifactId>docker-client</artifactId>
-            <version>8.16.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-configuration-processor</artifactId>
-            <optional>true</optional>
-        </dependency>
-        <!-- Hibernate Dependencies -->
-        <dependency>
-            <groupId>org.hibernate.validator</groupId>
-            <artifactId>hibernate-validator</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>javax.validation</groupId>
-            <artifactId>validation-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>cn.seecoder</groupId>
-            <artifactId>seecoder-devcloud-common</artifactId>
-            <version>0.1.0</version>
-        </dependency>
-        <!-- https://mvnrepository.com/artifact/io.kubernetes/client-java -->
-        <dependency>
-            <groupId>io.kubernetes</groupId>
-            <artifactId>client-java</artifactId>
-            <version>10.0.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-data-jpa</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.junit.vintage</groupId>
-                    <artifactId>junit-vintage-engine</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-    </dependencies>
-
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-dependencies</artifactId>
-                <version>${spring-boot.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-</project>

+ 0 - 156
api/src/main/java/cn/seecoder/api/DevcloudApiAutoConfiguration.java

@@ -1,156 +0,0 @@
-package cn.seecoder.api;
-
-import cn.seecoder.api.docker.DockerApi;
-import cn.seecoder.api.docker.impl.DockerApiImpl;
-import cn.seecoder.api.git.GitApi;
-import cn.seecoder.api.git.impl.GitApiImpl;
-import cn.seecoder.api.k8s.ConfigMapApi;
-import cn.seecoder.api.k8s.DeploymentApi;
-import cn.seecoder.api.k8s.ExecApi;
-import cn.seecoder.api.k8s.IngressApi;
-import cn.seecoder.api.k8s.JobApi;
-import cn.seecoder.api.k8s.K8sApiConfiguration;
-import cn.seecoder.api.k8s.LimitRangeApi;
-import cn.seecoder.api.k8s.LogApi;
-import cn.seecoder.api.k8s.NamespaceApi;
-import cn.seecoder.api.k8s.PersistentVolumeClaimApi;
-import cn.seecoder.api.k8s.PodApi;
-import cn.seecoder.api.k8s.SecretApi;
-import cn.seecoder.api.k8s.ServiceApi;
-import cn.seecoder.api.k8s.impl.ConfigMapApiImpl;
-import cn.seecoder.api.k8s.impl.DeploymentApiImpl;
-import cn.seecoder.api.k8s.impl.ExecApiImpl;
-import cn.seecoder.api.k8s.impl.IngressApiImpl;
-import cn.seecoder.api.k8s.impl.JobApiImpl;
-import cn.seecoder.api.k8s.impl.LimitRangeApiImpl;
-import cn.seecoder.api.k8s.impl.LogApiImpl;
-import cn.seecoder.api.k8s.impl.NamespaceApiImpl;
-import cn.seecoder.api.k8s.impl.PersistentVolumeClaimImpl;
-import cn.seecoder.api.k8s.impl.PodApiImpl;
-import cn.seecoder.api.k8s.impl.SecretApiImpl;
-import cn.seecoder.api.k8s.impl.ServiceApiImpl;
-import cn.seecoder.api.k8s.impl.WatchApiImpl;
-import com.nju.edu.gitlab.SeecoderGitlabApi;
-import com.nju.edu.gitlab.SeecoderGitlabClient;
-import com.spotify.docker.client.exceptions.DockerCertificateException;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-
-/**
- * @author PuHong Weng
- * @date 2021/3/5
- * @description:
- */
-@Configuration
-public class DevcloudApiAutoConfiguration {
-
-	@Bean
-	public ApplicationProperties applicationProperties() {
-		return new ApplicationProperties();
-	}
-
-	@Bean
-	@ConditionalOnBean(ApplicationProperties.class)
-	public SeecoderGitlabApi seecoderGitlabApi() {
-		return new SeecoderGitlabClient(applicationProperties().getGitlab().getHost(), applicationProperties().getGitlab().getToken());
-	}
-
-	@Bean
-	@ConditionalOnBean(ApplicationProperties.class)
-	public GitApi gitApi() {
-		return new GitApiImpl(applicationProperties());
-	}
-
-	@Bean
-	@ConditionalOnBean(ApplicationProperties.class)
-	public K8sApiConfiguration k8sApiConfiguration() {
-		return new K8sApiConfiguration(applicationProperties());
-	}
-
-	@Bean
-	@ConditionalOnBean(ApplicationProperties.class)
-	public DockerApi dockerApi() throws DockerCertificateException {
-		return new DockerApiImpl(applicationProperties());
-	}
-
-	@Bean
-	@ConditionalOnBean(K8sApiConfiguration.class)
-	public ConfigMapApi configMapApi() {
-		return new ConfigMapApiImpl(k8sApiConfiguration().coreV1Api());
-	}
-
-	@Bean
-	@ConditionalOnBean(K8sApiConfiguration.class)
-	public DeploymentApi deploymentApi() {
-		return new DeploymentApiImpl(k8sApiConfiguration().appsV1Api());
-	}
-
-	@Bean
-	@ConditionalOnBean(K8sApiConfiguration.class)
-	public JobApi jobApi() {
-		return new JobApiImpl(k8sApiConfiguration().batchV1Api());
-	}
-
-	@Bean
-	@ConditionalOnBean(K8sApiConfiguration.class)
-	public ExecApi execApi() {
-		return new ExecApiImpl(k8sApiConfiguration().exec());
-	}
-
-	@Bean
-	@ConditionalOnBean(K8sApiConfiguration.class)
-	public NamespaceApi namespaceApi() {
-		return new NamespaceApiImpl(k8sApiConfiguration().coreV1Api());
-	}
-
-	@Bean
-	@ConditionalOnBean(K8sApiConfiguration.class)
-	public IngressApi ingressApi() {
-		return new IngressApiImpl(k8sApiConfiguration().extensionsV1beta1Api());
-	}
-
-	@Bean
-	@ConditionalOnBean(K8sApiConfiguration.class)
-	public LogApi logApi() {
-		return new LogApiImpl(k8sApiConfiguration().coreV1Api());
-	}
-
-	@Bean
-	@ConditionalOnBean(K8sApiConfiguration.class)
-	public PersistentVolumeClaimApi persistentVolumeClaimApi() {
-		return new PersistentVolumeClaimImpl(k8sApiConfiguration().coreV1Api());
-	}
-
-	@Bean
-	@ConditionalOnBean(K8sApiConfiguration.class)
-	public PodApi podApi() {
-		return new PodApiImpl(k8sApiConfiguration().coreV1Api());
-	}
-
-	@Bean
-	@ConditionalOnBean(K8sApiConfiguration.class)
-	public LimitRangeApi limitRangeApi() {
-		return new LimitRangeApiImpl(k8sApiConfiguration().coreV1Api());
-	}
-
-
-	@Bean
-	@ConditionalOnBean(K8sApiConfiguration.class)
-	public SecretApi secretApi() {
-		return new SecretApiImpl(k8sApiConfiguration().coreV1Api());
-	}
-
-	@Bean
-	@ConditionalOnBean(K8sApiConfiguration.class)
-	public ServiceApi serviceApi() {
-		return new ServiceApiImpl(k8sApiConfiguration().coreV1Api());
-	}
-
-	@Bean
-	@ConditionalOnBean(K8sApiConfiguration.class)
-	public WatchApiImpl watchApi() {
-		return new WatchApiImpl(k8sApiConfiguration().watchApiClient(), k8sApiConfiguration().watchAppsV1Api());
-	}
-}

+ 0 - 7
api/src/main/java/cn/seecoder/api/k8s/ConfigMapApi.java

@@ -1,7 +0,0 @@
-package cn.seecoder.api.k8s;
-
-
-import cn.seecoder.api.k8s.model.ConfigMap;
-
-public interface ConfigMapApi extends AbstractApi<ConfigMap> {
-}

+ 0 - 6
api/src/main/java/cn/seecoder/api/k8s/JobApi.java

@@ -1,6 +0,0 @@
-package cn.seecoder.api.k8s;
-
-import cn.seecoder.api.k8s.model.Job;
-
-public interface JobApi extends AbstractApi<Job> {
-}

+ 0 - 6
api/src/main/java/cn/seecoder/api/k8s/LimitRangeApi.java

@@ -1,6 +0,0 @@
-package cn.seecoder.api.k8s;
-
-import cn.seecoder.api.k8s.model.LimitRange;
-
-public interface LimitRangeApi extends AbstractApi<LimitRange> {
-}

+ 0 - 8
api/src/main/java/cn/seecoder/api/k8s/NamespaceApi.java

@@ -1,8 +0,0 @@
-package cn.seecoder.api.k8s;
-
-
-import cn.seecoder.api.k8s.model.Namespace;
-
-public interface NamespaceApi extends AbstractApi<Namespace> {
-
-}

+ 0 - 7
api/src/main/java/cn/seecoder/api/k8s/PersistentVolumeClaimApi.java

@@ -1,7 +0,0 @@
-package cn.seecoder.api.k8s;
-
-
-import cn.seecoder.api.k8s.model.PersistentVolumeClaim;
-
-public interface PersistentVolumeClaimApi extends AbstractApi<PersistentVolumeClaim> {
-}

+ 0 - 7
api/src/main/java/cn/seecoder/api/k8s/PodApi.java

@@ -1,7 +0,0 @@
-package cn.seecoder.api.k8s;
-
-
-import cn.seecoder.api.k8s.model.Pod;
-
-public interface PodApi extends AbstractApi<Pod> {
-}

+ 0 - 8
api/src/main/java/cn/seecoder/api/k8s/ServiceApi.java

@@ -1,8 +0,0 @@
-package cn.seecoder.api.k8s;
-
-
-import cn.seecoder.api.k8s.model.Service;
-
-public interface ServiceApi extends AbstractApi<Service> {
-
-}

+ 0 - 2
api/src/main/resources/META-INF/spring.factories

@@ -1,2 +0,0 @@
-org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-cn.seecoder.api.DevcloudApiAutoConfiguration

+ 0 - 2
api/src/main/resources/application.yml

@@ -1,2 +0,0 @@
-logging:
-  level: info

+ 0 - 1
api/src/main/resources/readme.md

@@ -1 +0,0 @@
-这个是本地测试连接时用的证书,实际生成环境直接通过 unix:/// 

+ 0 - 1
pom.xml

@@ -11,7 +11,6 @@
     <modules>
         <module>common</module>
         <module>web</module>
-        <module>api</module>
     </modules>
 
     <properties>

+ 32 - 5
web/pom.xml

@@ -60,11 +60,6 @@
             <version>2.5.0</version>
         </dependency>
 
-        <dependency>
-            <groupId>cn.seecoder</groupId>
-            <artifactId>seecoder-devcloud-api</artifactId>
-            <version>0.1.0</version>
-        </dependency>
         <dependency>
             <groupId>cn.seecoder</groupId>
             <artifactId>seecoder-devcloud-common</artifactId>
@@ -124,6 +119,38 @@
             <groupId>com.nju.edu</groupId>
             <artifactId>seecoder-gitlab-client</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.eclipse.jgit</groupId>
+            <artifactId>org.eclipse.jgit</artifactId>
+            <version>5.9.0.202009080501-r</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <version>20.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.spotify</groupId>
+            <artifactId>docker-client</artifactId>
+            <version>8.16.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.hibernate.validator</groupId>
+            <artifactId>hibernate-validator</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>javax.validation</groupId>
+            <artifactId>validation-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-commons</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.kubernetes</groupId>
+            <artifactId>client-java</artifactId>
+            <version>10.0.0</version>
+        </dependency>
     </dependencies>
 
     <dependencyManagement>

+ 1 - 1
web/src/main/java/cn/seecoder/web/core/pipeline/Context.java

@@ -1,6 +1,6 @@
 package cn.seecoder.web.core.pipeline;
 
-import cn.seecoder.api.ApplicationProperties;
+import cn.seecoder.web.infra.ApplicationProperties;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;

+ 19 - 19
web/src/main/java/cn/seecoder/web/core/pipeline/handler/DeployHandler.java

@@ -1,24 +1,24 @@
 package cn.seecoder.web.core.pipeline.handler;
 
-import cn.seecoder.api.ApplicationProperties;
-import cn.seecoder.api.k8s.DeploymentApi;
-import cn.seecoder.api.k8s.IngressApi;
-import cn.seecoder.api.k8s.K8sConstants;
-import cn.seecoder.api.k8s.LimitRangeApi;
-import cn.seecoder.api.k8s.NamespaceApi;
-import cn.seecoder.api.k8s.SecretApi;
-import cn.seecoder.api.k8s.ServiceApi;
-import cn.seecoder.api.k8s.exception.K8sApiException;
-import cn.seecoder.api.k8s.model.Container;
-import cn.seecoder.api.k8s.model.ContainerPort;
-import cn.seecoder.api.k8s.model.Deployment;
-import cn.seecoder.api.k8s.model.Ingress;
-import cn.seecoder.api.k8s.model.K8sObjectRequest;
-import cn.seecoder.api.k8s.model.LimitRange;
-import cn.seecoder.api.k8s.model.Namespace;
-import cn.seecoder.api.k8s.model.Service;
-import cn.seecoder.api.k8s.model.ServicePort;
-import cn.seecoder.api.k8s.vo.SecretVO;
+import cn.seecoder.web.infra.ApplicationProperties;
+import cn.seecoder.web.infra.k8s.DeploymentApi;
+import cn.seecoder.web.infra.k8s.IngressApi;
+import cn.seecoder.web.infra.k8s.K8sConstants;
+import cn.seecoder.web.infra.k8s.LimitRangeApi;
+import cn.seecoder.web.infra.k8s.NamespaceApi;
+import cn.seecoder.web.infra.k8s.SecretApi;
+import cn.seecoder.web.infra.k8s.ServiceApi;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.model.Container;
+import cn.seecoder.web.infra.k8s.model.ContainerPort;
+import cn.seecoder.web.infra.k8s.model.Deployment;
+import cn.seecoder.web.infra.k8s.model.Ingress;
+import cn.seecoder.web.infra.k8s.model.K8sObjectRequest;
+import cn.seecoder.web.infra.k8s.model.LimitRange;
+import cn.seecoder.web.infra.k8s.model.Namespace;
+import cn.seecoder.web.infra.k8s.model.Service;
+import cn.seecoder.web.infra.k8s.model.ServicePort;
+import cn.seecoder.web.infra.k8s.vo.SecretVO;
 import cn.seecoder.common.util.SpringUtil;
 import cn.seecoder.web.core.pipeline.Context;
 import cn.seecoder.web.core.pipeline.PipelineException;

+ 3 - 3
web/src/main/java/cn/seecoder/web/core/pipeline/handler/JavaImageBuildHandler.java

@@ -1,8 +1,8 @@
 package cn.seecoder.web.core.pipeline.handler;
 
-import cn.seecoder.api.ApplicationProperties;
-import cn.seecoder.api.docker.DockerApi;
-import cn.seecoder.api.git.GitApi;
+import cn.seecoder.web.infra.ApplicationProperties;
+import cn.seecoder.web.infra.docker.DockerApi;
+import cn.seecoder.web.infra.git.GitApi;
 import cn.seecoder.common.util.SpringUtil;
 import cn.seecoder.web.core.pipeline.Context;
 import cn.seecoder.web.core.pipeline.PipelineException;

+ 10 - 10
web/src/main/java/cn/seecoder/web/core/pipeline/handler/K8sDeploymentHandler.java

@@ -1,15 +1,15 @@
 package cn.seecoder.web.core.pipeline.handler;
 
-import cn.seecoder.api.ApplicationProperties;
-import cn.seecoder.api.k8s.DeploymentApi;
-import cn.seecoder.api.k8s.K8sConstants;
-import cn.seecoder.api.k8s.SecretApi;
-import cn.seecoder.api.k8s.exception.K8sApiException;
-import cn.seecoder.api.k8s.model.Container;
-import cn.seecoder.api.k8s.model.ContainerPort;
-import cn.seecoder.api.k8s.model.Deployment;
-import cn.seecoder.api.k8s.model.K8sObjectRequest;
-import cn.seecoder.api.k8s.vo.SecretVO;
+import cn.seecoder.web.infra.ApplicationProperties;
+import cn.seecoder.web.infra.k8s.DeploymentApi;
+import cn.seecoder.web.infra.k8s.K8sConstants;
+import cn.seecoder.web.infra.k8s.SecretApi;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.model.Container;
+import cn.seecoder.web.infra.k8s.model.ContainerPort;
+import cn.seecoder.web.infra.k8s.model.Deployment;
+import cn.seecoder.web.infra.k8s.model.K8sObjectRequest;
+import cn.seecoder.web.infra.k8s.vo.SecretVO;
 import cn.seecoder.common.util.SpringUtil;
 import cn.seecoder.web.core.pipeline.Context;
 import cn.seecoder.web.core.pipeline.PipelineException;

+ 6 - 6
web/src/main/java/cn/seecoder/web/core/pipeline/handler/K8sIngressHandler.java

@@ -1,11 +1,11 @@
 package cn.seecoder.web.core.pipeline.handler;
 
-import cn.seecoder.api.ApplicationProperties;
-import cn.seecoder.api.k8s.IngressApi;
-import cn.seecoder.api.k8s.K8sConstants;
-import cn.seecoder.api.k8s.exception.K8sApiException;
-import cn.seecoder.api.k8s.model.Ingress;
-import cn.seecoder.api.k8s.model.K8sObjectRequest;
+import cn.seecoder.web.infra.ApplicationProperties;
+import cn.seecoder.web.infra.k8s.IngressApi;
+import cn.seecoder.web.infra.k8s.K8sConstants;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.model.Ingress;
+import cn.seecoder.web.infra.k8s.model.K8sObjectRequest;
 import cn.seecoder.common.util.SpringUtil;
 import cn.seecoder.web.core.pipeline.Context;
 import cn.seecoder.web.core.pipeline.PipelineException;

+ 13 - 13
web/src/main/java/cn/seecoder/web/core/pipeline/handler/K8sJobHandler.java

@@ -1,19 +1,19 @@
 package cn.seecoder.web.core.pipeline.handler;
 
 
-import cn.seecoder.api.ApplicationProperties;
-import cn.seecoder.api.k8s.JobApi;
-import cn.seecoder.api.k8s.K8sConstants;
-import cn.seecoder.api.k8s.LimitRangeApi;
-import cn.seecoder.api.k8s.NamespaceApi;
-import cn.seecoder.api.k8s.SecretApi;
-import cn.seecoder.api.k8s.exception.K8sApiException;
-import cn.seecoder.api.k8s.model.Container;
-import cn.seecoder.api.k8s.model.Job;
-import cn.seecoder.api.k8s.model.K8sObjectRequest;
-import cn.seecoder.api.k8s.model.LimitRange;
-import cn.seecoder.api.k8s.model.Namespace;
-import cn.seecoder.api.k8s.vo.SecretVO;
+import cn.seecoder.web.infra.ApplicationProperties;
+import cn.seecoder.web.infra.k8s.JobApi;
+import cn.seecoder.web.infra.k8s.K8sConstants;
+import cn.seecoder.web.infra.k8s.LimitRangeApi;
+import cn.seecoder.web.infra.k8s.NamespaceApi;
+import cn.seecoder.web.infra.k8s.SecretApi;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.model.Container;
+import cn.seecoder.web.infra.k8s.model.Job;
+import cn.seecoder.web.infra.k8s.model.K8sObjectRequest;
+import cn.seecoder.web.infra.k8s.model.LimitRange;
+import cn.seecoder.web.infra.k8s.model.Namespace;
+import cn.seecoder.web.infra.k8s.vo.SecretVO;
 import cn.seecoder.common.util.SpringUtil;
 import cn.seecoder.web.core.pipeline.Context;
 import cn.seecoder.web.core.pipeline.PipelineException;

+ 5 - 5
web/src/main/java/cn/seecoder/web/core/pipeline/handler/K8sNamespaceHandler.java

@@ -1,10 +1,10 @@
 package cn.seecoder.web.core.pipeline.handler;
 
-import cn.seecoder.api.k8s.NamespaceApi;
-import cn.seecoder.api.k8s.SecretApi;
-import cn.seecoder.api.k8s.exception.K8sApiException;
-import cn.seecoder.api.k8s.model.K8sObjectRequest;
-import cn.seecoder.api.k8s.model.Namespace;
+import cn.seecoder.web.infra.k8s.NamespaceApi;
+import cn.seecoder.web.infra.k8s.SecretApi;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.model.K8sObjectRequest;
+import cn.seecoder.web.infra.k8s.model.Namespace;
 import cn.seecoder.common.util.SpringUtil;
 import cn.seecoder.web.core.pipeline.Context;
 import cn.seecoder.web.core.pipeline.PipelineException;

+ 6 - 6
web/src/main/java/cn/seecoder/web/core/pipeline/handler/K8sServiceHandler.java

@@ -1,11 +1,11 @@
 package cn.seecoder.web.core.pipeline.handler;
 
-import cn.seecoder.api.k8s.K8sConstants;
-import cn.seecoder.api.k8s.ServiceApi;
-import cn.seecoder.api.k8s.exception.K8sApiException;
-import cn.seecoder.api.k8s.model.K8sObjectRequest;
-import cn.seecoder.api.k8s.model.Service;
-import cn.seecoder.api.k8s.model.ServicePort;
+import cn.seecoder.web.infra.k8s.K8sConstants;
+import cn.seecoder.web.infra.k8s.ServiceApi;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.model.K8sObjectRequest;
+import cn.seecoder.web.infra.k8s.model.Service;
+import cn.seecoder.web.infra.k8s.model.ServicePort;
 import cn.seecoder.common.util.SpringUtil;
 import cn.seecoder.web.core.pipeline.Context;
 import cn.seecoder.web.core.pipeline.PipelineException;

+ 17 - 17
web/src/main/java/cn/seecoder/web/core/pipeline/handler/MysqlDeployHandler.java

@@ -1,23 +1,23 @@
 package cn.seecoder.web.core.pipeline.handler;
 
 
-import cn.seecoder.api.ApplicationProperties;
-import cn.seecoder.api.k8s.DeploymentApi;
-import cn.seecoder.api.k8s.K8sConstants;
-import cn.seecoder.api.k8s.LimitRangeApi;
-import cn.seecoder.api.k8s.NamespaceApi;
-import cn.seecoder.api.k8s.SecretApi;
-import cn.seecoder.api.k8s.ServiceApi;
-import cn.seecoder.api.k8s.exception.K8sApiException;
-import cn.seecoder.api.k8s.model.Container;
-import cn.seecoder.api.k8s.model.ContainerPort;
-import cn.seecoder.api.k8s.model.Deployment;
-import cn.seecoder.api.k8s.model.K8sObjectRequest;
-import cn.seecoder.api.k8s.model.LimitRange;
-import cn.seecoder.api.k8s.model.Namespace;
-import cn.seecoder.api.k8s.model.Service;
-import cn.seecoder.api.k8s.model.ServicePort;
-import cn.seecoder.api.k8s.vo.SecretVO;
+import cn.seecoder.web.infra.ApplicationProperties;
+import cn.seecoder.web.infra.k8s.DeploymentApi;
+import cn.seecoder.web.infra.k8s.K8sConstants;
+import cn.seecoder.web.infra.k8s.LimitRangeApi;
+import cn.seecoder.web.infra.k8s.NamespaceApi;
+import cn.seecoder.web.infra.k8s.SecretApi;
+import cn.seecoder.web.infra.k8s.ServiceApi;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.model.Container;
+import cn.seecoder.web.infra.k8s.model.ContainerPort;
+import cn.seecoder.web.infra.k8s.model.Deployment;
+import cn.seecoder.web.infra.k8s.model.K8sObjectRequest;
+import cn.seecoder.web.infra.k8s.model.LimitRange;
+import cn.seecoder.web.infra.k8s.model.Namespace;
+import cn.seecoder.web.infra.k8s.model.Service;
+import cn.seecoder.web.infra.k8s.model.ServicePort;
+import cn.seecoder.web.infra.k8s.vo.SecretVO;
 import cn.seecoder.common.util.SpringUtil;
 import cn.seecoder.web.core.pipeline.Context;
 import cn.seecoder.web.core.pipeline.PipelineException;

+ 3 - 3
web/src/main/java/cn/seecoder/web/core/pipeline/handler/NodeImageBuildHandler.java

@@ -1,8 +1,8 @@
 package cn.seecoder.web.core.pipeline.handler;
 
-import cn.seecoder.api.ApplicationProperties;
-import cn.seecoder.api.docker.DockerApi;
-import cn.seecoder.api.git.GitApi;
+import cn.seecoder.web.infra.ApplicationProperties;
+import cn.seecoder.web.infra.docker.DockerApi;
+import cn.seecoder.web.infra.git.GitApi;
 import cn.seecoder.common.util.SpringUtil;
 import cn.seecoder.web.core.pipeline.Context;
 import cn.seecoder.web.core.pipeline.PipelineException;

+ 3 - 3
web/src/main/java/cn/seecoder/web/core/pipeline/handler/SonarJavaImageBuildHandler.java

@@ -1,8 +1,8 @@
 package cn.seecoder.web.core.pipeline.handler;
 
-import cn.seecoder.api.ApplicationProperties;
-import cn.seecoder.api.docker.DockerApi;
-import cn.seecoder.api.git.GitApi;
+import cn.seecoder.web.infra.ApplicationProperties;
+import cn.seecoder.web.infra.docker.DockerApi;
+import cn.seecoder.web.infra.git.GitApi;
 import cn.seecoder.common.util.SpringUtil;
 import cn.seecoder.web.core.pipeline.Context;
 import cn.seecoder.web.core.pipeline.PipelineException;

+ 12 - 12
web/src/main/java/cn/seecoder/web/core/pipeline/inspector/PipelineInspector.java

@@ -1,17 +1,17 @@
 package cn.seecoder.web.core.pipeline.inspector;
 
-import cn.seecoder.api.k8s.DeploymentApi;
-import cn.seecoder.api.k8s.IngressApi;
-import cn.seecoder.api.k8s.K8sConstants;
-import cn.seecoder.api.k8s.LogApi;
-import cn.seecoder.api.k8s.NamespaceApi;
-import cn.seecoder.api.k8s.PodApi;
-import cn.seecoder.api.k8s.ServiceApi;
-import cn.seecoder.api.k8s.model.Deployment;
-import cn.seecoder.api.k8s.model.Ingress;
-import cn.seecoder.api.k8s.model.K8sObjectRequest;
-import cn.seecoder.api.k8s.model.Pod;
-import cn.seecoder.api.k8s.model.Service;
+import cn.seecoder.web.infra.k8s.DeploymentApi;
+import cn.seecoder.web.infra.k8s.IngressApi;
+import cn.seecoder.web.infra.k8s.K8sConstants;
+import cn.seecoder.web.infra.k8s.LogApi;
+import cn.seecoder.web.infra.k8s.NamespaceApi;
+import cn.seecoder.web.infra.k8s.PodApi;
+import cn.seecoder.web.infra.k8s.ServiceApi;
+import cn.seecoder.web.infra.k8s.model.Deployment;
+import cn.seecoder.web.infra.k8s.model.Ingress;
+import cn.seecoder.web.infra.k8s.model.K8sObjectRequest;
+import cn.seecoder.web.infra.k8s.model.Pod;
+import cn.seecoder.web.infra.k8s.model.Service;
 import cn.seecoder.common.util.SpringUtil;
 import cn.seecoder.web.core.pipeline.Context;
 import io.kubernetes.client.openapi.models.V1DeploymentStatus;

+ 1 - 1
api/src/main/java/cn/seecoder/api/ApplicationProperties.java → web/src/main/java/cn/seecoder/web/infra/ApplicationProperties.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api;
+package cn.seecoder.web.infra;
 
 import lombok.Data;
 import org.hibernate.validator.constraints.URL;

+ 16 - 0
web/src/main/java/cn/seecoder/web/infra/DevcloudInfraConfiguration.java

@@ -0,0 +1,16 @@
+package cn.seecoder.web.infra;
+
+import com.nju.edu.gitlab.SeecoderGitlabApi;
+import com.nju.edu.gitlab.SeecoderGitlabClient;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class DevcloudInfraConfiguration {
+
+	@Bean
+	public SeecoderGitlabApi seecoderGitlabApi(ApplicationProperties applicationProperties) {
+		ApplicationProperties.Gitlab gitlab = applicationProperties.getGitlab();
+		return new SeecoderGitlabClient(gitlab.getHost(), gitlab.getToken());
+	}
+}

+ 1 - 1
api/src/main/java/cn/seecoder/api/docker/DockerApi.java → web/src/main/java/cn/seecoder/web/infra/docker/DockerApi.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.docker;
+package cn.seecoder.web.infra.docker;
 
 import com.spotify.docker.client.ProgressHandler;
 import com.spotify.docker.client.messages.Image;

+ 3 - 3
api/src/main/java/cn/seecoder/api/docker/impl/DockerApiImpl.java → web/src/main/java/cn/seecoder/web/infra/docker/impl/DockerApiImpl.java

@@ -1,8 +1,8 @@
-package cn.seecoder.api.docker.impl;
+package cn.seecoder.web.infra.docker.impl;
 
 
-import cn.seecoder.api.ApplicationProperties;
-import cn.seecoder.api.docker.DockerApi;
+import cn.seecoder.web.infra.ApplicationProperties;
+import cn.seecoder.web.infra.docker.DockerApi;
 import com.spotify.docker.client.DefaultDockerClient;
 import com.spotify.docker.client.DockerCertificates;
 import com.spotify.docker.client.DockerClient;

+ 1 - 1
api/src/main/java/cn/seecoder/api/git/GitApi.java → web/src/main/java/cn/seecoder/web/infra/git/GitApi.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.git;
+package cn.seecoder.web.infra.git;
 
 import org.eclipse.jgit.api.Git;
 

+ 3 - 3
api/src/main/java/cn/seecoder/api/git/impl/GitApiImpl.java → web/src/main/java/cn/seecoder/web/infra/git/impl/GitApiImpl.java

@@ -1,8 +1,8 @@
-package cn.seecoder.api.git.impl;
+package cn.seecoder.web.infra.git.impl;
 
 
-import cn.seecoder.api.ApplicationProperties;
-import cn.seecoder.api.git.GitApi;
+import cn.seecoder.web.infra.ApplicationProperties;
+import cn.seecoder.web.infra.git.GitApi;
 import org.eclipse.jgit.api.Git;
 import org.eclipse.jgit.transport.CredentialsProvider;
 import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider;

+ 3 - 3
api/src/main/java/cn/seecoder/api/k8s/AbstractApi.java → web/src/main/java/cn/seecoder/web/infra/k8s/AbstractApi.java

@@ -1,8 +1,8 @@
-package cn.seecoder.api.k8s;
+package cn.seecoder.web.infra.k8s;
 
 
-import cn.seecoder.api.k8s.model.K8sAbstractObject;
-import cn.seecoder.api.k8s.model.K8sObjectRequest;
+import cn.seecoder.web.infra.k8s.model.K8sAbstractObject;
+import cn.seecoder.web.infra.k8s.model.K8sObjectRequest;
 
 import java.util.List;
 

+ 7 - 0
web/src/main/java/cn/seecoder/web/infra/k8s/ConfigMapApi.java

@@ -0,0 +1,7 @@
+package cn.seecoder.web.infra.k8s;
+
+
+import cn.seecoder.web.infra.k8s.model.ConfigMap;
+
+public interface ConfigMapApi extends AbstractApi<ConfigMap> {
+}

+ 4 - 4
api/src/main/java/cn/seecoder/api/k8s/DeploymentApi.java → web/src/main/java/cn/seecoder/web/infra/k8s/DeploymentApi.java

@@ -1,9 +1,9 @@
-package cn.seecoder.api.k8s;
+package cn.seecoder.web.infra.k8s;
 
 
-import cn.seecoder.api.k8s.exception.K8sApiException;
-import cn.seecoder.api.k8s.model.Deployment;
-import cn.seecoder.api.k8s.model.DeploymentStatus;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.model.Deployment;
+import cn.seecoder.web.infra.k8s.model.DeploymentStatus;
 
 /**
  * author: rale

+ 2 - 2
api/src/main/java/cn/seecoder/api/k8s/ExecApi.java → web/src/main/java/cn/seecoder/web/infra/k8s/ExecApi.java

@@ -1,7 +1,7 @@
-package cn.seecoder.api.k8s;
+package cn.seecoder.web.infra.k8s;
 
 
-import cn.seecoder.api.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
 
 import java.util.List;
 

+ 2 - 2
api/src/main/java/cn/seecoder/api/k8s/IngressApi.java → web/src/main/java/cn/seecoder/web/infra/k8s/IngressApi.java

@@ -1,7 +1,7 @@
-package cn.seecoder.api.k8s;
+package cn.seecoder.web.infra.k8s;
 
 
-import cn.seecoder.api.k8s.model.Ingress;
+import cn.seecoder.web.infra.k8s.model.Ingress;
 
 /**
  * author: rale

+ 6 - 0
web/src/main/java/cn/seecoder/web/infra/k8s/JobApi.java

@@ -0,0 +1,6 @@
+package cn.seecoder.web.infra.k8s;
+
+import cn.seecoder.web.infra.k8s.model.Job;
+
+public interface JobApi extends AbstractApi<Job> {
+}

+ 2 - 2
api/src/main/java/cn/seecoder/api/k8s/K8sApiConfiguration.java → web/src/main/java/cn/seecoder/web/infra/k8s/K8sApiConfiguration.java

@@ -1,6 +1,6 @@
-package cn.seecoder.api.k8s;
+package cn.seecoder.web.infra.k8s;
 
-import cn.seecoder.api.ApplicationProperties;
+import cn.seecoder.web.infra.ApplicationProperties;
 import io.kubernetes.client.Exec;
 import io.kubernetes.client.openapi.ApiClient;
 import io.kubernetes.client.openapi.apis.AppsV1Api;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/K8sConstants.java → web/src/main/java/cn/seecoder/web/infra/k8s/K8sConstants.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s;
+package cn.seecoder.web.infra.k8s;
 
 public class K8sConstants {
 

+ 6 - 0
web/src/main/java/cn/seecoder/web/infra/k8s/LimitRangeApi.java

@@ -0,0 +1,6 @@
+package cn.seecoder.web.infra.k8s;
+
+import cn.seecoder.web.infra.k8s.model.LimitRange;
+
+public interface LimitRangeApi extends AbstractApi<LimitRange> {
+}

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/LogApi.java → web/src/main/java/cn/seecoder/web/infra/k8s/LogApi.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s;
+package cn.seecoder.web.infra.k8s;
 
 import java.time.LocalDateTime;
 

+ 8 - 0
web/src/main/java/cn/seecoder/web/infra/k8s/NamespaceApi.java

@@ -0,0 +1,8 @@
+package cn.seecoder.web.infra.k8s;
+
+
+import cn.seecoder.web.infra.k8s.model.Namespace;
+
+public interface NamespaceApi extends AbstractApi<Namespace> {
+
+}

+ 7 - 0
web/src/main/java/cn/seecoder/web/infra/k8s/PersistentVolumeClaimApi.java

@@ -0,0 +1,7 @@
+package cn.seecoder.web.infra.k8s;
+
+
+import cn.seecoder.web.infra.k8s.model.PersistentVolumeClaim;
+
+public interface PersistentVolumeClaimApi extends AbstractApi<PersistentVolumeClaim> {
+}

+ 7 - 0
web/src/main/java/cn/seecoder/web/infra/k8s/PodApi.java

@@ -0,0 +1,7 @@
+package cn.seecoder.web.infra.k8s;
+
+
+import cn.seecoder.web.infra.k8s.model.Pod;
+
+public interface PodApi extends AbstractApi<Pod> {
+}

+ 3 - 3
api/src/main/java/cn/seecoder/api/k8s/SecretApi.java → web/src/main/java/cn/seecoder/web/infra/k8s/SecretApi.java

@@ -1,7 +1,7 @@
-package cn.seecoder.api.k8s;
+package cn.seecoder.web.infra.k8s;
 
-import cn.seecoder.api.k8s.util.SecretTypeEnum;
-import cn.seecoder.api.k8s.vo.SecretVO;
+import cn.seecoder.web.infra.k8s.util.SecretTypeEnum;
+import cn.seecoder.web.infra.k8s.vo.SecretVO;
 
 import java.util.List;
 import java.util.Map;

+ 8 - 0
web/src/main/java/cn/seecoder/web/infra/k8s/ServiceApi.java

@@ -0,0 +1,8 @@
+package cn.seecoder.web.infra.k8s;
+
+
+import cn.seecoder.web.infra.k8s.model.Service;
+
+public interface ServiceApi extends AbstractApi<Service> {
+
+}

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/WatchApi.java → web/src/main/java/cn/seecoder/web/infra/k8s/WatchApi.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s;
+package cn.seecoder.web.infra.k8s;
 
 /**
  * author: rale

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/exception/K8sApiException.java → web/src/main/java/cn/seecoder/web/infra/k8s/exception/K8sApiException.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.exception;
+package cn.seecoder.web.infra.k8s.exception;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;

+ 10 - 10
api/src/main/java/cn/seecoder/api/k8s/impl/ConfigMapApiImpl.java → web/src/main/java/cn/seecoder/web/infra/k8s/impl/ConfigMapApiImpl.java

@@ -1,11 +1,11 @@
-package cn.seecoder.api.k8s.impl;
+package cn.seecoder.web.infra.k8s.impl;
 
 
-import cn.seecoder.api.k8s.ConfigMapApi;
-import cn.seecoder.api.k8s.exception.K8sApiException;
-import cn.seecoder.api.k8s.model.ConfigMap;
-import cn.seecoder.api.k8s.model.K8sObjectRequest;
-import cn.seecoder.api.k8s.model.LabelSelector;
+import cn.seecoder.web.infra.k8s.ConfigMapApi;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.model.ConfigMap;
+import cn.seecoder.web.infra.k8s.model.K8sObjectRequest;
+import cn.seecoder.web.infra.k8s.model.LabelSelector;
 import cn.seecoder.common.util.LoggerUtil;
 import com.google.gson.JsonSyntaxException;
 import io.kubernetes.client.openapi.ApiException;
@@ -22,10 +22,10 @@ import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
-import static cn.seecoder.api.k8s.K8sConstants.FOREGROUND_PROPAGATION_POLICY;
-import static cn.seecoder.api.k8s.K8sConstants.PRETTY_FORMAT;
-import static cn.seecoder.api.k8s.exception.K8sApiException.ALREADY_EXIST;
-import static cn.seecoder.api.k8s.exception.K8sApiException.NOT_FOUND;
+import static cn.seecoder.web.infra.k8s.K8sConstants.FOREGROUND_PROPAGATION_POLICY;
+import static cn.seecoder.web.infra.k8s.K8sConstants.PRETTY_FORMAT;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.ALREADY_EXIST;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.NOT_FOUND;
 
 
 @Service

+ 12 - 12
api/src/main/java/cn/seecoder/api/k8s/impl/DeploymentApiImpl.java → web/src/main/java/cn/seecoder/web/infra/k8s/impl/DeploymentApiImpl.java

@@ -1,12 +1,12 @@
-package cn.seecoder.api.k8s.impl;
+package cn.seecoder.web.infra.k8s.impl;
 
 
-import cn.seecoder.api.k8s.DeploymentApi;
-import cn.seecoder.api.k8s.exception.K8sApiException;
-import cn.seecoder.api.k8s.model.Deployment;
-import cn.seecoder.api.k8s.model.DeploymentStatus;
-import cn.seecoder.api.k8s.model.K8sObjectRequest;
-import cn.seecoder.api.k8s.model.LabelSelector;
+import cn.seecoder.web.infra.k8s.DeploymentApi;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.model.Deployment;
+import cn.seecoder.web.infra.k8s.model.DeploymentStatus;
+import cn.seecoder.web.infra.k8s.model.K8sObjectRequest;
+import cn.seecoder.web.infra.k8s.model.LabelSelector;
 import cn.seecoder.common.util.LoggerUtil;
 import com.google.gson.JsonSyntaxException;
 import io.kubernetes.client.openapi.ApiException;
@@ -23,11 +23,11 @@ import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
-import static cn.seecoder.api.k8s.K8sConstants.FOREGROUND_PROPAGATION_POLICY;
-import static cn.seecoder.api.k8s.K8sConstants.PRETTY_FORMAT;
-import static cn.seecoder.api.k8s.exception.K8sApiException.ALREADY_EXIST;
-import static cn.seecoder.api.k8s.exception.K8sApiException.K8s_SYSTEM_ERROR_EXCEPTION;
-import static cn.seecoder.api.k8s.exception.K8sApiException.NOT_FOUND;
+import static cn.seecoder.web.infra.k8s.K8sConstants.FOREGROUND_PROPAGATION_POLICY;
+import static cn.seecoder.web.infra.k8s.K8sConstants.PRETTY_FORMAT;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.ALREADY_EXIST;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.K8s_SYSTEM_ERROR_EXCEPTION;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.NOT_FOUND;
 
 
 /**

+ 3 - 3
api/src/main/java/cn/seecoder/api/k8s/impl/ExecApiImpl.java → web/src/main/java/cn/seecoder/web/infra/k8s/impl/ExecApiImpl.java

@@ -1,8 +1,8 @@
-package cn.seecoder.api.k8s.impl;
+package cn.seecoder.web.infra.k8s.impl;
 
 
-import cn.seecoder.api.k8s.ExecApi;
-import cn.seecoder.api.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.ExecApi;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
 import cn.seecoder.common.util.LoggerUtil;
 import io.kubernetes.client.Exec;
 import io.kubernetes.client.openapi.ApiException;

+ 11 - 11
api/src/main/java/cn/seecoder/api/k8s/impl/IngressApiImpl.java → web/src/main/java/cn/seecoder/web/infra/k8s/impl/IngressApiImpl.java

@@ -1,10 +1,10 @@
-package cn.seecoder.api.k8s.impl;
+package cn.seecoder.web.infra.k8s.impl;
 
-import cn.seecoder.api.k8s.IngressApi;
-import cn.seecoder.api.k8s.exception.K8sApiException;
-import cn.seecoder.api.k8s.model.Ingress;
-import cn.seecoder.api.k8s.model.K8sObjectRequest;
-import cn.seecoder.api.k8s.model.LabelSelector;
+import cn.seecoder.web.infra.k8s.IngressApi;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.model.Ingress;
+import cn.seecoder.web.infra.k8s.model.K8sObjectRequest;
+import cn.seecoder.web.infra.k8s.model.LabelSelector;
 import cn.seecoder.common.util.LoggerUtil;
 import com.google.gson.JsonSyntaxException;
 import io.kubernetes.client.openapi.ApiException;
@@ -21,11 +21,11 @@ import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
-import static cn.seecoder.api.k8s.K8sConstants.FOREGROUND_PROPAGATION_POLICY;
-import static cn.seecoder.api.k8s.K8sConstants.PRETTY_FORMAT;
-import static cn.seecoder.api.k8s.exception.K8sApiException.ALREADY_EXIST;
-import static cn.seecoder.api.k8s.exception.K8sApiException.K8s_SYSTEM_ERROR_EXCEPTION;
-import static cn.seecoder.api.k8s.exception.K8sApiException.NOT_FOUND;
+import static cn.seecoder.web.infra.k8s.K8sConstants.FOREGROUND_PROPAGATION_POLICY;
+import static cn.seecoder.web.infra.k8s.K8sConstants.PRETTY_FORMAT;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.ALREADY_EXIST;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.K8s_SYSTEM_ERROR_EXCEPTION;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.NOT_FOUND;
 
 /**
  * author: rale

+ 11 - 11
api/src/main/java/cn/seecoder/api/k8s/impl/JobApiImpl.java → web/src/main/java/cn/seecoder/web/infra/k8s/impl/JobApiImpl.java

@@ -1,10 +1,10 @@
-package cn.seecoder.api.k8s.impl;
+package cn.seecoder.web.infra.k8s.impl;
 
-import cn.seecoder.api.k8s.JobApi;
-import cn.seecoder.api.k8s.exception.K8sApiException;
-import cn.seecoder.api.k8s.model.Job;
-import cn.seecoder.api.k8s.model.K8sObjectRequest;
-import cn.seecoder.api.k8s.model.LabelSelector;
+import cn.seecoder.web.infra.k8s.JobApi;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.model.Job;
+import cn.seecoder.web.infra.k8s.model.K8sObjectRequest;
+import cn.seecoder.web.infra.k8s.model.LabelSelector;
 import cn.seecoder.common.util.LoggerUtil;
 import io.kubernetes.client.openapi.ApiException;
 import io.kubernetes.client.openapi.apis.BatchV1Api;
@@ -20,11 +20,11 @@ import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
-import static cn.seecoder.api.k8s.K8sConstants.FOREGROUND_PROPAGATION_POLICY;
-import static cn.seecoder.api.k8s.K8sConstants.PRETTY_FORMAT;
-import static cn.seecoder.api.k8s.exception.K8sApiException.ALREADY_EXIST;
-import static cn.seecoder.api.k8s.exception.K8sApiException.K8s_SYSTEM_ERROR_EXCEPTION;
-import static cn.seecoder.api.k8s.exception.K8sApiException.NOT_FOUND;
+import static cn.seecoder.web.infra.k8s.K8sConstants.FOREGROUND_PROPAGATION_POLICY;
+import static cn.seecoder.web.infra.k8s.K8sConstants.PRETTY_FORMAT;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.ALREADY_EXIST;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.K8s_SYSTEM_ERROR_EXCEPTION;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.NOT_FOUND;
 
 @Service
 public class JobApiImpl implements JobApi {

+ 11 - 11
api/src/main/java/cn/seecoder/api/k8s/impl/LimitRangeApiImpl.java → web/src/main/java/cn/seecoder/web/infra/k8s/impl/LimitRangeApiImpl.java

@@ -1,10 +1,10 @@
-package cn.seecoder.api.k8s.impl;
+package cn.seecoder.web.infra.k8s.impl;
 
-import cn.seecoder.api.k8s.LimitRangeApi;
-import cn.seecoder.api.k8s.exception.K8sApiException;
-import cn.seecoder.api.k8s.model.K8sObjectRequest;
-import cn.seecoder.api.k8s.model.LabelSelector;
-import cn.seecoder.api.k8s.model.LimitRange;
+import cn.seecoder.web.infra.k8s.LimitRangeApi;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.model.K8sObjectRequest;
+import cn.seecoder.web.infra.k8s.model.LabelSelector;
+import cn.seecoder.web.infra.k8s.model.LimitRange;
 import io.kubernetes.client.openapi.ApiException;
 import io.kubernetes.client.openapi.apis.CoreV1Api;
 import io.kubernetes.client.openapi.models.V1DeleteOptions;
@@ -19,11 +19,11 @@ import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
-import static cn.seecoder.api.k8s.K8sConstants.FOREGROUND_PROPAGATION_POLICY;
-import static cn.seecoder.api.k8s.K8sConstants.PRETTY_FORMAT;
-import static cn.seecoder.api.k8s.exception.K8sApiException.ALREADY_EXIST;
-import static cn.seecoder.api.k8s.exception.K8sApiException.K8s_SYSTEM_ERROR_EXCEPTION;
-import static cn.seecoder.api.k8s.exception.K8sApiException.NOT_FOUND;
+import static cn.seecoder.web.infra.k8s.K8sConstants.FOREGROUND_PROPAGATION_POLICY;
+import static cn.seecoder.web.infra.k8s.K8sConstants.PRETTY_FORMAT;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.ALREADY_EXIST;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.K8s_SYSTEM_ERROR_EXCEPTION;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.NOT_FOUND;
 
 @Service
 @Slf4j

+ 4 - 4
api/src/main/java/cn/seecoder/api/k8s/impl/LogApiImpl.java → web/src/main/java/cn/seecoder/web/infra/k8s/impl/LogApiImpl.java

@@ -1,9 +1,9 @@
-package cn.seecoder.api.k8s.impl;
+package cn.seecoder.web.infra.k8s.impl;
 
 
-import cn.seecoder.api.k8s.K8sConstants;
-import cn.seecoder.api.k8s.LogApi;
-import cn.seecoder.api.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.K8sConstants;
+import cn.seecoder.web.infra.k8s.LogApi;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
 import cn.seecoder.common.util.LoggerUtil;
 import io.kubernetes.client.openapi.ApiException;
 import io.kubernetes.client.openapi.apis.CoreV1Api;

+ 7 - 7
api/src/main/java/cn/seecoder/api/k8s/impl/NamespaceApiImpl.java → web/src/main/java/cn/seecoder/web/infra/k8s/impl/NamespaceApiImpl.java

@@ -1,11 +1,11 @@
-package cn.seecoder.api.k8s.impl;
+package cn.seecoder.web.infra.k8s.impl;
 
-import cn.seecoder.api.k8s.K8sConstants;
-import cn.seecoder.api.k8s.NamespaceApi;
-import cn.seecoder.api.k8s.exception.K8sApiException;
-import cn.seecoder.api.k8s.model.K8sObjectRequest;
-import cn.seecoder.api.k8s.model.LabelSelector;
-import cn.seecoder.api.k8s.model.Namespace;
+import cn.seecoder.web.infra.k8s.K8sConstants;
+import cn.seecoder.web.infra.k8s.NamespaceApi;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.model.K8sObjectRequest;
+import cn.seecoder.web.infra.k8s.model.LabelSelector;
+import cn.seecoder.web.infra.k8s.model.Namespace;
 import cn.seecoder.common.util.LoggerUtil;
 import com.google.gson.JsonSyntaxException;
 import io.kubernetes.client.openapi.ApiException;

+ 12 - 12
api/src/main/java/cn/seecoder/api/k8s/impl/PersistentVolumeClaimImpl.java → web/src/main/java/cn/seecoder/web/infra/k8s/impl/PersistentVolumeClaimImpl.java

@@ -1,11 +1,11 @@
-package cn.seecoder.api.k8s.impl;
-
-import cn.seecoder.api.k8s.DeploymentApi;
-import cn.seecoder.api.k8s.PersistentVolumeClaimApi;
-import cn.seecoder.api.k8s.exception.K8sApiException;
-import cn.seecoder.api.k8s.model.K8sObjectRequest;
-import cn.seecoder.api.k8s.model.LabelSelector;
-import cn.seecoder.api.k8s.model.PersistentVolumeClaim;
+package cn.seecoder.web.infra.k8s.impl;
+
+import cn.seecoder.web.infra.k8s.DeploymentApi;
+import cn.seecoder.web.infra.k8s.PersistentVolumeClaimApi;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.model.K8sObjectRequest;
+import cn.seecoder.web.infra.k8s.model.LabelSelector;
+import cn.seecoder.web.infra.k8s.model.PersistentVolumeClaim;
 import cn.seecoder.common.util.LoggerUtil;
 import com.google.gson.JsonSyntaxException;
 import io.kubernetes.client.custom.V1Patch;
@@ -23,10 +23,10 @@ import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
-import static cn.seecoder.api.k8s.K8sConstants.FOREGROUND_PROPAGATION_POLICY;
-import static cn.seecoder.api.k8s.K8sConstants.PRETTY_FORMAT;
-import static cn.seecoder.api.k8s.exception.K8sApiException.ALREADY_EXIST;
-import static cn.seecoder.api.k8s.exception.K8sApiException.NOT_FOUND;
+import static cn.seecoder.web.infra.k8s.K8sConstants.FOREGROUND_PROPAGATION_POLICY;
+import static cn.seecoder.web.infra.k8s.K8sConstants.PRETTY_FORMAT;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.ALREADY_EXIST;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.NOT_FOUND;
 
 
 @Service

+ 10 - 10
api/src/main/java/cn/seecoder/api/k8s/impl/PodApiImpl.java → web/src/main/java/cn/seecoder/web/infra/k8s/impl/PodApiImpl.java

@@ -1,10 +1,10 @@
-package cn.seecoder.api.k8s.impl;
+package cn.seecoder.web.infra.k8s.impl;
 
-import cn.seecoder.api.k8s.PodApi;
-import cn.seecoder.api.k8s.model.K8sObjectRequest;
-import cn.seecoder.api.k8s.model.LabelSelector;
-import cn.seecoder.api.k8s.model.Namespace;
-import cn.seecoder.api.k8s.model.Pod;
+import cn.seecoder.web.infra.k8s.PodApi;
+import cn.seecoder.web.infra.k8s.model.K8sObjectRequest;
+import cn.seecoder.web.infra.k8s.model.LabelSelector;
+import cn.seecoder.web.infra.k8s.model.Namespace;
+import cn.seecoder.web.infra.k8s.model.Pod;
 import cn.seecoder.common.util.LoggerUtil;
 import com.google.gson.JsonSyntaxException;
 import io.kubernetes.client.openapi.ApiException;
@@ -21,10 +21,10 @@ import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
-import static cn.seecoder.api.k8s.K8sConstants.FOREGROUND_PROPAGATION_POLICY;
-import static cn.seecoder.api.k8s.K8sConstants.PRETTY_FORMAT;
-import static cn.seecoder.api.k8s.exception.K8sApiException.K8s_NOT_SUPPORT_METHOD;
-import static cn.seecoder.api.k8s.exception.K8sApiException.NOT_FOUND;
+import static cn.seecoder.web.infra.k8s.K8sConstants.FOREGROUND_PROPAGATION_POLICY;
+import static cn.seecoder.web.infra.k8s.K8sConstants.PRETTY_FORMAT;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.K8s_NOT_SUPPORT_METHOD;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.NOT_FOUND;
 
 /**
  * author: rale

+ 6 - 6
api/src/main/java/cn/seecoder/api/k8s/impl/SecretApiImpl.java → web/src/main/java/cn/seecoder/web/infra/k8s/impl/SecretApiImpl.java

@@ -1,10 +1,10 @@
-package cn.seecoder.api.k8s.impl;
+package cn.seecoder.web.infra.k8s.impl;
 
 
-import cn.seecoder.api.k8s.SecretApi;
-import cn.seecoder.api.k8s.exception.K8sApiException;
-import cn.seecoder.api.k8s.util.SecretTypeEnum;
-import cn.seecoder.api.k8s.vo.SecretVO;
+import cn.seecoder.web.infra.k8s.SecretApi;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.util.SecretTypeEnum;
+import cn.seecoder.web.infra.k8s.vo.SecretVO;
 import cn.seecoder.common.util.LoggerUtil;
 import io.kubernetes.client.openapi.ApiException;
 import io.kubernetes.client.openapi.apis.CoreV1Api;
@@ -24,7 +24,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
-import static cn.seecoder.api.k8s.K8sConstants.PRETTY_FORMAT;
+import static cn.seecoder.web.infra.k8s.K8sConstants.PRETTY_FORMAT;
 
 
 @Service

+ 11 - 11
api/src/main/java/cn/seecoder/api/k8s/impl/ServiceApiImpl.java → web/src/main/java/cn/seecoder/web/infra/k8s/impl/ServiceApiImpl.java

@@ -1,10 +1,10 @@
-package cn.seecoder.api.k8s.impl;
+package cn.seecoder.web.infra.k8s.impl;
 
-import cn.seecoder.api.k8s.ServiceApi;
-import cn.seecoder.api.k8s.exception.K8sApiException;
-import cn.seecoder.api.k8s.model.K8sObjectRequest;
-import cn.seecoder.api.k8s.model.LabelSelector;
-import cn.seecoder.api.k8s.model.Service;
+import cn.seecoder.web.infra.k8s.ServiceApi;
+import cn.seecoder.web.infra.k8s.exception.K8sApiException;
+import cn.seecoder.web.infra.k8s.model.K8sObjectRequest;
+import cn.seecoder.web.infra.k8s.model.LabelSelector;
+import cn.seecoder.web.infra.k8s.model.Service;
 import cn.seecoder.common.util.LoggerUtil;
 import io.kubernetes.client.openapi.ApiException;
 import io.kubernetes.client.openapi.apis.CoreV1Api;
@@ -19,11 +19,11 @@ import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
-import static cn.seecoder.api.k8s.K8sConstants.FOREGROUND_PROPAGATION_POLICY;
-import static cn.seecoder.api.k8s.K8sConstants.PRETTY_FORMAT;
-import static cn.seecoder.api.k8s.exception.K8sApiException.ALREADY_EXIST;
-import static cn.seecoder.api.k8s.exception.K8sApiException.K8s_SYSTEM_ERROR_EXCEPTION;
-import static cn.seecoder.api.k8s.exception.K8sApiException.NOT_FOUND;
+import static cn.seecoder.web.infra.k8s.K8sConstants.FOREGROUND_PROPAGATION_POLICY;
+import static cn.seecoder.web.infra.k8s.K8sConstants.PRETTY_FORMAT;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.ALREADY_EXIST;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.K8s_SYSTEM_ERROR_EXCEPTION;
+import static cn.seecoder.web.infra.k8s.exception.K8sApiException.NOT_FOUND;
 
 @org.springframework.stereotype.Service
 public class ServiceApiImpl implements ServiceApi {

+ 3 - 3
api/src/main/java/cn/seecoder/api/k8s/impl/WatchApiImpl.java → web/src/main/java/cn/seecoder/web/infra/k8s/impl/WatchApiImpl.java

@@ -1,6 +1,6 @@
-package cn.seecoder.api.k8s.impl;
+package cn.seecoder.web.infra.k8s.impl;
 
-import cn.seecoder.api.k8s.WatchApi;
+import cn.seecoder.web.infra.k8s.WatchApi;
 import com.google.common.reflect.TypeToken;
 import io.kubernetes.client.openapi.ApiClient;
 import io.kubernetes.client.openapi.ApiException;
@@ -14,7 +14,7 @@ import org.springframework.stereotype.Service;
 
 import java.io.IOException;
 
-import static cn.seecoder.api.k8s.K8sConstants.PRETTY_FORMAT;
+import static cn.seecoder.web.infra.k8s.K8sConstants.PRETTY_FORMAT;
 
 
 /**

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/ConfigMap.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/ConfigMap.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 import io.kubernetes.client.openapi.models.V1ConfigMap;
 import io.kubernetes.client.openapi.models.V1ConfigMapBuilder;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/Container.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/Container.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 import io.kubernetes.client.openapi.models.V1Container;
 import io.kubernetes.client.openapi.models.V1ContainerBuilder;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/ContainerPort.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/ContainerPort.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 import io.kubernetes.client.openapi.models.V1ContainerPort;
 import io.kubernetes.client.openapi.models.V1ContainerPortBuilder;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/CpuQuantity.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/CpuQuantity.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 import io.kubernetes.client.custom.Quantity;
 import lombok.Getter;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/Deployment.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/Deployment.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 import io.kubernetes.client.openapi.models.V1Deployment;
 import io.kubernetes.client.openapi.models.V1DeploymentBuilder;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/DeploymentStatus.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/DeploymentStatus.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 import io.kubernetes.client.openapi.models.V1DeploymentCondition;
 import io.kubernetes.client.openapi.models.V1DeploymentStatus;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/HttpGetAction.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/HttpGetAction.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 import io.kubernetes.client.custom.IntOrString;
 import io.kubernetes.client.openapi.models.V1HTTPGetAction;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/Ingress.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/Ingress.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 import io.kubernetes.client.custom.IntOrString;
 import io.kubernetes.client.openapi.models.ExtensionsV1beta1HTTPIngressPath;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/Job.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/Job.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 import io.kubernetes.client.openapi.models.V1Job;
 import io.kubernetes.client.openapi.models.V1JobBuilder;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/K8sAbstractObject.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/K8sAbstractObject.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 import io.kubernetes.client.common.KubernetesObject;
 import lombok.Data;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/K8sObject.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/K8sObject.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 import io.kubernetes.client.openapi.models.V1ObjectMeta;
 import io.kubernetes.client.openapi.models.V1ObjectMetaBuilder;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/K8sObjectRequest.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/K8sObjectRequest.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/K8sObjectTransformer.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/K8sObjectTransformer.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 public interface K8sObjectTransformer<T> {
 

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/LabelSelector.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/LabelSelector.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/LimitRange.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/LimitRange.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 import io.kubernetes.client.custom.Quantity;
 import io.kubernetes.client.openapi.models.V1LimitRange;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/Namespace.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/Namespace.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 import cn.seecoder.common.util.DateUtil;
 import io.kubernetes.client.openapi.models.V1Namespace;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/PersistentVolumeClaim.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/PersistentVolumeClaim.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 import io.kubernetes.client.custom.Quantity;
 import io.kubernetes.client.openapi.models.V1PersistentVolumeClaim;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/Pod.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/Pod.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 import io.kubernetes.client.openapi.models.V1Pod;
 import io.kubernetes.client.openapi.models.V1PodBuilder;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/PodStatus.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/PodStatus.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 /**
  * author: rale

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/Service.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/Service.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 import io.kubernetes.client.openapi.models.V1Service;
 import io.kubernetes.client.openapi.models.V1ServiceBuilder;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/model/ServicePort.java → web/src/main/java/cn/seecoder/web/infra/k8s/model/ServicePort.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.model;
+package cn.seecoder.web.infra.k8s.model;
 
 import io.kubernetes.client.custom.IntOrString;
 import io.kubernetes.client.openapi.models.V1ServicePort;

+ 1 - 1
api/src/main/java/cn/seecoder/api/k8s/util/SecretTypeEnum.java → web/src/main/java/cn/seecoder/web/infra/k8s/util/SecretTypeEnum.java

@@ -1,4 +1,4 @@
-package cn.seecoder.api.k8s.util;
+package cn.seecoder.web.infra.k8s.util;
 
 import org.apache.commons.lang.StringUtils;
 

+ 2 - 2
api/src/main/java/cn/seecoder/api/k8s/vo/SecretVO.java → web/src/main/java/cn/seecoder/web/infra/k8s/vo/SecretVO.java

@@ -1,6 +1,6 @@
-package cn.seecoder.api.k8s.vo;
+package cn.seecoder.web.infra.k8s.vo;
 
-import cn.seecoder.api.k8s.util.SecretTypeEnum;
+import cn.seecoder.web.infra.k8s.util.SecretTypeEnum;
 import io.kubernetes.client.openapi.models.V1Secret;
 import lombok.Data;
 import lombok.NoArgsConstructor;

+ 1 - 1
web/src/main/java/cn/seecoder/web/service/commit/impl/CommitQualityServiceImpl.java

@@ -1,6 +1,6 @@
 package cn.seecoder.web.service.commit.impl;
 
-import cn.seecoder.api.ApplicationProperties;
+import cn.seecoder.web.infra.ApplicationProperties;
 import cn.seecoder.web.dao.commit.CommitQualityMapper;
 import cn.seecoder.web.model.enums.CommitCheckResultEnum;
 import cn.seecoder.web.model.po.commit.CommitQualityPO;

+ 1 - 1
web/src/main/java/cn/seecoder/web/service/fork/impl/ForkServiceImpl.java

@@ -1,6 +1,6 @@
 package cn.seecoder.web.service.fork.impl;
 
-import cn.seecoder.api.ApplicationProperties;
+import cn.seecoder.web.infra.ApplicationProperties;
 import cn.seecoder.web.dao.project.ProjectMapper;
 import cn.seecoder.web.model.po.project.ProjectPO;
 import cn.seecoder.web.model.po.user.UserPO;

+ 2 - 2
web/src/main/java/cn/seecoder/web/service/pipeline/impl/DeploymentServiceImpl.java

@@ -1,7 +1,7 @@
 package cn.seecoder.web.service.pipeline.impl;
 
-import cn.seecoder.api.ApplicationProperties;
-import cn.seecoder.api.k8s.K8sConstants;
+import cn.seecoder.web.infra.ApplicationProperties;
+import cn.seecoder.web.infra.k8s.K8sConstants;
 import cn.seecoder.common.exceptions.AccessDeniedException;
 import cn.seecoder.common.exceptions.ServiceException;
 import cn.seecoder.common.util.LogTrackingUtil;

+ 1 - 1
web/src/main/java/cn/seecoder/web/service/project/impl/ProjectServiceImpl.java

@@ -1,6 +1,6 @@
 package cn.seecoder.web.service.project.impl;
 
-import cn.seecoder.api.ApplicationProperties;
+import cn.seecoder.web.infra.ApplicationProperties;
 import cn.seecoder.common.exceptions.ServiceException;
 import cn.seecoder.common.util.LogTrackingUtil;
 import cn.seecoder.common.util.OpType;

+ 1 - 1
web/src/main/java/cn/seecoder/web/service/user/impl/MailServiceImpl.java

@@ -14,7 +14,7 @@
 // import org.springframework.web.servlet.ModelAndView;
 // import org.thymeleaf.TemplateEngine;
 // import org.thymeleaf.context.Context;
-// import cn.seecoder.api.ApplicationProperties;
+// import cn.seecoder.web.infra.ApplicationProperties;
 // import cn.seecoder.web.service.user.MailService;
 //
 // import javax.mail.MessagingException;

+ 0 - 0
api/src/main/resources/ca.pem → web/src/main/resources/ca.pem


+ 0 - 0
api/src/main/resources/cert.pem → web/src/main/resources/cert.pem


+ 0 - 0
api/src/main/resources/docker-config.json → web/src/main/resources/docker-config.json


+ 0 - 0
api/src/main/resources/key.pem → web/src/main/resources/key.pem


+ 1 - 1
web/src/test/java/cn/seecoder/web/service/user/UserServiceTest.java

@@ -10,7 +10,7 @@
 // import org.springframework.beans.factory.annotation.Autowired;
 // import org.springframework.boot.test.context.SpringBootTest;
 // import org.springframework.test.context.junit4.SpringRunner;
-// import cn.seecoder.api.ApplicationProperties;
+// import cn.seecoder.web.infra.ApplicationProperties;
 // import cn.seecoder.common.exceptions.ServiceException;
 // import cn.seecoder.web.model.vo.user.RegisterVO;
 // import cn.seecoder.web.model.vo.user.UserVO;