diff --git a/README.adoc b/README.adoc
index ad62d7a3..eb9e5a3e 100644
--- a/README.adoc
+++ b/README.adoc
@@ -1096,11 +1096,16 @@ as the code of the project relies on the
https://github.com/fabric8io/kubernetes-client[Fabric8 Kubernetes Java client], which is a fluent DSL that can
communicate by using `http` protocol to the REST API of the Kubernetes Server.
-To disable the integration with Kubernetes you can set `spring.cloud.kubernetes.enabled` to `false`. Please be aware that when `spring-cloud-kubernetes-config` is on the classpath,
-`spring.cloud.kubernetes.enabled` should be set in `bootstrap.{properties|yml}` (or the profile specific one), otherwise it should be in `application.{properties|yml}` (or the profile specific one).
-Because of the way we set up a specific `EnvironmentPostProcessor` in `spring-cloud-kubernetes-config`, you also need to disable that processor via a system property (or an environment variable), for example you could start
-your application via `-DSPRING_CLOUD_KUBERNETES_ENABLED=false` (any form of relaxed binding will work too).
-Also note that these properties: `spring.cloud.kubernetes.config.enabled` and `spring.cloud.kubernetes.secrets.enabled` only take effect when set in `bootstrap.{properties|yml}`
+Kubernetes awareness is based on Spring Boot API, specifically on https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/condition/ConditionalOnCloudPlatform.html[ConditionalOnCloudPlatform].
+That property will auto-detect if your application is currently deployed in kubernetes or not. It is possible to override
+that setting via `spring.main.cloud-platform`.
+
+For example, if you need to test some features, but do not want to deploy to a cluster, it is enough to set the:
+`spring.main.cloud-platform=KUBERNETES`. This will make `spring-cloud-kubernetes` act as-if it is deployed in a real cluster.
+Be aware that when `spring-cloud-kubernetes-config` is on the classpath, `spring.main.cloud-platform` should be set in `bootstrap.{properties|yml}`
+(or the profile specific one), otherwise it should be in `application.{properties|yml}` (or the profile specific one).
+Also note that these properties: `spring.cloud.kubernetes.config.enabled` and `spring.cloud.kubernetes.secrets.enabled`
+only take effect when set in `bootstrap.{properties|yml}`.
=== Kubernetes Profile Autoconfiguration
diff --git a/docs/src/main/asciidoc/_configprops.adoc b/docs/src/main/asciidoc/_configprops.adoc
index 1d56f633..5043f759 100644
--- a/docs/src/main/asciidoc/_configprops.adoc
+++ b/docs/src/main/asciidoc/_configprops.adoc
@@ -73,7 +73,6 @@
|spring.cloud.kubernetes.discovery.primary-port-name | | If set then the port with a given name is used as primary when multiple ports are defined for a service.
|spring.cloud.kubernetes.discovery.service-labels | | If set, then only the services matching these labels will be fetched from the Kubernetes API server.
|spring.cloud.kubernetes.discovery.wait-cache-ready | `true` |
-|spring.cloud.kubernetes.enabled | `true` | Whether to enable Kubernetes integration.
|spring.cloud.kubernetes.leader.auto-startup | `true` | Should leader election be started automatically on startup. Default: true
|spring.cloud.kubernetes.leader.config-map-name | `leaders` | Kubernetes ConfigMap where leaders information will be stored. Default: leaders
|spring.cloud.kubernetes.leader.enabled | `true` | Should leader election be enabled. Default: true
diff --git a/docs/src/main/asciidoc/kubernetes-awareness.adoc b/docs/src/main/asciidoc/kubernetes-awareness.adoc
index b74262d2..815ef54b 100644
--- a/docs/src/main/asciidoc/kubernetes-awareness.adoc
+++ b/docs/src/main/asciidoc/kubernetes-awareness.adoc
@@ -1,6 +1,6 @@
== Kubernetes Ecosystem Awareness
-All of the features described earlier in this guide work equally well, regardless of whether your application is running inside
+All features described earlier in this guide work equally well, regardless of whether your application is running inside
Kubernetes. This is really helpful for development and troubleshooting.
From a development point of view, this lets you start your Spring Boot application and debug one
of the modules that is part of this project. You need not deploy it in Kubernetes,
@@ -8,11 +8,22 @@ as the code of the project relies on the
https://github.com/fabric8io/kubernetes-client[Fabric8 Kubernetes Java client], which is a fluent DSL that can
communicate by using `http` protocol to the REST API of the Kubernetes Server.
-To disable the integration with Kubernetes you can set `spring.cloud.kubernetes.enabled` to `false`. Please be aware that when `spring-cloud-kubernetes-config` is on the classpath,
-`spring.cloud.kubernetes.enabled` should be set in `bootstrap.{properties|yml}` (or the profile specific one), otherwise it should be in `application.{properties|yml}` (or the profile specific one).
-Because of the way we set up a specific `EnvironmentPostProcessor` in `spring-cloud-kubernetes-config`, you also need to disable that processor via a system property (or an environment variable), for example you could start
-your application via `-DSPRING_CLOUD_KUBERNETES_ENABLED=false` (any form of relaxed binding will work too).
-Also note that these properties: `spring.cloud.kubernetes.config.enabled` and `spring.cloud.kubernetes.secrets.enabled` only take effect when set in `bootstrap.{properties|yml}`
+Kubernetes awareness is based on Spring Boot API, specifically on https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/condition/ConditionalOnCloudPlatform.html[ConditionalOnCloudPlatform].
+That property will auto-detect if your application is currently deployed in kubernetes or not. It is possible to override
+that setting via `spring.main.cloud-platform`.
+
+For example, if you need to test some features, but do not want to deploy to a cluster, it is enough to set the:
+`spring.main.cloud-platform=KUBERNETES`. This will make `spring-cloud-kubernetes` act as-if it is deployed in a real cluster.
+Be aware that when `spring-cloud-kubernetes-config` is on the classpath, `spring.main.cloud-platform` should be set in `bootstrap.{properties|yml}`
+(or the profile specific one), otherwise it should be in `application.{properties|yml}` (or the profile specific one).
+Also note that these properties: `spring.cloud.kubernetes.config.enabled` and `spring.cloud.kubernetes.secrets.enabled`
+only take effect when set in `bootstrap.{properties|yml}`.
+
+=== Functional changes since 2.1.x version
+
+In versions prior to `2.1.x`, Kubernetes awareness was implemented using `spring.cloud.kubernetes.enabled` property. This
+property was removed and is un-supported. Instead, we use Spring Boot API: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/condition/ConditionalOnCloudPlatform.html[ConditionalOnCloudPlatform].
+If it is needed to explicitly enable or disable this awareness, use `spring.main.cloud-platform=NONE/KUBERNETES`.
=== Kubernetes Profile Autoconfiguration
diff --git a/spring-cloud-kubernetes-client-autoconfig/src/main/java/org/springframework/cloud/kubernetes/client/KubernetesClientActuatorConfiguration.java b/spring-cloud-kubernetes-client-autoconfig/src/main/java/org/springframework/cloud/kubernetes/client/KubernetesClientActuatorConfiguration.java
index 755c50bd..eae07764 100644
--- a/spring-cloud-kubernetes-client-autoconfig/src/main/java/org/springframework/cloud/kubernetes/client/KubernetesClientActuatorConfiguration.java
+++ b/spring-cloud-kubernetes-client-autoconfig/src/main/java/org/springframework/cloud/kubernetes/client/KubernetesClientActuatorConfiguration.java
@@ -22,7 +22,8 @@ import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnable
import org.springframework.boot.actuate.autoconfigure.info.ConditionalOnEnabledInfoContributor;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
-import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesEnabled;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
+import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.cloud.kubernetes.commons.PodUtils;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -32,7 +33,7 @@ import org.springframework.context.annotation.Configuration;
*/
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(HealthIndicator.class)
-@ConditionalOnKubernetesEnabled
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
public class KubernetesClientActuatorConfiguration {
@Bean
diff --git a/spring-cloud-kubernetes-client-autoconfig/src/main/java/org/springframework/cloud/kubernetes/client/KubernetesClientAutoConfiguration.java b/spring-cloud-kubernetes-client-autoconfig/src/main/java/org/springframework/cloud/kubernetes/client/KubernetesClientAutoConfiguration.java
index a652f037..f9b839d4 100644
--- a/spring-cloud-kubernetes-client-autoconfig/src/main/java/org/springframework/cloud/kubernetes/client/KubernetesClientAutoConfiguration.java
+++ b/spring-cloud-kubernetes-client-autoconfig/src/main/java/org/springframework/cloud/kubernetes/client/KubernetesClientAutoConfiguration.java
@@ -20,8 +20,9 @@ import io.kubernetes.client.openapi.ApiClient;
import io.kubernetes.client.openapi.apis.CoreV1Api;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesEnabled;
+import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.cloud.kubernetes.commons.KubernetesClientProperties;
import org.springframework.cloud.kubernetes.commons.KubernetesCommonsAutoConfiguration;
import org.springframework.cloud.kubernetes.commons.KubernetesNamespaceProvider;
@@ -35,7 +36,7 @@ import static org.springframework.cloud.kubernetes.client.KubernetesClientUtils.
* @author Ryan Baxter
*/
@Configuration
-@ConditionalOnKubernetesEnabled
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
@AutoConfigureAfter(KubernetesCommonsAutoConfiguration.class)
public class KubernetesClientAutoConfiguration {
diff --git a/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/KubernetesClientActuatorTests.java b/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/KubernetesClientActuatorTests.java
index 9233f30e..2e6ed1a1 100644
--- a/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/KubernetesClientActuatorTests.java
+++ b/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/KubernetesClientActuatorTests.java
@@ -35,9 +35,11 @@ import org.springframework.test.web.reactive.server.WebTestClient;
public class KubernetesClientActuatorTests {
@Nested
- @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class, properties = {
- "management.health.kubernetes.enabled=false", "management.endpoint.health.show-details=always",
- "management.endpoint.health.show-components=always", "management.endpoints.web.exposure.include=health" })
+ @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
+ properties = { "spring.main.cloud-platform=KUBERNETES", "management.health.kubernetes.enabled=false",
+ "management.endpoint.health.show-details=always",
+ "management.endpoint.health.show-components=always",
+ "management.endpoints.web.exposure.include=health" })
public class DisabledHealthTest {
@Autowired
@@ -62,9 +64,11 @@ public class KubernetesClientActuatorTests {
}
@Nested
- @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class, properties = {
- "management.health.kubernetes.enabled=true", "management.endpoint.health.show-details=always",
- "management.endpoint.health.show-components=always", "management.endpoints.web.exposure.include=health" })
+ @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
+ properties = { "spring.main.cloud-platform=KUBERNETES", "management.health.kubernetes.enabled=true",
+ "management.endpoint.health.show-details=always",
+ "management.endpoint.health.show-components=always",
+ "management.endpoints.web.exposure.include=health" })
public class EnabledHealthTest {
@Autowired
diff --git a/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/KubernetesClientHealthIndicatorInsideTests.java b/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/KubernetesClientHealthIndicatorInsideTests.java
index ce750c0b..910e3857 100644
--- a/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/KubernetesClientHealthIndicatorInsideTests.java
+++ b/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/KubernetesClientHealthIndicatorInsideTests.java
@@ -28,7 +28,8 @@ import static org.assertj.core.api.Assertions.assertThat;
/**
* @author wind57
*/
-@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
+ properties = "spring.main.cloud-platform=KUBERNETES")
public class KubernetesClientHealthIndicatorInsideTests {
@Autowired
diff --git a/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/KubernetesClientInfoContributorInsideTests.java b/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/KubernetesClientInfoContributorInsideTests.java
index 1595b134..5cb9437f 100644
--- a/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/KubernetesClientInfoContributorInsideTests.java
+++ b/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/KubernetesClientInfoContributorInsideTests.java
@@ -28,7 +28,8 @@ import static org.assertj.core.api.Assertions.assertThat;
/**
* @author wind57
*/
-@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
+ properties = "spring.main.cloud-platform=KUBERNETES")
public class KubernetesClientInfoContributorInsideTests {
@Autowired
diff --git a/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/default_api/KubernetesClientDefaultApiClientTests.java b/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/default_api/KubernetesClientDefaultApiClientTests.java
index e83ebc16..0d4eaf57 100644
--- a/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/default_api/KubernetesClientDefaultApiClientTests.java
+++ b/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/default_api/KubernetesClientDefaultApiClientTests.java
@@ -50,7 +50,10 @@ class KubernetesClientDefaultApiClientTests {
private static final String USER_AGENT = "spring.cloud.kubernetes.client.userAgent=non-default";
- @SpringBootTest(classes = KubernetesClientDefaultApiClientTests.App.class, properties = DISABLE_INFORMER)
+ private static final String ENABLED_K8S = "spring.main.cloud-platform=KUBERNETES";
+
+ @SpringBootTest(classes = KubernetesClientDefaultApiClientTests.App.class,
+ properties = { DISABLE_INFORMER, ENABLED_K8S })
@Nested
class DefaultApiClientNotSameAsApiClient {
@@ -72,7 +75,8 @@ class KubernetesClientDefaultApiClientTests {
}
- @SpringBootTest(classes = KubernetesClientDefaultApiClientTests.App.class, properties = DISABLE_INFORMER)
+ @SpringBootTest(classes = KubernetesClientDefaultApiClientTests.App.class,
+ properties = { DISABLE_INFORMER, ENABLED_K8S })
@Nested
class ApiClientUserAgentDefaultHeader {
@@ -94,7 +98,7 @@ class KubernetesClientDefaultApiClientTests {
}
@SpringBootTest(classes = KubernetesClientDefaultApiClientTests.App.class,
- properties = { DISABLE_INFORMER, USER_AGENT })
+ properties = { DISABLE_INFORMER, USER_AGENT, ENABLED_K8S })
@Nested
class ApiClientUserAgentNonDefaultHeader {
diff --git a/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/profile/KubernetesClientProfileEnvironmentPostProcessorTests.java b/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/profile/KubernetesClientProfileEnvironmentPostProcessorTests.java
index ec3b4329..fcff0ef7 100644
--- a/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/profile/KubernetesClientProfileEnvironmentPostProcessorTests.java
+++ b/spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/profile/KubernetesClientProfileEnvironmentPostProcessorTests.java
@@ -31,7 +31,8 @@ import static org.springframework.cloud.kubernetes.commons.profile.AbstractKuber
/**
* @author Thomas Vitale
*/
-@SpringBootTest(properties = { ENV_SERVICE_HOST + "=10.0.0.1", ENV_SERVICE_PORT + "=80" }, classes = { App.class })
+@SpringBootTest(properties = { ENV_SERVICE_HOST + "=10.0.0.1", ENV_SERVICE_PORT + "=80",
+ "spring.main.cloud-platform=KUBERNETES" }, classes = { App.class })
class KubernetesClientProfileEnvironmentPostProcessorTests {
@Autowired
diff --git a/spring-cloud-kubernetes-client-config/src/main/java/org/springframework/cloud/kubernetes/client/config/KubernetesClientBootstrapConfiguration.java b/spring-cloud-kubernetes-client-config/src/main/java/org/springframework/cloud/kubernetes/client/config/KubernetesClientBootstrapConfiguration.java
index 564515a5..c7966c67 100644
--- a/spring-cloud-kubernetes-client-config/src/main/java/org/springframework/cloud/kubernetes/client/config/KubernetesClientBootstrapConfiguration.java
+++ b/spring-cloud-kubernetes-client-config/src/main/java/org/springframework/cloud/kubernetes/client/config/KubernetesClientBootstrapConfiguration.java
@@ -23,7 +23,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatfo
import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.cloud.kubernetes.client.KubernetesClientAutoConfiguration;
import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesConfigEnabled;
-import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesEnabled;
import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesSecretsEnabled;
import org.springframework.cloud.kubernetes.commons.KubernetesCommonsAutoConfiguration;
import org.springframework.cloud.kubernetes.commons.KubernetesNamespaceProvider;
@@ -38,7 +37,6 @@ import org.springframework.context.annotation.Import;
* @author Ryan Baxter
*/
@Configuration(proxyBeanMethods = false)
-@ConditionalOnKubernetesEnabled
@AutoConfigureAfter(KubernetesBootstrapConfiguration.class)
@Import({ KubernetesCommonsAutoConfiguration.class, KubernetesClientAutoConfiguration.class })
@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
diff --git a/spring-cloud-kubernetes-client-config/src/test/java/org/springframework/cloud/kubernetes/client/config/KubernetesClientBootstrapConfigurationTests.java b/spring-cloud-kubernetes-client-config/src/test/java/org/springframework/cloud/kubernetes/client/config/KubernetesClientBootstrapConfigurationTests.java
index 5d7b0810..0d66f80a 100644
--- a/spring-cloud-kubernetes-client-config/src/test/java/org/springframework/cloud/kubernetes/client/config/KubernetesClientBootstrapConfigurationTests.java
+++ b/spring-cloud-kubernetes-client-config/src/test/java/org/springframework/cloud/kubernetes/client/config/KubernetesClientBootstrapConfigurationTests.java
@@ -37,8 +37,7 @@ public class KubernetesClientBootstrapConfigurationTests {
}
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class,
- properties = { "spring.cloud.kubernetes.enabled=false", "kubernetes.informer.enabled=false",
- "kubernetes.manifests.enabled=false" })
+ properties = { "kubernetes.informer.enabled=false", "kubernetes.manifests.enabled=false" })
@Nested
class KubernetesDisabled {
@@ -158,7 +157,7 @@ public class KubernetesClientBootstrapConfigurationTests {
// tests that @ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES) has the desired
// effect, meaning when it is disabled, no property source bean is present
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class,
- properties = { "kubernetes.informer.enabled=false" })
+ properties = { "kubernetes.manifests.enabled=false" })
@Nested
class KubernetesClientBootstrapConfigurationNotInsideK8s {
diff --git a/spring-cloud-kubernetes-client-config/src/test/java/org/springframework/cloud/kubernetes/client/config/reload/KubernetesClientConfigReloadAutoConfigurationTest.java b/spring-cloud-kubernetes-client-config/src/test/java/org/springframework/cloud/kubernetes/client/config/reload/KubernetesClientConfigReloadAutoConfigurationTest.java
index 3bf99275..48743847 100644
--- a/spring-cloud-kubernetes-client-config/src/test/java/org/springframework/cloud/kubernetes/client/config/reload/KubernetesClientConfigReloadAutoConfigurationTest.java
+++ b/spring-cloud-kubernetes-client-config/src/test/java/org/springframework/cloud/kubernetes/client/config/reload/KubernetesClientConfigReloadAutoConfigurationTest.java
@@ -113,7 +113,7 @@ public class KubernetesClientConfigReloadAutoConfigurationTest {
@Test
public void kubernetesWatchersWhenKubernetesDisabled() throws Exception {
- setup("spring.cloud.kubernetes.enabled=false");
+ setup();
assertThat(context.containsBean("configMapPropertySourceLocator")).isFalse();
assertThat(context.containsBean("secretsPropertySourceLocator")).isFalse();
assertThat(context.containsBean("configMapPropertyChangePollingWatcher")).isFalse();
diff --git a/spring-cloud-kubernetes-client-discovery/src/main/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientAutoConfiguration.java b/spring-cloud-kubernetes-client-discovery/src/main/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientAutoConfiguration.java
index 921e35d7..550a7b36 100644
--- a/spring-cloud-kubernetes-client-discovery/src/main/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientAutoConfiguration.java
+++ b/spring-cloud-kubernetes-client-discovery/src/main/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientAutoConfiguration.java
@@ -33,7 +33,9 @@ import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.client.CommonsClientAutoConfiguration;
import org.springframework.cloud.client.ConditionalOnBlockingDiscoveryEnabled;
@@ -41,7 +43,6 @@ import org.springframework.cloud.client.ConditionalOnDiscoveryEnabled;
import org.springframework.cloud.client.ConditionalOnDiscoveryHealthIndicatorEnabled;
import org.springframework.cloud.client.discovery.simple.SimpleDiscoveryClientAutoConfiguration;
import org.springframework.cloud.kubernetes.client.KubernetesClientAutoConfiguration;
-import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesEnabled;
import org.springframework.cloud.kubernetes.commons.KubernetesNamespaceProvider;
import org.springframework.cloud.kubernetes.commons.PodUtils;
import org.springframework.cloud.kubernetes.commons.discovery.KubernetesDiscoveryClientHealthIndicatorInitializer;
@@ -53,7 +54,7 @@ import org.springframework.core.env.Environment;
@Configuration(proxyBeanMethods = false)
@ConditionalOnKubernetesDiscoveryEnabled
-@ConditionalOnKubernetesEnabled
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
@AutoConfigureBefore({ SimpleDiscoveryClientAutoConfiguration.class, CommonsClientAutoConfiguration.class,
// So that CatalogSharedInformerFactory can be processed in prior to the default
// factory
diff --git a/spring-cloud-kubernetes-client-discovery/src/main/java/org/springframework/cloud/kubernetes/client/discovery/reactive/KubernetesInformerReactiveDiscoveryClientAutoConfiguration.java b/spring-cloud-kubernetes-client-discovery/src/main/java/org/springframework/cloud/kubernetes/client/discovery/reactive/KubernetesInformerReactiveDiscoveryClientAutoConfiguration.java
index 132c0787..0253a4a1 100644
--- a/spring-cloud-kubernetes-client-discovery/src/main/java/org/springframework/cloud/kubernetes/client/discovery/reactive/KubernetesInformerReactiveDiscoveryClientAutoConfiguration.java
+++ b/spring-cloud-kubernetes-client-discovery/src/main/java/org/springframework/cloud/kubernetes/client/discovery/reactive/KubernetesInformerReactiveDiscoveryClientAutoConfiguration.java
@@ -30,7 +30,9 @@ import io.kubernetes.client.spring.extended.controller.annotation.KubernetesInfo
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.cloud.client.ConditionalOnDiscoveryEnabled;
import org.springframework.cloud.client.ConditionalOnDiscoveryHealthIndicatorEnabled;
import org.springframework.cloud.client.ConditionalOnReactiveDiscoveryEnabled;
@@ -43,7 +45,6 @@ import org.springframework.cloud.client.discovery.simple.reactive.SimpleReactive
import org.springframework.cloud.kubernetes.client.KubernetesClientPodUtils;
import org.springframework.cloud.kubernetes.client.discovery.ConditionalOnKubernetesDiscoveryEnabled;
import org.springframework.cloud.kubernetes.client.discovery.KubernetesDiscoveryClientAutoConfiguration;
-import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesEnabled;
import org.springframework.cloud.kubernetes.commons.KubernetesNamespaceProvider;
import org.springframework.cloud.kubernetes.commons.discovery.KubernetesDiscoveryProperties;
import org.springframework.context.annotation.Bean;
@@ -56,7 +57,7 @@ import org.springframework.context.annotation.Configuration;
@Configuration(proxyBeanMethods = false)
@ConditionalOnDiscoveryEnabled
@ConditionalOnReactiveDiscoveryEnabled
-@ConditionalOnKubernetesEnabled
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
@ConditionalOnKubernetesDiscoveryEnabled
@AutoConfigureBefore({ SimpleReactiveDiscoveryClientAutoConfiguration.class,
ReactiveCommonsClientAutoConfiguration.class })
diff --git a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientAutoConfigurationTests.java b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientAutoConfigurationTests.java
index 3e39318e..2a06a8a2 100644
--- a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientAutoConfigurationTests.java
+++ b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientAutoConfigurationTests.java
@@ -48,8 +48,9 @@ import static org.mockito.Mockito.when;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
- properties = { "spring.cloud.kubernetes.discovery.cacheLoadingTimeoutSeconds=5",
- "spring.cloud.config.enabled=false", "spring.cloud.kubernetes.discovery.waitCacheReady=false" })
+ properties = { "spring.main.cloud-platform=KUBERNETES",
+ "spring.cloud.kubernetes.discovery.cacheLoadingTimeoutSeconds=5", "spring.cloud.config.enabled=false",
+ "spring.cloud.kubernetes.discovery.waitCacheReady=false" })
public class KubernetesDiscoveryClientAutoConfigurationTests {
@Autowired(required = false)
diff --git a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests.java b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests.java
index 4315c04c..3c506e43 100644
--- a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests.java
+++ b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests.java
@@ -68,8 +68,8 @@ public class KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests {
@Test
public void onWhenRequested() throws Exception {
setup("server.port=7000", "spring.cloud.config.discovery.enabled=true",
- "spring.cloud.kubernetes.discovery.enabled:true", "spring.cloud.kubernetes.enabled:true",
- "spring.application.name:test", "spring.cloud.config.discovery.service-id:configserver");
+ "spring.cloud.kubernetes.discovery.enabled:true", "spring.application.name:test",
+ "spring.cloud.config.discovery.service-id:configserver");
assertEquals(1, this.context.getParent().getBeanNamesForType(DiscoveryClient.class).length);
DiscoveryClient client = this.context.getParent().getBean(DiscoveryClient.class);
diff --git a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/reactive/KubernetesInformerReactiveDiscoveryClientAutoConfigurationTests.java b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/reactive/KubernetesInformerReactiveDiscoveryClientAutoConfigurationTests.java
index a6a64bc0..15b78270 100644
--- a/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/reactive/KubernetesInformerReactiveDiscoveryClientAutoConfigurationTests.java
+++ b/spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/reactive/KubernetesInformerReactiveDiscoveryClientAutoConfigurationTests.java
@@ -51,9 +51,9 @@ import static org.mockito.Mockito.when;
*/
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
- properties = { "spring.cloud.kubernetes.discovery.cacheLoadingTimeoutSeconds=5",
- "spring.cloud.config.enabled=false", "spring.cloud.kubernetes.discovery.waitCacheReady=false",
- "spring.main.web-application-type=reactive" })
+ properties = { "spring.main.cloud-platform=KUBERNETES",
+ "spring.cloud.kubernetes.discovery.cacheLoadingTimeoutSeconds=5", "spring.cloud.config.enabled=false",
+ "spring.cloud.kubernetes.discovery.waitCacheReady=false", "spring.main.web-application-type=reactive" })
public class KubernetesInformerReactiveDiscoveryClientAutoConfigurationTests {
@Autowired(required = false)
diff --git a/spring-cloud-kubernetes-client-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/client/loadbalancer/KubernetesClientLoadBalancerAutoConfiguration.java b/spring-cloud-kubernetes-client-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/client/loadbalancer/KubernetesClientLoadBalancerAutoConfiguration.java
index 6d9f4561..0f54c87a 100644
--- a/spring-cloud-kubernetes-client-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/client/loadbalancer/KubernetesClientLoadBalancerAutoConfiguration.java
+++ b/spring-cloud-kubernetes-client-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/client/loadbalancer/KubernetesClientLoadBalancerAutoConfiguration.java
@@ -16,9 +16,10 @@
package org.springframework.cloud.kubernetes.client.loadbalancer;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.cloud.CloudPlatform;
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;
@@ -30,7 +31,7 @@ import org.springframework.context.annotation.Configuration;
*/
@Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(KubernetesLoadBalancerProperties.class)
-@ConditionalOnKubernetesEnabled
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
@ConditionalOnProperty(value = "spring.cloud.kubernetes.loadbalancer.enabled", matchIfMissing = true)
@LoadBalancerClients(defaultConfiguration = KubernetesClientLoadBalancerClientConfiguration.class)
public class KubernetesClientLoadBalancerAutoConfiguration {
diff --git a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/ConditionalOnKubernetesEnabled.java b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/ConditionalOnKubernetesEnabled.java
deleted file mode 100644
index b88ee4dc..00000000
--- a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/ConditionalOnKubernetesEnabled.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2019-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;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-
-/**
- * Provides a more succinct conditional spring.cloud.kubernetes.enabled.
- *
- * @author Tim Ysewyn
- * @since 2.2.0
- */
-@Target(ElementType.TYPE)
-@Retention(RetentionPolicy.RUNTIME)
-@Documented
-@Inherited
-@ConditionalOnProperty(value = "spring.cloud.kubernetes.enabled", matchIfMissing = true)
-public @interface ConditionalOnKubernetesEnabled {
-
-}
diff --git a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/KubernetesCommonsAutoConfiguration.java b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/KubernetesCommonsAutoConfiguration.java
index 22bc4420..523d6e78 100644
--- a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/KubernetesCommonsAutoConfiguration.java
+++ b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/KubernetesCommonsAutoConfiguration.java
@@ -16,6 +16,8 @@
package org.springframework.cloud.kubernetes.commons;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
+import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@@ -23,7 +25,7 @@ import org.springframework.context.annotation.Configuration;
* @author Ryan Baxter
*/
@Configuration(proxyBeanMethods = false)
-@ConditionalOnKubernetesEnabled
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
@EnableConfigurationProperties(KubernetesClientProperties.class)
public class KubernetesCommonsAutoConfiguration {
diff --git a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/ConditionalOnKubernetesAndConfigEnabled.java b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/ConditionalOnKubernetesAndConfigEnabled.java
index 0fc61677..75f5bccc 100644
--- a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/ConditionalOnKubernetesAndConfigEnabled.java
+++ b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/ConditionalOnKubernetesAndConfigEnabled.java
@@ -23,7 +23,9 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
+import org.springframework.boot.cloud.CloudPlatform;
+import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesConfigEnabled;
/**
* @author Haytham Mohamed
@@ -33,8 +35,8 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
-@ConditionalOnProperty(name = { "spring.cloud.kubernetes.config.enabled", "spring.cloud.kubernetes.enabled" },
- matchIfMissing = true)
+@ConditionalOnKubernetesConfigEnabled
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
public @interface ConditionalOnKubernetesAndConfigEnabled {
}
diff --git a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/ConditionalOnKubernetesConfigRetryEnabled.java b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/ConditionalOnKubernetesConfigRetryEnabled.java
index 40553ab1..07aca74f 100644
--- a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/ConditionalOnKubernetesConfigRetryEnabled.java
+++ b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/ConditionalOnKubernetesConfigRetryEnabled.java
@@ -23,9 +23,10 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesConfigEnabled;
-import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesEnabled;
/**
* {@link org.springframework.context.annotation.Conditional @Conditional} that only
@@ -38,7 +39,7 @@ import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesEnabl
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
-@ConditionalOnKubernetesEnabled
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
@ConditionalOnKubernetesConfigEnabled
@ConditionalOnKubernetesConfigFailFastEnabled
@ConditionalOnProperty(prefix = ConfigMapConfigProperties.PREFIX + ".retry", name = "enabled", havingValue = "true",
diff --git a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/ConditionalOnKubernetesSecretsRetryEnabled.java b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/ConditionalOnKubernetesSecretsRetryEnabled.java
index 41ab7e5c..8845c87c 100644
--- a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/ConditionalOnKubernetesSecretsRetryEnabled.java
+++ b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/ConditionalOnKubernetesSecretsRetryEnabled.java
@@ -23,8 +23,9 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesEnabled;
+import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesSecretsEnabled;
/**
@@ -38,7 +39,7 @@ import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesSecre
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
-@ConditionalOnKubernetesEnabled
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
@ConditionalOnKubernetesSecretsEnabled
@ConditionalOnKubernetesSecretsFailFastEnabled
@ConditionalOnProperty(prefix = SecretsConfigProperties.PREFIX + ".retry", name = "enabled", havingValue = "true",
diff --git a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/KubernetesBootstrapConfiguration.java b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/KubernetesBootstrapConfiguration.java
index 8e2a972d..477562fd 100644
--- a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/KubernetesBootstrapConfiguration.java
+++ b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/KubernetesBootstrapConfiguration.java
@@ -20,8 +20,9 @@ import org.aspectj.lang.annotation.Aspect;
import org.springframework.boot.autoconfigure.aop.AopAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
+import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesEnabled;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@@ -36,7 +37,7 @@ import org.springframework.retry.policy.NeverRetryPolicy;
* @author Isik Erhan
*/
@Configuration(proxyBeanMethods = false)
-@ConditionalOnKubernetesEnabled
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
@EnableConfigurationProperties({ ConfigMapConfigProperties.class, SecretsConfigProperties.class })
public class KubernetesBootstrapConfiguration {
diff --git a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/profile/AbstractKubernetesProfileEnvironmentPostProcessor.java b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/profile/AbstractKubernetesProfileEnvironmentPostProcessor.java
index b0a04233..8bba05fd 100644
--- a/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/profile/AbstractKubernetesProfileEnvironmentPostProcessor.java
+++ b/spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/profile/AbstractKubernetesProfileEnvironmentPostProcessor.java
@@ -20,6 +20,7 @@ import java.util.Arrays;
import java.util.Collections;
import org.springframework.boot.SpringApplication;
+import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor;
import org.springframework.boot.env.EnvironmentPostProcessor;
import org.springframework.boot.logging.DeferredLog;
@@ -58,12 +59,10 @@ public abstract class AbstractKubernetesProfileEnvironmentPostProcessor implemen
application.addInitializers(ctx -> LOG.replayTo(AbstractKubernetesProfileEnvironmentPostProcessor.class));
- boolean kubernetesEnabled = environment.getProperty("spring.cloud.kubernetes.enabled", Boolean.class, true);
- if (!kubernetesEnabled) {
- return;
+ if (CloudPlatform.KUBERNETES.isActive(environment)) {
+ addNamespaceFromServiceAccountFile(environment);
+ addKubernetesProfileIfMissing(environment);
}
- addNamespaceFromServiceAccountFile(environment);
- addKubernetesProfileIfMissing(environment);
}
protected abstract boolean isInsideKubernetes(Environment environment);
diff --git a/spring-cloud-kubernetes-commons/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-cloud-kubernetes-commons/src/main/resources/META-INF/additional-spring-configuration-metadata.json
index 16990084..30ccf027 100644
--- a/spring-cloud-kubernetes-commons/src/main/resources/META-INF/additional-spring-configuration-metadata.json
+++ b/spring-cloud-kubernetes-commons/src/main/resources/META-INF/additional-spring-configuration-metadata.json
@@ -125,12 +125,6 @@
"type": "java.time.Duration",
"description": "Logging interval",
"defaultValue": "20s"
- },
- {
- "name": "spring.cloud.kubernetes.enabled",
- "type": "java.lang.Boolean",
- "description": "Whether to enable Kubernetes integration.",
- "defaultValue": "true"
}
]
}
diff --git a/spring-cloud-kubernetes-commons/src/test/java/org/springframework/cloud/kubernetes/commons/KubernetesCommonsAutoConfigurationTests.java b/spring-cloud-kubernetes-commons/src/test/java/org/springframework/cloud/kubernetes/commons/KubernetesCommonsAutoConfigurationTests.java
index fca088cf..a49e85b1 100644
--- a/spring-cloud-kubernetes-commons/src/test/java/org/springframework/cloud/kubernetes/commons/KubernetesCommonsAutoConfigurationTests.java
+++ b/spring-cloud-kubernetes-commons/src/test/java/org/springframework/cloud/kubernetes/commons/KubernetesCommonsAutoConfigurationTests.java
@@ -33,7 +33,7 @@ import static org.assertj.core.api.Assertions.assertThat;
@ExtendWith(MockitoExtension.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE,
classes = KubernetesCommonsAutoConfigurationTests.App.class,
- properties = { "spring.cloud.kubernetes.client.password=mypassword",
+ properties = { "spring.main.cloud-platform=KUBERNETES", "spring.cloud.kubernetes.client.password=mypassword",
"spring.cloud.kubernetes.client.proxy-password=myproxypassword" })
public class KubernetesCommonsAutoConfigurationTests {
diff --git a/spring-cloud-kubernetes-commons/src/test/java/org/springframework/cloud/kubernetes/commons/config/KubernetesBootstrapConfigurationTests.java b/spring-cloud-kubernetes-commons/src/test/java/org/springframework/cloud/kubernetes/commons/config/KubernetesBootstrapConfigurationTests.java
index 1d41e7f0..376fa749 100644
--- a/spring-cloud-kubernetes-commons/src/test/java/org/springframework/cloud/kubernetes/commons/config/KubernetesBootstrapConfigurationTests.java
+++ b/spring-cloud-kubernetes-commons/src/test/java/org/springframework/cloud/kubernetes/commons/config/KubernetesBootstrapConfigurationTests.java
@@ -57,7 +57,7 @@ public class KubernetesBootstrapConfigurationTests {
}
@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = App.class,
- properties = { "spring.cloud.kubernetes.config.fail-fast=true" })
+ properties = { "spring.main.cloud-platform=KUBERNETES", "spring.cloud.kubernetes.config.fail-fast=true" })
@Nested
public class ConfigFailFastEnabled {
@@ -89,7 +89,7 @@ public class KubernetesBootstrapConfigurationTests {
}
@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = App.class,
- properties = { "spring.cloud.kubernetes.secrets.fail-fast=true" })
+ properties = { "spring.main.cloud-platform=KUBERNETES", "spring.cloud.kubernetes.secrets.fail-fast=true" })
@Nested
public class SecretsFailFastEnabled {
@@ -120,8 +120,9 @@ public class KubernetesBootstrapConfigurationTests {
}
- @SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = App.class, properties = {
- "spring.cloud.kubernetes.config.fail-fast=true", "spring.cloud.kubernetes.secrets.fail-fast=true" })
+ @SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = App.class,
+ properties = { "spring.main.cloud-platform=KUBERNETES", "spring.cloud.kubernetes.config.fail-fast=true",
+ "spring.cloud.kubernetes.secrets.fail-fast=true" })
@Nested
public class ConfigAndSecretsFailFastEnabledWithDefaultRetryConfiguration {
@@ -166,7 +167,7 @@ public class KubernetesBootstrapConfigurationTests {
}
@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = App.class,
- properties = { "spring.cloud.kubernetes.config.fail-fast=true",
+ properties = { "spring.main.cloud-platform=KUBERNETES", "spring.cloud.kubernetes.config.fail-fast=true",
"spring.cloud.kubernetes.config.retry.max-attempts=3",
"spring.cloud.kubernetes.config.retry.initial-interval=1500",
"spring.cloud.kubernetes.config.retry.max-interval=3000",
@@ -190,7 +191,7 @@ public class KubernetesBootstrapConfigurationTests {
}
@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = App.class,
- properties = { "spring.cloud.kubernetes.secrets.fail-fast=true",
+ properties = { "spring.main.cloud-platform=KUBERNETES", "spring.cloud.kubernetes.secrets.fail-fast=true",
"spring.cloud.kubernetes.secrets.retry.max-attempts=3",
"spring.cloud.kubernetes.secrets.retry.initial-interval=1500",
"spring.cloud.kubernetes.secrets.retry.max-interval=3000",
diff --git a/spring-cloud-kubernetes-commons/src/test/java/org/springframework/cloud/kubernetes/commons/profile/AbstractKubernetesProfileEnvironmentPostProcessorTest.java b/spring-cloud-kubernetes-commons/src/test/java/org/springframework/cloud/kubernetes/commons/profile/AbstractKubernetesProfileEnvironmentPostProcessorTest.java
index 8875a5b0..c66fcf72 100644
--- a/spring-cloud-kubernetes-commons/src/test/java/org/springframework/cloud/kubernetes/commons/profile/AbstractKubernetesProfileEnvironmentPostProcessorTest.java
+++ b/spring-cloud-kubernetes-commons/src/test/java/org/springframework/cloud/kubernetes/commons/profile/AbstractKubernetesProfileEnvironmentPostProcessorTest.java
@@ -81,12 +81,12 @@ public class AbstractKubernetesProfileEnvironmentPostProcessorTest {
/**
*
- * 1) "spring.cloud.kubernetes.enabled" is false; thus nothing happens + * 1) not running on kubernetes **/ @Test public void testKubernetesDisabled() { - TestPropertySourceUtils.addInlinedPropertiesToEnvironment(context, "spring.cloud.kubernetes.enabled=false"); + TestPropertySourceUtils.addInlinedPropertiesToEnvironment(context); POST_PROCESSOR_INSIDE.postProcessEnvironment(context.getEnvironment(), springApplication); assertKubernetesProfileNotPresent(); @@ -96,13 +96,13 @@ public class AbstractKubernetesProfileEnvironmentPostProcessorTest { /** *
- * 1) "spring.cloud.kubernetes.enabled" is true + * 1) "spring.main.cloud-platform=KUBERNETES" * 2) "spring.cloud.kubernetes.client.serviceAccountNamespacePath" is present, but does not resolve to an actual File **/ @Test public void testKubernetesEnabledAndServiceAccountNamespacePathIsNotResolved() { - TestPropertySourceUtils.addInlinedPropertiesToEnvironment(context, "spring.cloud.kubernetes.enabled=true", + TestPropertySourceUtils.addInlinedPropertiesToEnvironment(context, "spring.main.cloud-platform=KUBERNETES", "spring.cloud.kubernetes.client.serviceAccountNamespacePath=" + PATH); serviceAccountFileResolved(false, PATH); POST_PROCESSOR_INSIDE.postProcessEnvironment(context.getEnvironment(), springApplication); @@ -114,13 +114,13 @@ public class AbstractKubernetesProfileEnvironmentPostProcessorTest { /** *
- * 1) "spring.cloud.kubernetes.enabled" is true + * 1) "spring.main.cloud-platform=KUBERNETES" * 2) "spring.cloud.kubernetes.client.serviceAccountNamespacePath" is present and resolves to an actual File **/ @Test public void testKubernetesEnabledAndServiceAccountNamespacePathIsResolved() { - TestPropertySourceUtils.addInlinedPropertiesToEnvironment(context, "spring.cloud.kubernetes.enabled=true", + TestPropertySourceUtils.addInlinedPropertiesToEnvironment(context, "spring.main.cloud-platform=KUBERNETES", "spring.cloud.kubernetes.client.serviceAccountNamespacePath=" + PATH); Path path = serviceAccountFileResolved(true, PATH); @@ -135,14 +135,14 @@ public class AbstractKubernetesProfileEnvironmentPostProcessorTest { /** *
- * 1) "spring.cloud.kubernetes.enabled" is true + * 1) "spring.main.cloud-platform=KUBERNETES" * 2) "spring.cloud.kubernetes.client.serviceAccountNamespacePath" is not present, as such: * 3) "/var/run/secrets/kubernetes.io/serviceaccount/namespace" is picked up, which is resolved and present **/ @Test public void testKubernetesEnabledAndServiceAccountNamespacePathIsResolvedViaDefaultLocation() { - TestPropertySourceUtils.addInlinedPropertiesToEnvironment(context, "spring.cloud.kubernetes.enabled=true"); + TestPropertySourceUtils.addInlinedPropertiesToEnvironment(context, "spring.main.cloud-platform=KUBERNETES"); Path path = serviceAccountFileResolved(true, "/var/run/secrets/kubernetes.io/serviceaccount/namespace"); mockServiceAccountNamespace(path); @@ -155,7 +155,7 @@ public class AbstractKubernetesProfileEnvironmentPostProcessorTest { /** *
- * 1) "spring.cloud.kubernetes.enabled" is true
+ * 1) "spring.main.cloud-platform=KUBERNETES"
* 2) isInsideKubernetes returns false
* 3) "spring.cloud.kubernetes.client.serviceAccountNamespacePath" is not present, as such:
* 4) "/var/run/secrets/kubernetes.io/serviceaccount/namespace" is picked up, which is resolved and present
@@ -163,7 +163,7 @@ public class AbstractKubernetesProfileEnvironmentPostProcessorTest {
*/
@Test
public void testOutsideKubernetes() {
- TestPropertySourceUtils.addInlinedPropertiesToEnvironment(context, "spring.cloud.kubernetes.enabled=true");
+ TestPropertySourceUtils.addInlinedPropertiesToEnvironment(context, "spring.main.cloud-platform=KUBERNETES");
Path path = serviceAccountFileResolved(true, "/var/run/secrets/kubernetes.io/serviceaccount/namespace");
mockServiceAccountNamespace(path);
@@ -179,7 +179,7 @@ public class AbstractKubernetesProfileEnvironmentPostProcessorTest {
*/
private void assertKubernetesProfileNotPresent() {
Assertions.assertFalse(kubernetesProfile().isPresent(),
- "'kubernetes' profile must not be present when 'spring.cloud.kubernetes.enabled' is false");
+ "'kubernetes' profile must not be present when not running in kubernetes");
}
/*
@@ -187,7 +187,7 @@ public class AbstractKubernetesProfileEnvironmentPostProcessorTest {
*/
private void assertKubernetesProfilePresent() {
Assertions.assertTrue(kubernetesProfile().isPresent(),
- "'kubernetes' profile must be present when 'spring.cloud.kubernetes.enabled' is true");
+ "'kubernetes' profile must be present when running in kubernetes");
}
/*
@@ -197,7 +197,7 @@ public class AbstractKubernetesProfileEnvironmentPostProcessorTest {
Optional> kubernetesPropertySource = kubernetesPropertySource();
Assertions.assertFalse(kubernetesPropertySource.isPresent(),
- "'KUBERNETES_NAMESPACE_PROPERTY_SOURCE' source must not be present when 'spring.cloud.kubernetes.enabled' is false");
+ "'KUBERNETES_NAMESPACE_PROPERTY_SOURCE' source must not be present when not running on kubernetes");
}
/*
@@ -207,7 +207,7 @@ public class AbstractKubernetesProfileEnvironmentPostProcessorTest {
Optional> kubernetesPropertySource = kubernetesPropertySource();
Assertions.assertTrue(kubernetesPropertySource.isPresent(),
- "'KUBERNETES_NAMESPACE_PROPERTY_SOURCE' source must be present when 'spring.cloud.kubernetes.enabled' is true");
+ "'KUBERNETES_NAMESPACE_PROPERTY_SOURCE' source must be present when running on kubernetes");
String property = (String) kubernetesPropertySource.get()
.getProperty("spring.cloud.kubernetes.client.namespace");
diff --git a/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/src/main/java/org/springframework/cloud/kubernetes/configserver/KubernetesConfigServerAutoConfiguration.java b/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/src/main/java/org/springframework/cloud/kubernetes/configserver/KubernetesConfigServerAutoConfiguration.java
index f99fa7dc..84eea23f 100644
--- a/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/src/main/java/org/springframework/cloud/kubernetes/configserver/KubernetesConfigServerAutoConfiguration.java
+++ b/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/src/main/java/org/springframework/cloud/kubernetes/configserver/KubernetesConfigServerAutoConfiguration.java
@@ -24,7 +24,9 @@ import io.kubernetes.client.openapi.apis.CoreV1Api;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.config.server.config.ConfigServerAutoConfiguration;
import org.springframework.cloud.config.server.environment.EnvironmentRepository;
@@ -32,7 +34,6 @@ import org.springframework.cloud.kubernetes.client.KubernetesClientAutoConfigura
import org.springframework.cloud.kubernetes.client.config.KubernetesClientConfigMapPropertySource;
import org.springframework.cloud.kubernetes.client.config.KubernetesClientSecretsPropertySource;
import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesConfigEnabled;
-import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesEnabled;
import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesSecretsEnabled;
import org.springframework.cloud.kubernetes.commons.KubernetesNamespaceProvider;
import org.springframework.context.annotation.Bean;
@@ -48,7 +49,7 @@ import static org.springframework.cloud.kubernetes.configserver.KubernetesProper
@Configuration
@AutoConfigureAfter({ KubernetesClientAutoConfiguration.class })
@AutoConfigureBefore({ ConfigServerAutoConfiguration.class })
-@ConditionalOnKubernetesEnabled
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
@EnableConfigurationProperties(KubernetesConfigServerProperties.class)
public class KubernetesConfigServerAutoConfiguration {
diff --git a/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/src/test/java/org/springframework/cloud/kubernetes/configserver/ConfigServerIntegrationTest.java b/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/src/test/java/org/springframework/cloud/kubernetes/configserver/ConfigServerIntegrationTest.java
index 690f9b13..cdd0787b 100644
--- a/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/src/test/java/org/springframework/cloud/kubernetes/configserver/ConfigServerIntegrationTest.java
+++ b/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/src/test/java/org/springframework/cloud/kubernetes/configserver/ConfigServerIntegrationTest.java
@@ -43,8 +43,8 @@ import static org.assertj.core.api.Assertions.assertThat;
* @author Ryan Baxter
*/
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
- properties = { "spring.cloud.kubernetes.client.namespace=default", "spring.profiles.include=kubernetes",
- "spring.cloud.kubernetes.secrets.enableApi=true", "debug=true" },
+ properties = { "spring.main.cloud-platform=KUBERNETES", "spring.cloud.kubernetes.client.namespace=default",
+ "spring.profiles.include=kubernetes", "spring.cloud.kubernetes.secrets.enableApi=true", "debug=true" },
classes = { KubernetesConfigServerApplication.class })
public class ConfigServerIntegrationTest {
diff --git a/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/src/test/java/org/springframework/cloud/kubernetes/configserver/KubernetesConfigServerAutoConfigurationTests.java b/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/src/test/java/org/springframework/cloud/kubernetes/configserver/KubernetesConfigServerAutoConfigurationTests.java
index 0ae3aaa7..6995c7fa 100644
--- a/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/src/test/java/org/springframework/cloud/kubernetes/configserver/KubernetesConfigServerAutoConfigurationTests.java
+++ b/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/src/test/java/org/springframework/cloud/kubernetes/configserver/KubernetesConfigServerAutoConfigurationTests.java
@@ -48,8 +48,7 @@ public class KubernetesConfigServerAutoConfigurationTests {
@Nested
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
- properties = { "spring.profiles.include=kubernetes,kubernetesdisabled",
- "spring.cloud.kubernetes.enabled=false", "debug=true" },
+ properties = { "spring.profiles.include=kubernetes,kubernetesdisabled", "debug=true" },
classes = { KubernetesConfigServerApplication.class, MockConfig.class })
public class KubernetesDisabled {
@@ -65,8 +64,7 @@ public class KubernetesConfigServerAutoConfigurationTests {
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = { KubernetesConfigServerApplication.class, MockConfig.class },
- properties = { "spring.cloud.kubernetes.enabled=false",
- "spring.profiles.include=kubernetes,kubernetesdisabled", "debug=true" })
+ properties = { "spring.profiles.include=kubernetes,kubernetesdisabled", "debug=true" })
@Nested
class KubernetesProfileMissing {
@@ -81,8 +79,9 @@ public class KubernetesConfigServerAutoConfigurationTests {
}
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
- classes = { KubernetesConfigServerApplication.class }, properties = { "spring.profiles.include=kubernetes",
- "debug=true", "spring.cloud.kubernetes.client.namespace=default" })
+ classes = { KubernetesConfigServerApplication.class },
+ properties = { "spring.main.cloud-platform=KUBERNETES", "spring.profiles.include=kubernetes", "debug=true",
+ "spring.cloud.kubernetes.client.namespace=default" })
@Nested
class KubernetesEnabledProfileIncluded {
@@ -98,8 +97,10 @@ public class KubernetesConfigServerAutoConfigurationTests {
}
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
- classes = { KubernetesConfigServerApplication.class }, properties = { "spring.profiles.include=kubernetes",
- "debug=true", "spring.cloud.kubernetes.config.enabled=false" })
+ classes = { KubernetesConfigServerApplication.class },
+ properties = { "spring.main.cloud-platform=KUBERNETES", // STOPSHIP: 11/10/21
+ "spring.profiles.include=kubernetes", "debug=true",
+ "spring.cloud.kubernetes.config.enabled=false" })
@Nested
class KubernetesEnabledProfileIncludedConfigMapDisabled {
@@ -115,8 +116,9 @@ public class KubernetesConfigServerAutoConfigurationTests {
}
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
- classes = { KubernetesConfigServerApplication.class }, properties = { "spring.profiles.include=kubernetes",
- "debug=true", "spring.cloud.kubernetes.client.namespace=default" })
+ classes = { KubernetesConfigServerApplication.class },
+ properties = { "spring.main.cloud-platform=KUBERNETES", "spring.profiles.include=kubernetes", "debug=true",
+ "spring.cloud.kubernetes.client.namespace=default" })
@Nested
class KubernetesEnabledProfileIncludedSecretsApiDisabled {
@@ -135,7 +137,7 @@ public class KubernetesConfigServerAutoConfigurationTests {
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = { KubernetesConfigServerApplication.class },
- properties = { "spring.profiles.include=kubernetes", "debug=true",
+ properties = { "spring.main.cloud-platform=KUBERNETES", "spring.profiles.include=kubernetes", "debug=true",
"spring.cloud.kubernetes.client.namespace=default",
"spring.cloud.kubernetes.secrets.enableApi=true" })
@Nested
@@ -154,7 +156,7 @@ public class KubernetesConfigServerAutoConfigurationTests {
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = { KubernetesConfigServerApplication.class },
- properties = { "spring.profiles.include=kubernetes", "debug=true",
+ properties = { "spring.main.cloud-platform=KUBERNETES", "spring.profiles.include=kubernetes", "debug=true",
"spring.cloud.kubernetes.client.namespace=default",
"spring.cloud.kubernetes.config.enableApi=false" })
@Nested
diff --git a/spring-cloud-kubernetes-discovery/src/main/java/org/springframework/cloud/kubernetes/discovery/KubernetesDiscoveryClientAutoConfiguration.java b/spring-cloud-kubernetes-discovery/src/main/java/org/springframework/cloud/kubernetes/discovery/KubernetesDiscoveryClientAutoConfiguration.java
index d40e06e6..acab803e 100644
--- a/spring-cloud-kubernetes-discovery/src/main/java/org/springframework/cloud/kubernetes/discovery/KubernetesDiscoveryClientAutoConfiguration.java
+++ b/spring-cloud-kubernetes-discovery/src/main/java/org/springframework/cloud/kubernetes/discovery/KubernetesDiscoveryClientAutoConfiguration.java
@@ -19,9 +19,11 @@ package org.springframework.cloud.kubernetes.discovery;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.cloud.client.ConditionalOnDiscoveryEnabled;
@@ -44,8 +46,8 @@ import org.springframework.web.reactive.function.client.WebClient;
*/
@Configuration(proxyBeanMethods = false)
@ConditionalOnDiscoveryEnabled
-@ConditionalOnProperty(value = { "spring.cloud.kubernetes.enabled", "spring.cloud.kubernetes.discovery.enabled" },
- matchIfMissing = true)
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
+@ConditionalOnProperty(value = "spring.cloud.kubernetes.discovery.enabled", matchIfMissing = true)
@EnableConfigurationProperties({ DiscoveryClientHealthIndicatorProperties.class,
KubernetesDiscoveryClientProperties.class })
public class KubernetesDiscoveryClientAutoConfiguration {
diff --git a/spring-cloud-kubernetes-discovery/src/test/java/org/springframework/cloud/kubernetes/discovery/KubernetesDiscoveryClientAutoConfigurationTests.java b/spring-cloud-kubernetes-discovery/src/test/java/org/springframework/cloud/kubernetes/discovery/KubernetesDiscoveryClientAutoConfigurationTests.java
index 60bc45e3..e634d9e9 100644
--- a/spring-cloud-kubernetes-discovery/src/test/java/org/springframework/cloud/kubernetes/discovery/KubernetesDiscoveryClientAutoConfigurationTests.java
+++ b/spring-cloud-kubernetes-discovery/src/test/java/org/springframework/cloud/kubernetes/discovery/KubernetesDiscoveryClientAutoConfigurationTests.java
@@ -41,7 +41,8 @@ class KubernetesDiscoveryClientAutoConfigurationTests {
@Test
public void shouldWorkWithDefaults() {
contextRunner
- .withPropertyValues("spring.cloud.kubernetes.discovery.discovery-server-url=http://k8sdiscoveryserver")
+ .withPropertyValues("spring.main.cloud-platform=KUBERNETES",
+ "spring.cloud.kubernetes.discovery.discovery-server-url=http://k8sdiscoveryserver")
.withClassLoader(new FilteredClassLoader("org.springframework.web.reactive")).run(context -> {
assertThat(context).hasSingleBean(DiscoveryClient.class);
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class);
@@ -76,7 +77,8 @@ class KubernetesDiscoveryClientAutoConfigurationTests {
@Test
public void shouldHaveReactiveDiscoveryClient() {
contextRunner
- .withPropertyValues("spring.cloud.kubernetes.discovery.discovery-server-url=http://k8sdiscoveryserver")
+ .withPropertyValues("spring.main.cloud-platform=KUBERNETES",
+ "spring.cloud.kubernetes.discovery.discovery-server-url=http://k8sdiscoveryserver")
.run(context -> {
assertThat(context).hasSingleBean(ReactiveDiscoveryClient.class);
assertThat(context).doesNotHaveBean(DiscoveryClient.class);
@@ -94,7 +96,7 @@ class KubernetesDiscoveryClientAutoConfigurationTests {
@Test
public void shouldNotHaveDiscoveryClientWhenKubernetesDisabled() {
- contextRunner.withPropertyValues("spring.cloud.kubernetes.enabled=false").run(context -> {
+ contextRunner.run(context -> {
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class);
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class);
});
@@ -103,7 +105,8 @@ class KubernetesDiscoveryClientAutoConfigurationTests {
@Test
public void worksWithoutActuator() {
contextRunner
- .withPropertyValues("spring.cloud.kubernetes.discovery.discovery-server-url=http://k8sdiscoveryserver")
+ .withPropertyValues("spring.main.cloud-platform=KUBERNETES",
+ "spring.cloud.kubernetes.discovery.discovery-server-url=http://k8sdiscoveryserver")
.withClassLoader(new FilteredClassLoader("org.springframework.boot.actuate")).run(context -> {
assertThat(context).hasSingleBean(ReactiveDiscoveryClient.class);
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class);
diff --git a/spring-cloud-kubernetes-fabric8-autoconfig/src/main/java/org/springframework/cloud/kubernetes/fabric8/Fabric8ActuatorConfiguration.java b/spring-cloud-kubernetes-fabric8-autoconfig/src/main/java/org/springframework/cloud/kubernetes/fabric8/Fabric8ActuatorConfiguration.java
index befd6725..62418356 100644
--- a/spring-cloud-kubernetes-fabric8-autoconfig/src/main/java/org/springframework/cloud/kubernetes/fabric8/Fabric8ActuatorConfiguration.java
+++ b/spring-cloud-kubernetes-fabric8-autoconfig/src/main/java/org/springframework/cloud/kubernetes/fabric8/Fabric8ActuatorConfiguration.java
@@ -22,7 +22,8 @@ import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnable
import org.springframework.boot.actuate.autoconfigure.info.ConditionalOnEnabledInfoContributor;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
-import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesEnabled;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
+import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.cloud.kubernetes.commons.PodUtils;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -32,7 +33,7 @@ import org.springframework.context.annotation.Configuration;
*/
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(HealthIndicator.class)
-@ConditionalOnKubernetesEnabled
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
public class Fabric8ActuatorConfiguration {
@Bean
diff --git a/spring-cloud-kubernetes-fabric8-autoconfig/src/main/java/org/springframework/cloud/kubernetes/fabric8/Fabric8AutoConfiguration.java b/spring-cloud-kubernetes-fabric8-autoconfig/src/main/java/org/springframework/cloud/kubernetes/fabric8/Fabric8AutoConfiguration.java
index 2c731fe8..fcafa620 100644
--- a/spring-cloud-kubernetes-fabric8-autoconfig/src/main/java/org/springframework/cloud/kubernetes/fabric8/Fabric8AutoConfiguration.java
+++ b/spring-cloud-kubernetes-fabric8-autoconfig/src/main/java/org/springframework/cloud/kubernetes/fabric8/Fabric8AutoConfiguration.java
@@ -26,8 +26,9 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesEnabled;
+import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.cloud.kubernetes.commons.KubernetesClientProperties;
import org.springframework.cloud.kubernetes.commons.KubernetesCommonsAutoConfiguration;
import org.springframework.context.annotation.Bean;
@@ -41,7 +42,7 @@ import org.springframework.context.annotation.Configuration;
* @author Tim Ysewyn
*/
@Configuration(proxyBeanMethods = false)
-@ConditionalOnKubernetesEnabled
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
@AutoConfigureAfter(KubernetesCommonsAutoConfiguration.class)
public class Fabric8AutoConfiguration {
diff --git a/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/Fabric8AutoConfigurationTests.java b/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/Fabric8AutoConfigurationTests.java
index 6ff3f17c..273a500d 100644
--- a/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/Fabric8AutoConfigurationTests.java
+++ b/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/Fabric8AutoConfigurationTests.java
@@ -38,7 +38,7 @@ import static org.assertj.core.api.Assertions.assertThat;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
- properties = { "spring.cloud.kubernetes.client.password=mypassword",
+ properties = { "spring.main.cloud-platform=KUBERNETES", "spring.cloud.kubernetes.client.password=mypassword",
"spring.cloud.kubernetes.client.proxy-password=myproxypassword" })
@EnableKubernetesMockClient(crud = true, https = false)
public class Fabric8AutoConfigurationTests {
diff --git a/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/Fabric8InsideInfoContributorTest.java b/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/Fabric8InsideInfoContributorTest.java
index 01fcddf0..95b6f552 100644
--- a/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/Fabric8InsideInfoContributorTest.java
+++ b/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/Fabric8InsideInfoContributorTest.java
@@ -47,8 +47,8 @@ import org.springframework.test.web.reactive.server.WebTestClient;
*/
@Import(Fabric8InsideInfoContributorTest.InfoContributorTestConfig.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
- properties = { "management.endpoints.web.exposure.include=info", "management.endpoint.info.show-details=always",
- "management.info.kubernetes.enabled=true" })
+ properties = { "spring.main.cloud-platform=KUBERNETES", "management.endpoints.web.exposure.include=info",
+ "management.endpoint.info.show-details=always", "management.info.kubernetes.enabled=true" })
public class Fabric8InsideInfoContributorTest {
@Autowired
diff --git a/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/Fabric8NotInsideHealthIndicatorTest.java b/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/Fabric8NotInsideHealthIndicatorTest.java
index 3c79eb36..d5e4580b 100644
--- a/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/Fabric8NotInsideHealthIndicatorTest.java
+++ b/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/Fabric8NotInsideHealthIndicatorTest.java
@@ -37,7 +37,7 @@ import org.springframework.http.MediaType;
import org.springframework.test.web.reactive.server.WebTestClient;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
- properties = { "management.endpoint.health.show-details=always" })
+ properties = { "spring.main.cloud-platform=KUBERNETES", "management.endpoint.health.show-details=always" })
@EnableKubernetesMockClient(crud = true, https = false)
public class Fabric8NotInsideHealthIndicatorTest {
diff --git a/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/Fabric8NotInsideInfoContributorTest.java b/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/Fabric8NotInsideInfoContributorTest.java
index 5d428771..0e913d39 100644
--- a/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/Fabric8NotInsideInfoContributorTest.java
+++ b/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/Fabric8NotInsideInfoContributorTest.java
@@ -34,8 +34,8 @@ import org.springframework.http.MediaType;
import org.springframework.test.web.reactive.server.WebTestClient;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
- properties = { "management.endpoints.web.exposure.include=info", "management.endpoint.info.show-details=always",
- "management.info.kubernetes.enabled=true" })
+ properties = { "spring.main.cloud-platform=KUBERNETES", "management.endpoints.web.exposure.include=info",
+ "management.endpoint.info.show-details=always", "management.info.kubernetes.enabled=true" })
@EnableKubernetesMockClient(crud = true, https = false)
public class Fabric8NotInsideInfoContributorTest {
diff --git a/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/fabric8/Fabric8ClientUserAgentEnvPropertyTests.java b/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/fabric8/Fabric8ClientUserAgentEnvPropertyTests.java
index cac53ff4..83896b9b 100644
--- a/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/fabric8/Fabric8ClientUserAgentEnvPropertyTests.java
+++ b/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/fabric8/Fabric8ClientUserAgentEnvPropertyTests.java
@@ -33,7 +33,7 @@ import static org.assertj.core.api.Assertions.assertThat;
*
* test "User-Agent" functionality via system properties
*/
-@SpringBootTest(classes = App.class)
+@SpringBootTest(classes = App.class, properties = "spring.main.cloud-platform=KUBERNETES")
class Fabric8ClientUserAgentEnvPropertyTests {
@Autowired
diff --git a/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/fabric8/Fabric8ClientUserAgentTests.java b/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/fabric8/Fabric8ClientUserAgentTests.java
index b9bd96dd..6aaf5fdf 100644
--- a/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/fabric8/Fabric8ClientUserAgentTests.java
+++ b/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/fabric8/Fabric8ClientUserAgentTests.java
@@ -35,8 +35,10 @@ class Fabric8ClientUserAgentTests {
private static final String USER_AGENT = "spring.cloud.kubernetes.client.userAgent=non-default";
+ private static final String ENABLED_K8S = "spring.main.cloud-platform=KUBERNETES";
+
@Nested
- @SpringBootTest(classes = App.class)
+ @SpringBootTest(classes = App.class, properties = ENABLED_K8S)
class DefaultConfigurationForClient {
@Autowired
@@ -51,7 +53,7 @@ class Fabric8ClientUserAgentTests {
}
@Nested
- @SpringBootTest(classes = App.class, properties = USER_AGENT)
+ @SpringBootTest(classes = App.class, properties = { USER_AGENT, ENABLED_K8S })
class PropertiesConfigurationForClient {
@Autowired
diff --git a/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/fabric8/profile/Fabric8ProfileEnvironmentPostProcessorTests.java b/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/fabric8/profile/Fabric8ProfileEnvironmentPostProcessorTests.java
index 703075f3..b60de238 100644
--- a/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/fabric8/profile/Fabric8ProfileEnvironmentPostProcessorTests.java
+++ b/spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/fabric8/profile/Fabric8ProfileEnvironmentPostProcessorTests.java
@@ -33,8 +33,8 @@ class Fabric8ProfileEnvironmentPostProcessorTests {
@Test
void whenKubernetesEnvironmentAndNoApiAccessThenProfileEnabled() {
ConfigurableApplicationContext context = new SpringApplicationBuilder(App.class)
- .web(org.springframework.boot.WebApplicationType.NONE).properties("KUBERNETES_SERVICE_HOST=10.0.0.1")
- .run();
+ .web(org.springframework.boot.WebApplicationType.NONE)
+ .properties("KUBERNETES_SERVICE_HOST=10.0.0.1", "spring.main.cloud-platform=KUBERNETES").run();
assertThat(context.getEnvironment().getActiveProfiles()).contains(KUBERNETES_PROFILE);
}
diff --git a/spring-cloud-kubernetes-fabric8-config/src/main/java/org/springframework/cloud/kubernetes/fabric8/config/Fabric8BootstrapConfiguration.java b/spring-cloud-kubernetes-fabric8-config/src/main/java/org/springframework/cloud/kubernetes/fabric8/config/Fabric8BootstrapConfiguration.java
index 1e6f9a96..a3f6d840 100644
--- a/spring-cloud-kubernetes-fabric8-config/src/main/java/org/springframework/cloud/kubernetes/fabric8/config/Fabric8BootstrapConfiguration.java
+++ b/spring-cloud-kubernetes-fabric8-config/src/main/java/org/springframework/cloud/kubernetes/fabric8/config/Fabric8BootstrapConfiguration.java
@@ -25,7 +25,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesConfigEnabled;
-import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesEnabled;
import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesSecretsEnabled;
import org.springframework.cloud.kubernetes.commons.KubernetesCommonsAutoConfiguration;
import org.springframework.cloud.kubernetes.commons.KubernetesNamespaceProvider;
@@ -44,7 +43,6 @@ import org.springframework.core.env.Environment;
* @author Ioannis Canellos
*/
@Configuration(proxyBeanMethods = false)
-@ConditionalOnKubernetesEnabled
@Import({ KubernetesCommonsAutoConfiguration.class, Fabric8AutoConfiguration.class })
@ConditionalOnClass({ ConfigMap.class, Secret.class })
@AutoConfigureAfter(KubernetesBootstrapConfiguration.class)
diff --git a/spring-cloud-kubernetes-fabric8-config/src/main/java/org/springframework/cloud/kubernetes/fabric8/config/reload/ConfigReloadDefaultAutoConfiguration.java b/spring-cloud-kubernetes-fabric8-config/src/main/java/org/springframework/cloud/kubernetes/fabric8/config/reload/ConfigReloadDefaultAutoConfiguration.java
index 4fd4e1f8..cd3246b1 100644
--- a/spring-cloud-kubernetes-fabric8-config/src/main/java/org/springframework/cloud/kubernetes/fabric8/config/reload/ConfigReloadDefaultAutoConfiguration.java
+++ b/spring-cloud-kubernetes-fabric8-config/src/main/java/org/springframework/cloud/kubernetes/fabric8/config/reload/ConfigReloadDefaultAutoConfiguration.java
@@ -22,8 +22,10 @@ import io.fabric8.kubernetes.client.KubernetesClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.commons.util.TaskSchedulerWrapper;
import org.springframework.cloud.kubernetes.commons.config.reload.ConfigReloadProperties;
@@ -48,7 +50,7 @@ import org.springframework.core.env.AbstractEnvironment;
* @author Kris Iyer
*/
@Configuration(proxyBeanMethods = false)
-@ConditionalOnProperty(value = "spring.cloud.kubernetes.enabled", matchIfMissing = true)
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
@ConditionalOnMissingBean(ConfigReloadAutoConfiguration.class)
@EnableConfigurationProperties(ConfigReloadProperties.class)
public class ConfigReloadDefaultAutoConfiguration {
diff --git a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/CoreTestClientViaSystemProperties.java b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/CoreTestClientViaSystemProperties.java
index 115f892b..6ebdbd83 100644
--- a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/CoreTestClientViaSystemProperties.java
+++ b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/CoreTestClientViaSystemProperties.java
@@ -30,9 +30,9 @@ import static org.assertj.core.api.Assertions.assertThat;
@ExtendWith(SpringExtension.class)
@SpringBootTest(classes = TestApplication.class,
- properties = { "spring.application.name=testapp", "spring.cloud.kubernetes.client.namespace=testns",
- "spring.cloud.kubernetes.client.trustCerts=true", "spring.cloud.kubernetes.config.namespace=testns",
- "spring.cloud.kubernetes.secrets.enableApi=true" })
+ properties = { "spring.main.cloud-platform=KUBERNETES", "spring.application.name=testapp",
+ "spring.cloud.kubernetes.client.namespace=testns", "spring.cloud.kubernetes.client.trustCerts=true",
+ "spring.cloud.kubernetes.config.namespace=testns", "spring.cloud.kubernetes.secrets.enableApi=true" })
public class CoreTestClientViaSystemProperties {
@Autowired
diff --git a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/Fabric8ActuatorTests.java b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/Fabric8ActuatorTests.java
index c0b86324..8ec4871b 100644
--- a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/Fabric8ActuatorTests.java
+++ b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/Fabric8ActuatorTests.java
@@ -66,9 +66,9 @@ public class Fabric8ActuatorTests {
@Nested
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class, properties = {
- "management.health.kubernetes.enabled=true", "management.endpoint.health.show-details=always",
- "management.endpoint.health.show-components=always", "management.endpoints.web.exposure.include=health",
- "spring.cloud.kubernetes.client.namespace=default" })
+ "spring.main.cloud-platform=KUBERNETES", "management.health.kubernetes.enabled=true",
+ "management.endpoint.health.show-details=always", "management.endpoint.health.show-components=always",
+ "management.endpoints.web.exposure.include=health", "spring.cloud.kubernetes.client.namespace=default" })
public class EnabledHealthTest {
@Autowired
diff --git a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/Fabric8BootstrapConfigurationTests.java b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/Fabric8BootstrapConfigurationTests.java
index 4a29a325..3efd8c59 100644
--- a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/Fabric8BootstrapConfigurationTests.java
+++ b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/Fabric8BootstrapConfigurationTests.java
@@ -30,8 +30,7 @@ import static org.assertj.core.api.Assertions.assertThat;
*/
public class Fabric8BootstrapConfigurationTests {
- @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class,
- properties = "spring.cloud.kubernetes.enabled=false")
+ @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class)
@Nested
class KubernetesDisabled {
diff --git a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/HealthIndicatorTest.java b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/HealthIndicatorTest.java
index 2c2f178d..de046f4e 100644
--- a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/HealthIndicatorTest.java
+++ b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/HealthIndicatorTest.java
@@ -35,7 +35,7 @@ import static org.hamcrest.Matchers.containsString;
@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
- properties = { "management.endpoint.health.show-details=always" })
+ properties = { "spring.main.cloud-platform=KUBERNETES", "management.endpoint.health.show-details=always" })
@EnableKubernetesMockClient(crud = true, https = false)
public class HealthIndicatorTest {
diff --git a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/KubernetesConfigConfigurationTest.java b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/KubernetesConfigConfigurationTest.java
index 9276ccef..eafda75f 100644
--- a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/KubernetesConfigConfigurationTest.java
+++ b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/KubernetesConfigConfigurationTest.java
@@ -42,15 +42,15 @@ public class KubernetesConfigConfigurationTest extends KubernetesConfigTestBase
@Test
public void kubernetesWhenKubernetesDefaultEnabled() {
- setup(KubernetesClientTestConfiguration.class, "spring.cloud.kubernetes.enabled=true",
- "spring.cloud.kubernetes.client.namespace=default", "spring.main.cloud-platform=KUBERNETES");
+ setup(KubernetesClientTestConfiguration.class, "spring.main.cloud-platform=KUBERNETES",
+ "spring.cloud.kubernetes.client.namespace=default");
assertThat(getContext().containsBean("configMapPropertySourceLocator")).isTrue();
assertThat(getContext().containsBean("secretsPropertySourceLocator")).isTrue();
}
@Test
public void kubernetesWhenKubernetesDisabled() {
- setup(KubernetesClientTestConfiguration.class, "spring.cloud.kubernetes.enabled=false");
+ setup(KubernetesClientTestConfiguration.class);
assertThat(getContext().containsBean("configMapPropertySourceLocator")).isFalse();
assertThat(getContext().containsBean("secretsPropertySourceLocator")).isFalse();
}
@@ -91,8 +91,7 @@ public class KubernetesConfigConfigurationTest extends KubernetesConfigTestBase
@Test
public void kubernetesConfigWhenKubernetesEnabledAndKubernetesConfigDisabled() {
- setup(KubernetesClientTestConfiguration.class, "spring.cloud.kubernetes.enabled=true",
- "spring.cloud.kubernetes.config.enabled=false");
+ setup(KubernetesClientTestConfiguration.class, "spring.cloud.kubernetes.config.enabled=false");
assertThat(getContext().containsBean("configMapPropertySourceLocator")).isFalse();
}
diff --git a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/reload/ConfigReloadAutoConfigurationTest.java b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/reload/ConfigReloadAutoConfigurationTest.java
index a26dc713..5b090d6a 100644
--- a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/reload/ConfigReloadAutoConfigurationTest.java
+++ b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/reload/ConfigReloadAutoConfigurationTest.java
@@ -90,16 +90,16 @@ public class ConfigReloadAutoConfigurationTest extends KubernetesConfigTestBase
@Test
public void kubernetesConfigReloadWhenKubernetesDisabled() {
- setup(KubernetesClientTestConfiguration.class, "spring.cloud.kubernetes.enabled=false");
+ setup(KubernetesClientTestConfiguration.class);
assertThat(this.getContext().containsBean("configurationChangeDetector")).isFalse();
assertThat(this.getContext().containsBean("configurationUpdateStrategy")).isFalse();
}
@Test
public void kubernetesReloadEnabled() {
- setup(KubernetesClientTestConfiguration.class, "spring.cloud.kubernetes.enabled=true",
+ setup(KubernetesClientTestConfiguration.class, "spring.main.cloud-platform=KUBERNETES",
"spring.cloud.kubernetes.config.enabled=true", "spring.cloud.kubernetes.secrets.enabled=true",
- "spring.cloud.kubernetes.reload.enabled=true", "spring.main.cloud-platform=KUBERNETES");
+ "spring.cloud.kubernetes.reload.enabled=true");
assertThat(this.getContext().containsBean("configMapPropertySourceLocator")).isTrue();
assertThat(this.getContext().containsBean("secretsPropertySourceLocator")).isTrue();
assertThat(this.getContext().containsBean("configMapPropertyChangeEventWatcher")).isTrue();
@@ -108,9 +108,9 @@ public class ConfigReloadAutoConfigurationTest extends KubernetesConfigTestBase
@Test
public void kubernetesReloadEnabledButSecretDisabled() {
- setup(KubernetesClientTestConfiguration.class, "spring.cloud.kubernetes.enabled=true",
+ setup(KubernetesClientTestConfiguration.class, "spring.main.cloud-platform=KUBERNETES",
"spring.cloud.kubernetes.config.enabled=true", "spring.cloud.kubernetes.secrets.enabled=false",
- "spring.cloud.kubernetes.reload.enabled=true", "spring.main.cloud-platform=KUBERNETES");
+ "spring.cloud.kubernetes.reload.enabled=true");
assertThat(this.getContext().containsBean("configMapPropertySourceLocator")).isTrue();
assertThat(this.getContext().containsBean("secretsPropertySourceLocator")).isFalse();
assertThat(this.getContext().containsBean("configMapPropertyChangeEventWatcher")).isTrue();
@@ -119,9 +119,8 @@ public class ConfigReloadAutoConfigurationTest extends KubernetesConfigTestBase
@Test
public void kubernetesReloadEnabledButSecretAndConfigDisabled() {
- setup(KubernetesClientTestConfiguration.class, "spring.cloud.kubernetes.enabled=true",
- "spring.cloud.kubernetes.config.enabled=false", "spring.cloud.kubernetes.secrets.enabled=false",
- "spring.cloud.kubernetes.reload.enabled=true");
+ setup(KubernetesClientTestConfiguration.class, "spring.cloud.kubernetes.config.enabled=false",
+ "spring.cloud.kubernetes.secrets.enabled=false", "spring.cloud.kubernetes.reload.enabled=true");
assertThat(this.getContext().containsBean("configMapPropertySourceLocator")).isFalse();
assertThat(this.getContext().containsBean("secretsPropertySourceLocator")).isFalse();
assertThat(this.getContext().containsBean("propertyChangeWatcher")).isFalse();
diff --git a/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesCatalogWatchAutoConfiguration.java b/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesCatalogWatchAutoConfiguration.java
index 92af2b7d..83d0e644 100644
--- a/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesCatalogWatchAutoConfiguration.java
+++ b/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesCatalogWatchAutoConfiguration.java
@@ -19,8 +19,10 @@ package org.springframework.cloud.kubernetes.fabric8.discovery;
import io.fabric8.kubernetes.client.KubernetesClient;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.cloud.client.ConditionalOnDiscoveryEnabled;
import org.springframework.cloud.kubernetes.commons.discovery.KubernetesDiscoveryProperties;
import org.springframework.cloud.kubernetes.fabric8.Fabric8AutoConfiguration;
@@ -34,7 +36,7 @@ import org.springframework.context.annotation.Configuration;
*/
@Configuration(proxyBeanMethods = false)
@ConditionalOnDiscoveryEnabled
-@ConditionalOnProperty(name = "spring.cloud.kubernetes.enabled", matchIfMissing = true)
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
@AutoConfigureAfter({ Fabric8AutoConfiguration.class })
public class KubernetesCatalogWatchAutoConfiguration {
diff --git a/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientAutoConfiguration.java b/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientAutoConfiguration.java
index a547ae56..704e5b76 100644
--- a/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientAutoConfiguration.java
+++ b/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientAutoConfiguration.java
@@ -22,13 +22,14 @@ import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.cloud.client.CommonsClientAutoConfiguration;
import org.springframework.cloud.client.ConditionalOnBlockingDiscoveryEnabled;
import org.springframework.cloud.client.ConditionalOnDiscoveryEnabled;
import org.springframework.cloud.client.ConditionalOnDiscoveryHealthIndicatorEnabled;
import org.springframework.cloud.client.discovery.simple.SimpleDiscoveryClientAutoConfiguration;
-import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesEnabled;
import org.springframework.cloud.kubernetes.commons.PodUtils;
import org.springframework.cloud.kubernetes.commons.discovery.KubernetesDiscoveryClientHealthIndicatorInitializer;
import org.springframework.cloud.kubernetes.commons.discovery.KubernetesDiscoveryProperties;
@@ -45,7 +46,7 @@ import org.springframework.context.annotation.Configuration;
*/
@Configuration(proxyBeanMethods = false)
@ConditionalOnDiscoveryEnabled
-@ConditionalOnKubernetesEnabled
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
@AutoConfigureBefore({ SimpleDiscoveryClientAutoConfiguration.class, CommonsClientAutoConfiguration.class })
@AutoConfigureAfter({ Fabric8AutoConfiguration.class })
public class KubernetesDiscoveryClientAutoConfiguration {
diff --git a/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/reactive/KubernetesReactiveDiscoveryClientAutoConfiguration.java b/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/reactive/KubernetesReactiveDiscoveryClientAutoConfiguration.java
index 0c45fcc9..8ba38283 100644
--- a/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/reactive/KubernetesReactiveDiscoveryClientAutoConfiguration.java
+++ b/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/reactive/KubernetesReactiveDiscoveryClientAutoConfiguration.java
@@ -21,7 +21,9 @@ import io.fabric8.kubernetes.client.KubernetesClient;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.cloud.client.ConditionalOnDiscoveryEnabled;
import org.springframework.cloud.client.ConditionalOnDiscoveryHealthIndicatorEnabled;
import org.springframework.cloud.client.ConditionalOnReactiveDiscoveryEnabled;
@@ -30,7 +32,6 @@ import org.springframework.cloud.client.discovery.composite.reactive.ReactiveCom
import org.springframework.cloud.client.discovery.health.DiscoveryClientHealthIndicatorProperties;
import org.springframework.cloud.client.discovery.health.reactive.ReactiveDiscoveryClientHealthIndicator;
import org.springframework.cloud.client.discovery.simple.reactive.SimpleReactiveDiscoveryClientAutoConfiguration;
-import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesEnabled;
import org.springframework.cloud.kubernetes.commons.discovery.KubernetesDiscoveryProperties;
import org.springframework.cloud.kubernetes.fabric8.discovery.ConditionalOnKubernetesDiscoveryEnabled;
import org.springframework.cloud.kubernetes.fabric8.discovery.KubernetesClientServicesFunction;
@@ -46,7 +47,7 @@ import org.springframework.context.annotation.Configuration;
@Configuration(proxyBeanMethods = false)
@ConditionalOnDiscoveryEnabled
@ConditionalOnReactiveDiscoveryEnabled
-@ConditionalOnKubernetesEnabled
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
@ConditionalOnKubernetesDiscoveryEnabled
@AutoConfigureBefore({ SimpleReactiveDiscoveryClientAutoConfiguration.class,
ReactiveCommonsClientAutoConfiguration.class })
diff --git a/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesCatalogServicesWatchConfigurationTest.java b/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesCatalogServicesWatchConfigurationTest.java
index dc088a0a..dc7ed8b3 100644
--- a/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesCatalogServicesWatchConfigurationTest.java
+++ b/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesCatalogServicesWatchConfigurationTest.java
@@ -60,7 +60,7 @@ public class KubernetesCatalogServicesWatchConfigurationTest {
@Test
public void kubernetesCatalogWatchWhenKubernetesDisabled() throws Exception {
- setup("spring.cloud.kubernetes.enabled=false");
+ setup();
assertThat(this.context.containsBean("kubernetesCatalogWatch")).isFalse();
}
@@ -72,7 +72,7 @@ public class KubernetesCatalogServicesWatchConfigurationTest {
@Test
public void kubernetesCatalogWatchDefaultEnabled() throws Exception {
- setup();
+ setup("spring.main.cloud-platform=KUBERNETES");
assertThat(this.context.containsBean("kubernetesCatalogWatch")).isTrue();
}
diff --git a/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientAutoConfigurationPropertiesTests.java b/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientAutoConfigurationPropertiesTests.java
index ba6c7653..8f5ff2ad 100644
--- a/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientAutoConfigurationPropertiesTests.java
+++ b/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientAutoConfigurationPropertiesTests.java
@@ -60,7 +60,7 @@ public class KubernetesDiscoveryClientAutoConfigurationPropertiesTests {
@Test
public void kubernetesDiscoveryWhenKubernetesDisabled() throws Exception {
- setup("spring.cloud.kubernetes.enabled=false");
+ setup();
assertThat(this.context.getBeanNamesForType(KubernetesDiscoveryClient.class)).isEmpty();
}
@@ -72,7 +72,7 @@ public class KubernetesDiscoveryClientAutoConfigurationPropertiesTests {
@Test
public void kubernetesDiscoveryDefaultEnabled() throws Exception {
- setup("spring.cloud.kubernetes.enabled=true");
+ setup("spring.main.cloud-platform=KUBERNETES");
assertThat(this.context.getBeanNamesForType(KubernetesDiscoveryClient.class)).hasSize(1);
}
diff --git a/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientAutoConfigurationTests.java b/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientAutoConfigurationTests.java
index d0b2531a..26c0e1b1 100644
--- a/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientAutoConfigurationTests.java
+++ b/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientAutoConfigurationTests.java
@@ -30,7 +30,8 @@ import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@RunWith(SpringRunner.class)
-@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = "spring.cloud.config.enabled=false")
+@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT,
+ properties = { "spring.main.cloud-platform=KUBERNETES", "spring.cloud.config.enabled=false" })
public class KubernetesDiscoveryClientAutoConfigurationTests {
@Autowired(required = false)
diff --git a/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests.java b/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests.java
index 3befb3c5..6bc5796a 100644
--- a/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests.java
+++ b/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests.java
@@ -60,8 +60,8 @@ public class KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests {
@Test
public void onWhenRequested() throws Exception {
setup("server.port=7000", "spring.cloud.config.discovery.enabled=true",
- "spring.cloud.kubernetes.discovery.enabled:true", "spring.cloud.kubernetes.enabled:true",
- "spring.application.name:test", "spring.cloud.config.discovery.service-id:configserver");
+ "spring.cloud.kubernetes.discovery.enabled:true", "spring.application.name:test",
+ "spring.cloud.config.discovery.service-id:configserver");
assertEquals(1, this.context.getParent().getBeanNamesForType(DiscoveryClient.class).length);
DiscoveryClient client = this.context.getParent().getBean(DiscoveryClient.class);
verify(client, atLeast(2)).getInstances("configserver");
diff --git a/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/reactive/KubernetesReactiveDiscoveryClientAutoConfigurationTests.java b/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/reactive/KubernetesReactiveDiscoveryClientAutoConfigurationTests.java
index d2110922..1b3ce81a 100644
--- a/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/reactive/KubernetesReactiveDiscoveryClientAutoConfigurationTests.java
+++ b/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/reactive/KubernetesReactiveDiscoveryClientAutoConfigurationTests.java
@@ -44,7 +44,7 @@ class KubernetesReactiveDiscoveryClientAutoConfigurationTests {
@Test
public void shouldWorkWithDefaults() {
- contextRunner.run(context -> {
+ contextRunner.withPropertyValues("spring.main.cloud-platform=KUBERNETES").run(context -> {
assertThat(context).hasSingleBean(ReactiveDiscoveryClient.class);
assertThat(context).hasSingleBean(ReactiveDiscoveryClientHealthIndicator.class);
});
@@ -70,7 +70,7 @@ class KubernetesReactiveDiscoveryClientAutoConfigurationTests {
@Test
public void shouldNotHaveDiscoveryClientWhenKubernetesDisabled() {
- contextRunner.withPropertyValues("spring.cloud.kubernetes.enabled=false").run(context -> {
+ contextRunner.run(context -> {
assertThat(context).doesNotHaveBean("kubernetesReactiveDiscoveryClient");
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClient.class);
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class);
@@ -96,10 +96,11 @@ class KubernetesReactiveDiscoveryClientAutoConfigurationTests {
@Test
public void worksWithoutActuator() {
- contextRunner.withClassLoader(new FilteredClassLoader("org.springframework.boot.actuate")).run(context -> {
- assertThat(context).hasSingleBean(ReactiveDiscoveryClient.class);
- assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class);
- });
+ contextRunner.withPropertyValues("spring.main.cloud-platform=KUBERNETES")
+ .withClassLoader(new FilteredClassLoader("org.springframework.boot.actuate")).run(context -> {
+ assertThat(context).hasSingleBean(ReactiveDiscoveryClient.class);
+ assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class);
+ });
}
}
diff --git a/spring-cloud-kubernetes-fabric8-istio/src/main/java/org/springframework/cloud/kubernetes/fabric8/istio/IstioAutoConfiguration.java b/spring-cloud-kubernetes-fabric8-istio/src/main/java/org/springframework/cloud/kubernetes/fabric8/istio/IstioAutoConfiguration.java
index 58bbf235..5b0c165a 100644
--- a/spring-cloud-kubernetes-fabric8-istio/src/main/java/org/springframework/cloud/kubernetes/fabric8/istio/IstioAutoConfiguration.java
+++ b/spring-cloud-kubernetes-fabric8-istio/src/main/java/org/springframework/cloud/kubernetes/fabric8/istio/IstioAutoConfiguration.java
@@ -20,9 +20,10 @@ import io.fabric8.kubernetes.client.Config;
import me.snowdrop.istio.client.DefaultIstioClient;
import me.snowdrop.istio.client.IstioClient;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesEnabled;
+import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -33,7 +34,7 @@ import org.springframework.context.annotation.Configuration;
*/
@Configuration(proxyBeanMethods = false)
@ConditionalOnProperty(value = "spring.cloud.istio.enabled", matchIfMissing = true)
-@ConditionalOnKubernetesEnabled
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
public class IstioAutoConfiguration {
@Bean
diff --git a/spring-cloud-kubernetes-fabric8-istio/src/test/java/org/springframework/cloud/kubernetes/fabric8/istio/IstioAutoConfigurationTests.java b/spring-cloud-kubernetes-fabric8-istio/src/test/java/org/springframework/cloud/kubernetes/fabric8/istio/IstioAutoConfigurationTests.java
index 7dbead3f..a9799430 100644
--- a/spring-cloud-kubernetes-fabric8-istio/src/test/java/org/springframework/cloud/kubernetes/fabric8/istio/IstioAutoConfigurationTests.java
+++ b/spring-cloud-kubernetes-fabric8-istio/src/test/java/org/springframework/cloud/kubernetes/fabric8/istio/IstioAutoConfigurationTests.java
@@ -31,7 +31,8 @@ import static org.assertj.core.api.Assertions.assertThat;
*/
public class IstioAutoConfigurationTests {
- @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class)
+ @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
+ properties = "spring.main.cloud-platform=KUBERNETES")
@Nested
class IstioClientPresentByDefault {
@@ -45,8 +46,7 @@ public class IstioAutoConfigurationTests {
}
- @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
- properties = { "spring.cloud.kubernetes.enabled=false" })
+ @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class)
@Nested
class IstioClientNotPresentWhenKubernetesDisabled {
@@ -61,7 +61,7 @@ public class IstioAutoConfigurationTests {
}
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
- properties = { "spring.cloud.istio.enabled=true" })
+ properties = { "spring.main.cloud-platform=KUBERNETES", "spring.cloud.istio.enabled=true" })
@Nested
class IstioClientPresentWhenIstioEnabled {
diff --git a/spring-cloud-kubernetes-fabric8-leader/src/test/java/org/springframework/cloud/kubernetes/fabric8/leader/Fabric8LeaderAutoConfigurationTests.java b/spring-cloud-kubernetes-fabric8-leader/src/test/java/org/springframework/cloud/kubernetes/fabric8/leader/Fabric8LeaderAutoConfigurationTests.java
index 99140259..e0738198 100644
--- a/spring-cloud-kubernetes-fabric8-leader/src/test/java/org/springframework/cloud/kubernetes/fabric8/leader/Fabric8LeaderAutoConfigurationTests.java
+++ b/spring-cloud-kubernetes-fabric8-leader/src/test/java/org/springframework/cloud/kubernetes/fabric8/leader/Fabric8LeaderAutoConfigurationTests.java
@@ -31,10 +31,10 @@ import org.springframework.test.web.reactive.server.WebTestClient;
import static org.hamcrest.Matchers.containsString;
@ExtendWith(MockitoExtension.class)
-@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, properties = {
- // Make sure test passes without Kubernetes cluster
- "spring.cloud.kubernetes.leader.autoStartup=false", "management.endpoints.web.exposure.include=info",
- "management.endpoint.info.show-details=always", "management.info.kubernetes.enabled=true" })
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
+ properties = { "spring.main.cloud-platform=KUBERNETES", "spring.cloud.kubernetes.leader.autoStartup=false",
+ "management.endpoints.web.exposure.include=info", "management.endpoint.info.show-details=always",
+ "management.info.kubernetes.enabled=true" })
public class Fabric8LeaderAutoConfigurationTests {
@Value("${local.server.port}")
diff --git a/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8LoadBalancerAutoConfiguration.java b/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8LoadBalancerAutoConfiguration.java
index 4394620e..5a55951e 100644
--- a/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8LoadBalancerAutoConfiguration.java
+++ b/spring-cloud-kubernetes-fabric8-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8LoadBalancerAutoConfiguration.java
@@ -16,9 +16,10 @@
package org.springframework.cloud.kubernetes.fabric8.loadbalancer;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.cloud.CloudPlatform;
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;
@@ -32,7 +33,7 @@ import org.springframework.context.annotation.Configuration;
*/
@Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(KubernetesLoadBalancerProperties.class)
-@ConditionalOnKubernetesEnabled
+@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
@ConditionalOnProperty(value = "spring.cloud.kubernetes.loadbalancer.enabled", matchIfMissing = true)
@LoadBalancerClients(defaultConfiguration = Fabric8LoadBalancerClientConfiguration.class)
public class Fabric8LoadBalancerAutoConfiguration {
diff --git a/spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8LoadBalancerAutoConfigurationTests.java b/spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8LoadBalancerAutoConfigurationTests.java
index 20ea0426..df1ae00f 100644
--- a/spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8LoadBalancerAutoConfigurationTests.java
+++ b/spring-cloud-kubernetes-fabric8-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/Fabric8LoadBalancerAutoConfigurationTests.java
@@ -41,31 +41,31 @@ class Fabric8LoadBalancerAutoConfigurationTests {
@Test
void kubernetesLoadBalancerWhenKubernetesDisabledAndLoadBalancerDisabled() {
- setup("spring.cloud.kubernetes.enabled=false", "spring.cloud.kubernetes.loadbalancer.enabled=false");
+ setup("spring.cloud.kubernetes.loadbalancer.enabled=false");
assertThat(this.context.getBeanNamesForType(Fabric8ServiceInstanceMapper.class)).isEmpty();
}
@Test
void kubernetesLoadBalancerWhenKubernetesDisabledAndLoadBalancerEnabled() {
- setup("spring.cloud.kubernetes.enabled=false", "spring.cloud.kubernetes.loadbalancer.enabled=true");
+ setup("spring.cloud.kubernetes.loadbalancer.enabled=true");
assertThat(this.context.getBeanNamesForType(Fabric8ServiceInstanceMapper.class)).isEmpty();
}
@Test
void kubernetesLoadBalancerWhenKubernetesEnabledAndLoadBalancerEnabled() {
- setup("spring.cloud.kubernetes.enabled=true", "spring.cloud.kubernetes.loadbalancer.enabled=true");
+ setup("spring.main.cloud-platform=KUBERNETES", "spring.cloud.kubernetes.loadbalancer.enabled=true");
assertThat(this.context.getBeanNamesForType(Fabric8ServiceInstanceMapper.class)).hasSize(1);
}
@Test
void kubernetesLoadBalancerWhenKubernetesEnabledAndLoadBalancerDisabled() {
- setup("spring.cloud.kubernetes.enabled=true", "spring.cloud.kubernetes.loadbalancer.enabled=false");
+ setup("spring.cloud.kubernetes.loadbalancer.enabled=false");
assertThat(this.context.getBeanNamesForType(Fabric8ServiceInstanceMapper.class)).isEmpty();
}
@Test
void kubernetesLoadBalancerWhenDefaultProperties() {
- setup();
+ setup("spring.main.cloud-platform=KUBERNETES");
assertThat(this.context.getBeanNamesForType(Fabric8ServiceInstanceMapper.class)).hasSize(1);
}
diff --git a/spring-cloud-kubernetes-integration-tests/load-balancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/LoadBalancerAllNamespacesTests.java b/spring-cloud-kubernetes-integration-tests/load-balancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/LoadBalancerAllNamespacesTests.java
index 921013e5..13a9d727 100644
--- a/spring-cloud-kubernetes-integration-tests/load-balancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/LoadBalancerAllNamespacesTests.java
+++ b/spring-cloud-kubernetes-integration-tests/load-balancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/LoadBalancerAllNamespacesTests.java
@@ -36,7 +36,8 @@ import org.springframework.test.context.TestPropertySource;
import org.springframework.web.client.RestTemplate;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
-@TestPropertySource(properties = "spring.cloud.kubernetes.discovery.all-namespaces=true")
+@TestPropertySource(properties = { "spring.main.cloud-platform=KUBERNETES",
+ "spring.cloud.kubernetes.discovery.all-namespaces=true" })
@EnableKubernetesMockClient(crud = true, https = false)
class LoadBalancerAllNamespacesTests {
diff --git a/spring-cloud-kubernetes-integration-tests/load-balancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/LoadBalancerTests.java b/spring-cloud-kubernetes-integration-tests/load-balancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/LoadBalancerTests.java
index 31d3f8d3..a05d854c 100644
--- a/spring-cloud-kubernetes-integration-tests/load-balancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/LoadBalancerTests.java
+++ b/spring-cloud-kubernetes-integration-tests/load-balancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/LoadBalancerTests.java
@@ -32,7 +32,8 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.web.server.LocalServerPort;
import org.springframework.web.client.RestTemplate;
-@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
+ properties = "spring.main.cloud-platform=KUBERNETES")
@EnableKubernetesMockClient(crud = true, https = false)
class LoadBalancerTests {
diff --git a/spring-cloud-kubernetes-integration-tests/load-balancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/LoadBalancerWithServiceTests.java b/spring-cloud-kubernetes-integration-tests/load-balancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/LoadBalancerWithServiceTests.java
index baa3c7a1..29c864f6 100644
--- a/spring-cloud-kubernetes-integration-tests/load-balancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/LoadBalancerWithServiceTests.java
+++ b/spring-cloud-kubernetes-integration-tests/load-balancer/src/test/java/org/springframework/cloud/kubernetes/fabric8/loadbalancer/LoadBalancerWithServiceTests.java
@@ -43,8 +43,8 @@ import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
-@TestPropertySource(properties = { "spring.cloud.kubernetes.loadbalancer.mode=SERVICE",
- "spring.cloud.kubernetes.loadbalancer.enabled=true" })
+@TestPropertySource(properties = { "spring.main.cloud-platform=KUBERNETES",
+ "spring.cloud.kubernetes.loadbalancer.mode=SERVICE", "spring.cloud.kubernetes.loadbalancer.enabled=true" })
@EnableKubernetesMockClient(crud = true, https = false)
class LoadBalancerWithServiceTests {