|
@@ -0,0 +1,126 @@
|
|
|
|
|
+package seecoder.devcloud.api;
|
|
|
|
|
+
|
|
|
|
|
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
|
|
|
|
+import org.springframework.context.annotation.Bean;
|
|
|
|
|
+import org.springframework.context.annotation.Configuration;
|
|
|
|
|
+import seecoder.devcloud.api.docker.DockerApi;
|
|
|
|
|
+import seecoder.devcloud.api.docker.impl.DockerApiImpl;
|
|
|
|
|
+import seecoder.devcloud.api.gitlab.GitlabApi;
|
|
|
|
|
+import seecoder.devcloud.api.gitlab.impl.GitlabApiImpl;
|
|
|
|
|
+import seecoder.devcloud.api.jenkins.JenkinsApi;
|
|
|
|
|
+import seecoder.devcloud.api.jenkins.impl.JenkinsApiImpl;
|
|
|
|
|
+import seecoder.devcloud.api.k8s.*;
|
|
|
|
|
+import seecoder.devcloud.api.k8s.impl.*;
|
|
|
|
|
+import seecoder.devcloud.api.nexus.NexusApi;
|
|
|
|
|
+import seecoder.devcloud.api.nexus.model.ApiVersion;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * @author PuHong Weng
|
|
|
|
|
+ * @date 2021/3/5
|
|
|
|
|
+ * @description:
|
|
|
|
|
+ */
|
|
|
|
|
+@Configuration
|
|
|
|
|
+public class DevcloudApiAutoConfiguration {
|
|
|
|
|
+
|
|
|
|
|
+ @Bean
|
|
|
|
|
+ public ApplicationProperties applicationProperties(){
|
|
|
|
|
+ return new ApplicationProperties();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Bean
|
|
|
|
|
+ @ConditionalOnBean(ApplicationProperties.class)
|
|
|
|
|
+ public GitlabApi gitlabApi(){
|
|
|
|
|
+ return new GitlabApiImpl(applicationProperties());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Bean
|
|
|
|
|
+ @ConditionalOnBean(ApplicationProperties.class)
|
|
|
|
|
+ public K8sApiConfiguration k8sApiConfiguration(){
|
|
|
|
|
+ return new K8sApiConfiguration(applicationProperties());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Bean
|
|
|
|
|
+ @ConditionalOnBean(ApplicationProperties.class)
|
|
|
|
|
+ public JenkinsApi jenkinsApi(){
|
|
|
|
|
+ return new JenkinsApiImpl(applicationProperties());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Bean
|
|
|
|
|
+ @ConditionalOnBean(ApplicationProperties.class)
|
|
|
|
|
+ public NexusApi nexusApi(){
|
|
|
|
|
+ ApplicationProperties properties = applicationProperties();
|
|
|
|
|
+ return new NexusApi(properties.getRegistry().getNexusServer(), ApiVersion.V1, properties.getRegistry().getUsername(), properties.getRegistry().getPassword());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Bean
|
|
|
|
|
+ @ConditionalOnBean(ApplicationProperties.class)
|
|
|
|
|
+ public DockerApi dockerApi(){
|
|
|
|
|
+ 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 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 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());
|
|
|
|
|
+ }
|
|
|
|
|
+}
|