diff --git a/spring-cloud-kubernetes-commons/pom.xml b/spring-cloud-kubernetes-commons/pom.xml
index 09d5cc93..3b7f91a8 100644
--- a/spring-cloud-kubernetes-commons/pom.xml
+++ b/spring-cloud-kubernetes-commons/pom.xml
@@ -30,6 +30,10 @@
spring-boot-configuration-processor
true
+
+ org.springframework.cloud
+ spring-cloud-loadbalancer
+
org.springframework.cloud
spring-cloud-context
diff --git a/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesLoadBalancerMode.java b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/loadbalancer/KubernetesLoadBalancerMode.java
similarity index 93%
rename from spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesLoadBalancerMode.java
rename to spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/loadbalancer/KubernetesLoadBalancerMode.java
index c75437ec..93f47ed2 100644
--- a/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesLoadBalancerMode.java
+++ b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/loadbalancer/KubernetesLoadBalancerMode.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.cloud.kubernetes.fabric8.loadbalancer;
+package org.springframework.cloud.kubernetes.commons.loadbalancer;
/**
* Kubernetes load balancer mode enum.
diff --git a/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesLoadBalancerProperties.java b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/loadbalancer/KubernetesLoadBalancerProperties.java
similarity index 97%
rename from spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesLoadBalancerProperties.java
rename to spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/loadbalancer/KubernetesLoadBalancerProperties.java
index 3f64d3b5..1212a504 100644
--- a/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesLoadBalancerProperties.java
+++ b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/loadbalancer/KubernetesLoadBalancerProperties.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.cloud.kubernetes.fabric8.loadbalancer;
+package org.springframework.cloud.kubernetes.commons.loadbalancer;
import org.springframework.boot.context.properties.ConfigurationProperties;
diff --git a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/loadbalancer/KubernetesServiceInstanceMapper.java b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/loadbalancer/KubernetesServiceInstanceMapper.java
new file mode 100644
index 00000000..f77f85cc
--- /dev/null
+++ b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/loadbalancer/KubernetesServiceInstanceMapper.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2013-2020 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.cloud.kubernetes.commons.loadbalancer;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.springframework.cloud.kubernetes.commons.discovery.KubernetesServiceInstance;
+import org.springframework.util.StringUtils;
+
+/**
+ * @author Ryan Baxter
+ */
+public interface KubernetesServiceInstanceMapper {
+
+ KubernetesServiceInstance map(T service);
+
+ static String createHost(String serviceName, String namespace, String clusterDomain) {
+ return String.format("%s.%s.svc.%s", serviceName, StringUtils.hasText(namespace) ? namespace : "default",
+ clusterDomain);
+ }
+
+ static boolean isSecure(Map labels, Map annotations, String servicePortName,
+ Integer servicePort) {
+ if (labels != null) {
+ final String securedLabelValue = labels.getOrDefault("secured", "false");
+ if (securedLabelValue.equals("true")) {
+ return true;
+ }
+ }
+
+ if (annotations != null) {
+ final String securedAnnotationValue = annotations.getOrDefault("secured", "false");
+ if (securedAnnotationValue.equals("true")) {
+ return true;
+ }
+ }
+ return (servicePortName != null && servicePortName.endsWith("https")) || servicePort.toString().endsWith("443");
+ }
+
+ static Map getMapWithPrefixedKeys(Map map, String prefix) {
+ if (map == null) {
+ return new HashMap<>();
+ }
+ if (!StringUtils.hasText(prefix)) {
+ return map;
+ }
+ final Map result = new HashMap<>();
+ map.forEach((k, v) -> result.put(prefix + k, v));
+ return result;
+ }
+
+}
diff --git a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/loadbalancer/KubernetesServicesListSupplier.java b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/loadbalancer/KubernetesServicesListSupplier.java
new file mode 100644
index 00000000..a9b485b3
--- /dev/null
+++ b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/loadbalancer/KubernetesServicesListSupplier.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2013-2020 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.cloud.kubernetes.commons.loadbalancer;
+
+import java.util.List;
+
+import reactor.core.publisher.Flux;
+
+import org.springframework.cloud.client.ServiceInstance;
+import org.springframework.cloud.kubernetes.commons.discovery.KubernetesDiscoveryProperties;
+import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
+import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory;
+import org.springframework.core.env.Environment;
+
+/**
+ * Implementation of {@link ServiceInstanceListSupplier} for load balancer in SERVICE
+ * mode.
+ *
+ * @author Piotr Minkowski
+ */
+public abstract class KubernetesServicesListSupplier implements ServiceInstanceListSupplier {
+
+ protected final Environment environment;
+
+ protected final KubernetesDiscoveryProperties discoveryProperties;
+
+ protected final KubernetesServiceInstanceMapper mapper;
+
+ public KubernetesServicesListSupplier(Environment environment, KubernetesServiceInstanceMapper mapper,
+ KubernetesDiscoveryProperties discoveryProperties) {
+ this.environment = environment;
+ this.discoveryProperties = discoveryProperties;
+ this.mapper = mapper;
+ }
+
+ @Override
+ public String getServiceId() {
+ return environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);
+ }
+
+ @Override
+ public abstract Flux> get();
+
+}
diff --git a/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesLoadBalancerAutoConfiguration.java b/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8LoadBalancerAutoConfiguration.java
similarity index 80%
rename from spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesLoadBalancerAutoConfiguration.java
rename to spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8LoadBalancerAutoConfiguration.java
index 4b9ba50b..4394620e 100644
--- a/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesLoadBalancerAutoConfiguration.java
+++ b/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8LoadBalancerAutoConfiguration.java
@@ -20,6 +20,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesEnabled;
import org.springframework.cloud.kubernetes.commons.discovery.KubernetesDiscoveryProperties;
+import org.springframework.cloud.kubernetes.commons.loadbalancer.KubernetesLoadBalancerProperties;
import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClients;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -33,13 +34,13 @@ import org.springframework.context.annotation.Configuration;
@EnableConfigurationProperties(KubernetesLoadBalancerProperties.class)
@ConditionalOnKubernetesEnabled
@ConditionalOnProperty(value = "spring.cloud.kubernetes.loadbalancer.enabled", matchIfMissing = true)
-@LoadBalancerClients(defaultConfiguration = KubernetesLoadBalancerClientConfiguration.class)
-public class KubernetesLoadBalancerAutoConfiguration {
+@LoadBalancerClients(defaultConfiguration = Fabric8LoadBalancerClientConfiguration.class)
+public class Fabric8LoadBalancerAutoConfiguration {
@Bean
- KubernetesServiceInstanceMapper mapper(KubernetesLoadBalancerProperties properties,
+ Fabric8ServiceInstanceMapper mapper(KubernetesLoadBalancerProperties properties,
KubernetesDiscoveryProperties discoveryProperties) {
- return new KubernetesServiceInstanceMapper(properties, discoveryProperties);
+ return new Fabric8ServiceInstanceMapper(properties, discoveryProperties);
}
}
diff --git a/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesLoadBalancerClientConfiguration.java b/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8LoadBalancerClientConfiguration.java
similarity index 80%
rename from spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesLoadBalancerClientConfiguration.java
rename to spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8LoadBalancerClientConfiguration.java
index 7ed5d385..f66e7286 100644
--- a/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesLoadBalancerClientConfiguration.java
+++ b/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8LoadBalancerClientConfiguration.java
@@ -20,6 +20,7 @@ import io.fabric8.kubernetes.client.KubernetesClient;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.cloud.kubernetes.commons.discovery.KubernetesDiscoveryProperties;
+import org.springframework.cloud.kubernetes.commons.loadbalancer.KubernetesServicesListSupplier;
import org.springframework.context.annotation.Bean;
import org.springframework.core.env.Environment;
@@ -28,14 +29,14 @@ import org.springframework.core.env.Environment;
*
* @author Piotr Minkowski
*/
-public class KubernetesLoadBalancerClientConfiguration {
+public class Fabric8LoadBalancerClientConfiguration {
@Bean
@ConditionalOnProperty(name = "spring.cloud.kubernetes.loadbalancer.mode", havingValue = "SERVICE")
KubernetesServicesListSupplier kubernetesServicesListSupplier(Environment environment,
- KubernetesClient kubernetesClient, KubernetesServiceInstanceMapper mapper,
+ KubernetesClient kubernetesClient, Fabric8ServiceInstanceMapper mapper,
KubernetesDiscoveryProperties discoveryProperties) {
- return new KubernetesServicesListSupplier(environment, kubernetesClient, mapper, discoveryProperties);
+ return new Fabric8ServicesListSupplier(environment, kubernetesClient, mapper, discoveryProperties);
}
}
diff --git a/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesServiceInstanceMapper.java b/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8ServiceInstanceMapper.java
similarity index 59%
rename from spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesServiceInstanceMapper.java
rename to spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8ServiceInstanceMapper.java
index 6c78f739..5fe0d5a1 100644
--- a/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesServiceInstanceMapper.java
+++ b/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8ServiceInstanceMapper.java
@@ -25,28 +25,30 @@ import io.fabric8.kubernetes.api.model.ObjectMeta;
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.api.model.ServicePort;
import io.fabric8.kubernetes.client.utils.Utils;
-import org.apache.commons.lang.StringUtils;
import org.springframework.cloud.kubernetes.commons.discovery.KubernetesDiscoveryProperties;
import org.springframework.cloud.kubernetes.commons.discovery.KubernetesServiceInstance;
+import org.springframework.cloud.kubernetes.commons.loadbalancer.KubernetesLoadBalancerProperties;
+import org.springframework.cloud.kubernetes.commons.loadbalancer.KubernetesServiceInstanceMapper;
/**
* Class for mapping Kubernetes Service object into {@link KubernetesServiceInstance}.
*
* @author Piotr Minkowski
*/
-public class KubernetesServiceInstanceMapper {
+public class Fabric8ServiceInstanceMapper implements KubernetesServiceInstanceMapper {
private final KubernetesLoadBalancerProperties properties;
private final KubernetesDiscoveryProperties discoveryProperties;
- KubernetesServiceInstanceMapper(KubernetesLoadBalancerProperties properties,
+ Fabric8ServiceInstanceMapper(KubernetesLoadBalancerProperties properties,
KubernetesDiscoveryProperties discoveryProperties) {
this.properties = properties;
this.discoveryProperties = discoveryProperties;
}
+ @Override
public KubernetesServiceInstance map(Service service) {
final ObjectMeta meta = service.getMetadata();
final List ports = service.getSpec().getPorts();
@@ -64,8 +66,10 @@ public class KubernetesServiceInstanceMapper {
if (port == null) {
return null;
}
- final String host = createHost(service);
- final boolean secure = isSecure(service, port);
+ final String host = KubernetesServiceInstanceMapper.createHost(service.getMetadata().getName(),
+ service.getMetadata().getNamespace(), properties.getClusterDomain());
+ final boolean secure = KubernetesServiceInstanceMapper.isSecure(service.getMetadata().getLabels(),
+ service.getMetadata().getAnnotations(), port.getName(), port.getPort());
return new KubernetesServiceInstance(meta.getUid(), meta.getName(), host, port.getPort(),
getServiceMetadata(service), secure);
}
@@ -74,55 +78,17 @@ public class KubernetesServiceInstanceMapper {
final Map serviceMetadata = new HashMap<>();
KubernetesDiscoveryProperties.Metadata metadataProps = this.discoveryProperties.getMetadata();
if (metadataProps.isAddLabels()) {
- Map labelMetadata = getMapWithPrefixedKeys(service.getMetadata().getLabels(),
- metadataProps.getLabelsPrefix());
+ Map labelMetadata = KubernetesServiceInstanceMapper
+ .getMapWithPrefixedKeys(service.getMetadata().getLabels(), metadataProps.getLabelsPrefix());
serviceMetadata.putAll(labelMetadata);
}
if (metadataProps.isAddAnnotations()) {
- Map annotationMetadata = getMapWithPrefixedKeys(service.getMetadata().getAnnotations(),
- metadataProps.getAnnotationsPrefix());
+ Map annotationMetadata = KubernetesServiceInstanceMapper.getMapWithPrefixedKeys(
+ service.getMetadata().getAnnotations(), metadataProps.getAnnotationsPrefix());
serviceMetadata.putAll(annotationMetadata);
}
return serviceMetadata;
}
- private Map getMapWithPrefixedKeys(Map map, String prefix) {
- if (map == null) {
- return new HashMap<>();
- }
- if (!org.springframework.util.StringUtils.hasText(prefix)) {
- return map;
- }
- final Map result = new HashMap<>();
- map.forEach((k, v) -> result.put(prefix + k, v));
- return result;
- }
-
- private boolean isSecure(Service service, ServicePort port) {
- if (service.getMetadata().getLabels() != null) {
- final String securedLabelValue = service.getMetadata().getLabels().getOrDefault("secured", "false");
- if (securedLabelValue.equals("true")) {
- return true;
- }
- }
-
- if (service.getMetadata().getAnnotations() != null) {
- final String securedAnnotationValue = service.getMetadata().getAnnotations().getOrDefault("secured",
- "false");
- if (securedAnnotationValue.equals("true")) {
- return true;
- }
- }
- return (port.getName() != null && port.getName().endsWith("https"))
- || port.getPort().toString().endsWith("443");
- }
-
- private String createHost(Service service) {
- return String.format("%s.%s.svc.%s", service.getMetadata().getName(),
- StringUtils.isNotBlank(service.getMetadata().getNamespace()) ? service.getMetadata().getNamespace()
- : "default",
- properties.getClusterDomain());
- }
-
}
diff --git a/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesServicesListSupplier.java b/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8ServicesListSupplier.java
similarity index 70%
rename from spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesServicesListSupplier.java
rename to spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8ServicesListSupplier.java
index 218cae38..c71b0c9e 100644
--- a/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesServicesListSupplier.java
+++ b/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8ServicesListSupplier.java
@@ -21,14 +21,14 @@ import java.util.List;
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.client.KubernetesClient;
-import org.apache.commons.lang.StringUtils;
import reactor.core.publisher.Flux;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.kubernetes.commons.discovery.KubernetesDiscoveryProperties;
+import org.springframework.cloud.kubernetes.commons.loadbalancer.KubernetesServicesListSupplier;
import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
-import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory;
import org.springframework.core.env.Environment;
+import org.springframework.util.StringUtils;
/**
* Implementation of {@link ServiceInstanceListSupplier} for load balancer in SERVICE
@@ -36,27 +36,14 @@ import org.springframework.core.env.Environment;
*
* @author Piotr Minkowski
*/
-public class KubernetesServicesListSupplier implements ServiceInstanceListSupplier {
-
- private final Environment environment;
+public class Fabric8ServicesListSupplier extends KubernetesServicesListSupplier {
private final KubernetesClient kubernetesClient;
- private final KubernetesDiscoveryProperties discoveryProperties;
-
- private final KubernetesServiceInstanceMapper mapper;
-
- KubernetesServicesListSupplier(Environment environment, KubernetesClient kubernetesClient,
- KubernetesServiceInstanceMapper mapper, KubernetesDiscoveryProperties discoveryProperties) {
- this.environment = environment;
+ Fabric8ServicesListSupplier(Environment environment, KubernetesClient kubernetesClient,
+ Fabric8ServiceInstanceMapper mapper, KubernetesDiscoveryProperties discoveryProperties) {
+ super(environment, mapper, discoveryProperties);
this.kubernetesClient = kubernetesClient;
- this.discoveryProperties = discoveryProperties;
- this.mapper = mapper;
- }
-
- @Override
- public String getServiceId() {
- return environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);
}
@Override
@@ -68,7 +55,7 @@ public class KubernetesServicesListSupplier implements ServiceInstanceListSuppli
services.forEach(service -> result.add(mapper.map(service)));
}
else {
- Service service = StringUtils.isNotBlank(this.kubernetesClient.getNamespace())
+ Service service = StringUtils.hasText(this.kubernetesClient.getNamespace())
? this.kubernetesClient.services().inNamespace(this.kubernetesClient.getNamespace())
.withName(this.getServiceId()).get()
: this.kubernetesClient.services().withName(this.getServiceId()).get();
diff --git a/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/resources/META-INF/spring.factories b/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/resources/META-INF/spring.factories
index 6b37e4b7..45f45201 100644
--- a/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/resources/META-INF/spring.factories
+++ b/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/resources/META-INF/spring.factories
@@ -1,2 +1,2 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-org.springframework.cloud.kubernetes.fabric8.loadbalancer.KubernetesLoadBalancerAutoConfiguration
+org.springframework.cloud.kubernetes.fabric8.loadbalancer.Fabric8LoadBalancerAutoConfiguration
diff --git a/spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesLoadBalancerAutoConfigurationTests.java b/spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8LoadBalancerAutoConfigurationTests.java
similarity index 77%
rename from spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesLoadBalancerAutoConfigurationTests.java
rename to spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8LoadBalancerAutoConfigurationTests.java
index 0d23a34a..20ea0426 100644
--- a/spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesLoadBalancerAutoConfigurationTests.java
+++ b/spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8LoadBalancerAutoConfigurationTests.java
@@ -28,7 +28,7 @@ import static org.assertj.core.api.Assertions.assertThat;
/**
* @author Thomas Vitale
*/
-class KubernetesLoadBalancerAutoConfigurationTests {
+class Fabric8LoadBalancerAutoConfigurationTests {
private ConfigurableApplicationContext context;
@@ -42,35 +42,35 @@ class KubernetesLoadBalancerAutoConfigurationTests {
@Test
void kubernetesLoadBalancerWhenKubernetesDisabledAndLoadBalancerDisabled() {
setup("spring.cloud.kubernetes.enabled=false", "spring.cloud.kubernetes.loadbalancer.enabled=false");
- assertThat(this.context.getBeanNamesForType(KubernetesServiceInstanceMapper.class)).isEmpty();
+ assertThat(this.context.getBeanNamesForType(Fabric8ServiceInstanceMapper.class)).isEmpty();
}
@Test
void kubernetesLoadBalancerWhenKubernetesDisabledAndLoadBalancerEnabled() {
setup("spring.cloud.kubernetes.enabled=false", "spring.cloud.kubernetes.loadbalancer.enabled=true");
- assertThat(this.context.getBeanNamesForType(KubernetesServiceInstanceMapper.class)).isEmpty();
+ assertThat(this.context.getBeanNamesForType(Fabric8ServiceInstanceMapper.class)).isEmpty();
}
@Test
void kubernetesLoadBalancerWhenKubernetesEnabledAndLoadBalancerEnabled() {
setup("spring.cloud.kubernetes.enabled=true", "spring.cloud.kubernetes.loadbalancer.enabled=true");
- assertThat(this.context.getBeanNamesForType(KubernetesServiceInstanceMapper.class)).hasSize(1);
+ assertThat(this.context.getBeanNamesForType(Fabric8ServiceInstanceMapper.class)).hasSize(1);
}
@Test
void kubernetesLoadBalancerWhenKubernetesEnabledAndLoadBalancerDisabled() {
setup("spring.cloud.kubernetes.enabled=true", "spring.cloud.kubernetes.loadbalancer.enabled=false");
- assertThat(this.context.getBeanNamesForType(KubernetesServiceInstanceMapper.class)).isEmpty();
+ assertThat(this.context.getBeanNamesForType(Fabric8ServiceInstanceMapper.class)).isEmpty();
}
@Test
void kubernetesLoadBalancerWhenDefaultProperties() {
setup();
- assertThat(this.context.getBeanNamesForType(KubernetesServiceInstanceMapper.class)).hasSize(1);
+ assertThat(this.context.getBeanNamesForType(Fabric8ServiceInstanceMapper.class)).hasSize(1);
}
private void setup(String... env) {
- this.context = new SpringApplicationBuilder(KubernetesLoadBalancerAutoConfiguration.class,
+ this.context = new SpringApplicationBuilder(Fabric8LoadBalancerAutoConfiguration.class,
KubernetesDiscoveryProperties.class).web(org.springframework.boot.WebApplicationType.NONE)
.properties(env).run();
}
diff --git a/spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesServiceInstanceMapperTests.java b/spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8ServiceInstanceMapperTests.java
similarity index 88%
rename from spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesServiceInstanceMapperTests.java
rename to spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8ServiceInstanceMapperTests.java
index c4a0ecea..a0fe172d 100644
--- a/spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesServiceInstanceMapperTests.java
+++ b/spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8ServiceInstanceMapperTests.java
@@ -31,15 +31,16 @@ import org.junit.jupiter.api.Test;
import org.springframework.cloud.kubernetes.commons.discovery.KubernetesDiscoveryProperties;
import org.springframework.cloud.kubernetes.commons.discovery.KubernetesServiceInstance;
+import org.springframework.cloud.kubernetes.commons.loadbalancer.KubernetesLoadBalancerProperties;
-class KubernetesServiceInstanceMapperTests {
+class Fabric8ServiceInstanceMapperTests {
@Test
public void testMapperSimple() {
KubernetesLoadBalancerProperties properties = new KubernetesLoadBalancerProperties();
KubernetesDiscoveryProperties discoveryProperties = new KubernetesDiscoveryProperties();
Service service = buildService("test", "abc", 8080, null, new HashMap<>());
- KubernetesServiceInstance instance = new KubernetesServiceInstanceMapper(properties, discoveryProperties)
+ KubernetesServiceInstance instance = new Fabric8ServiceInstanceMapper(properties, discoveryProperties)
.map(service);
Assertions.assertNotNull(instance);
Assertions.assertEquals("test", instance.getServiceId());
@@ -55,7 +56,7 @@ class KubernetesServiceInstanceMapperTests {
ports.add(new ServicePortBuilder().withPort(8080).withName("web").build());
ports.add(new ServicePortBuilder().withPort(9000).withName("http").build());
Service service = buildService("test", "abc", ports, new HashMap<>());
- KubernetesServiceInstance instance = new KubernetesServiceInstanceMapper(properties, discoveryProperties)
+ KubernetesServiceInstance instance = new Fabric8ServiceInstanceMapper(properties, discoveryProperties)
.map(service);
Assertions.assertNotNull(instance);
Assertions.assertEquals("test", instance.getServiceId());
@@ -68,7 +69,7 @@ class KubernetesServiceInstanceMapperTests {
KubernetesLoadBalancerProperties properties = new KubernetesLoadBalancerProperties();
KubernetesDiscoveryProperties discoveryProperties = new KubernetesDiscoveryProperties();
Service service = buildService("test", "abc", 443, null, new HashMap<>());
- KubernetesServiceInstance instance = new KubernetesServiceInstanceMapper(properties, discoveryProperties)
+ KubernetesServiceInstance instance = new Fabric8ServiceInstanceMapper(properties, discoveryProperties)
.map(service);
Assertions.assertNotNull(instance);
Assertions.assertEquals("test", instance.getServiceId());
@@ -83,7 +84,7 @@ class KubernetesServiceInstanceMapperTests {
List ports = new ArrayList<>();
ports.add(new ServicePortBuilder().withPort(443).build());
Service service = buildService("test", "abc", ports, null, null);
- KubernetesServiceInstance instance = new KubernetesServiceInstanceMapper(properties, discoveryProperties)
+ KubernetesServiceInstance instance = new Fabric8ServiceInstanceMapper(properties, discoveryProperties)
.map(service);
Assertions.assertNotNull(instance);
Assertions.assertEquals("test", instance.getServiceId());
@@ -99,7 +100,7 @@ class KubernetesServiceInstanceMapperTests {
labels.put("secured", "true");
labels.put("label1", "123");
Service service = buildService("test", "abc", 8080, null, labels);
- KubernetesServiceInstance instance = new KubernetesServiceInstanceMapper(properties, discoveryProperties)
+ KubernetesServiceInstance instance = new Fabric8ServiceInstanceMapper(properties, discoveryProperties)
.map(service);
Assertions.assertNotNull(instance);
Assertions.assertEquals("test", instance.getServiceId());
diff --git a/spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesServiceListSupplierTests.java b/spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesServiceListSupplierTests.java
index 7d04ab68..ba8a6a5a 100644
--- a/spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesServiceListSupplierTests.java
+++ b/spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/KubernetesServiceListSupplierTests.java
@@ -38,6 +38,7 @@ import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.kubernetes.commons.discovery.KubernetesDiscoveryProperties;
import org.springframework.cloud.kubernetes.commons.discovery.KubernetesServiceInstance;
+import org.springframework.cloud.kubernetes.commons.loadbalancer.KubernetesServicesListSupplier;
import org.springframework.core.env.Environment;
import static org.mockito.ArgumentMatchers.any;
@@ -50,7 +51,7 @@ class KubernetesServiceListSupplierTests {
Environment environment;
@Mock
- KubernetesServiceInstanceMapper mapper;
+ Fabric8ServiceInstanceMapper mapper;
@Mock
KubernetesClient client;
@@ -76,7 +77,7 @@ class KubernetesServiceListSupplierTests {
when(this.serviceOperation.inNamespace("test")).thenReturn(namespaceOperation);
when(this.namespaceOperation.withName("test-service")).thenReturn(this.serviceResource);
when(this.serviceResource.get()).thenReturn(buildService("test-service", 8080));
- KubernetesServicesListSupplier supplier = new KubernetesServicesListSupplier(environment, client, mapper,
+ KubernetesServicesListSupplier supplier = new Fabric8ServicesListSupplier(environment, client, mapper,
new KubernetesDiscoveryProperties());
List instances = supplier.get().blockFirst();
assert instances != null;
@@ -95,7 +96,7 @@ class KubernetesServiceListSupplierTests {
when(this.multiDeletable.list()).thenReturn(serviceList);
KubernetesDiscoveryProperties discoveryProperties = new KubernetesDiscoveryProperties();
discoveryProperties.setAllNamespaces(true);
- KubernetesServicesListSupplier supplier = new KubernetesServicesListSupplier(environment, client, mapper,
+ KubernetesServicesListSupplier supplier = new Fabric8ServicesListSupplier(environment, client, mapper,
discoveryProperties);
List instances = supplier.get().blockFirst();
assert instances != null;