diff --git a/docs/src/main/asciidoc/_configprops.adoc b/docs/src/main/asciidoc/_configprops.adoc index 76b149db..f4b7f093 100644 --- a/docs/src/main/asciidoc/_configprops.adoc +++ b/docs/src/main/asciidoc/_configprops.adoc @@ -50,8 +50,8 @@ |spring.cloud.kubernetes.config.enable-api | `+++true+++` | |spring.cloud.kubernetes.config.enabled | `+++true+++` | Enable the ConfigMap property source locator. |spring.cloud.kubernetes.config.fail-fast | `+++false+++` | -|spring.cloud.kubernetes.config.include-profile-specific-sources | `+++true+++` | -|spring.cloud.kubernetes.config.labels | | +|spring.cloud.kubernetes.config.include-profile-specific-sources | `+++true+++` | +|spring.cloud.kubernetes.config.labels | | |spring.cloud.kubernetes.config.name | | |spring.cloud.kubernetes.config.namespace | | |spring.cloud.kubernetes.config.paths | | @@ -77,7 +77,8 @@ |spring.cloud.kubernetes.discovery.order | | |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.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 @@ -115,4 +116,4 @@ |spring.cloud.kubernetes.secrets.sources | | |spring.cloud.kubernetes.secrets.use-name-as-prefix | `+++false+++` | -|=== \ No newline at end of file +|=== 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 91ae4eb4..75406451 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 @@ -19,8 +19,6 @@ package org.springframework.cloud.kubernetes.client.config; import io.kubernetes.client.openapi.apis.CoreV1Api; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform; -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.ConditionalOnKubernetesSecretsEnabled; @@ -41,7 +39,6 @@ import org.springframework.context.annotation.Import; @Configuration(proxyBeanMethods = false) @AutoConfigureAfter(KubernetesBootstrapConfiguration.class) @Import({ KubernetesCommonsAutoConfiguration.class, KubernetesClientAutoConfiguration.class }) -@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES) public class KubernetesClientBootstrapConfiguration { @Bean diff --git a/spring-cloud-kubernetes-client-config/src/main/java/org/springframework/cloud/kubernetes/client/config/KubernetesClientRetryBootstrapConfiguration.java b/spring-cloud-kubernetes-client-config/src/main/java/org/springframework/cloud/kubernetes/client/config/KubernetesClientRetryBootstrapConfiguration.java index c1ea424d..65d8ebbc 100644 --- a/spring-cloud-kubernetes-client-config/src/main/java/org/springframework/cloud/kubernetes/client/config/KubernetesClientRetryBootstrapConfiguration.java +++ b/spring-cloud-kubernetes-client-config/src/main/java/org/springframework/cloud/kubernetes/client/config/KubernetesClientRetryBootstrapConfiguration.java @@ -20,8 +20,6 @@ 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.cloud.CloudPlatform; import org.springframework.cloud.kubernetes.client.KubernetesClientAutoConfiguration; import org.springframework.cloud.kubernetes.commons.KubernetesCommonsAutoConfiguration; import org.springframework.cloud.kubernetes.commons.KubernetesNamespaceProvider; @@ -42,7 +40,6 @@ import org.springframework.context.annotation.Import; @AutoConfigureAfter(KubernetesBootstrapConfiguration.class) @AutoConfigureBefore(KubernetesClientBootstrapConfiguration.class) @Import({ KubernetesCommonsAutoConfiguration.class, KubernetesClientAutoConfiguration.class }) -@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES) @ConditionalOnKubernetesConfigOrSecretsRetryEnabled public class KubernetesClientRetryBootstrapConfiguration { diff --git a/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configuration-watcher/src/main/java/org/springframework/cloud/kubernetes/configuration/watcher/ConfigMapWatcherChangeDetector.java b/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configuration-watcher/src/main/java/org/springframework/cloud/kubernetes/configuration/watcher/ConfigMapWatcherChangeDetector.java index e0484849..9f098903 100644 --- a/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configuration-watcher/src/main/java/org/springframework/cloud/kubernetes/configuration/watcher/ConfigMapWatcherChangeDetector.java +++ b/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configuration-watcher/src/main/java/org/springframework/cloud/kubernetes/configuration/watcher/ConfigMapWatcherChangeDetector.java @@ -67,8 +67,14 @@ public abstract class ConfigMapWatcherChangeDetector extends KubernetesClientEve + configMap.getMetadata().getName() + " to be published in " + k8SConfigurationProperties.getRefreshDelay().toMillis() + " milliseconds"); } - executorService.schedule(() -> triggerRefresh(configMap).subscribe(), - k8SConfigurationProperties.getRefreshDelay().toMillis(), TimeUnit.MILLISECONDS); + executorService.schedule(() -> { + try { + triggerRefresh(configMap).subscribe(); + } + catch (Throwable t) { + log.warn("Error when refreshing ConfigMap " + configMap.getMetadata().getName(), t); + } + }, k8SConfigurationProperties.getRefreshDelay().toMillis(), TimeUnit.MILLISECONDS); } else { if (log.isDebugEnabled()) { diff --git a/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configuration-watcher/src/main/java/org/springframework/cloud/kubernetes/configuration/watcher/SecretsWatcherChangeDetector.java b/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configuration-watcher/src/main/java/org/springframework/cloud/kubernetes/configuration/watcher/SecretsWatcherChangeDetector.java index 31f0f9a3..04e8a885 100644 --- a/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configuration-watcher/src/main/java/org/springframework/cloud/kubernetes/configuration/watcher/SecretsWatcherChangeDetector.java +++ b/spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configuration-watcher/src/main/java/org/springframework/cloud/kubernetes/configuration/watcher/SecretsWatcherChangeDetector.java @@ -76,8 +76,14 @@ public abstract class SecretsWatcherChangeDetector extends KubernetesClientEvent + " to be published in " + k8SConfigurationProperties.getRefreshDelay().toMillis() + " milliseconds"); } - executorService.schedule(() -> triggerRefresh(secret).subscribe(), - k8SConfigurationProperties.getRefreshDelay().toMillis(), TimeUnit.MILLISECONDS); + executorService.schedule(() -> { + try { + triggerRefresh(secret).subscribe(); + } + catch (Throwable t) { + log.warn("Error when refreshing ConfigMap " + secret.getMetadata().getName(), t); + } + }, k8SConfigurationProperties.getRefreshDelay().toMillis(), TimeUnit.MILLISECONDS); } else { if (log.isDebugEnabled()) { diff --git a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/MultipleConfigMapsTests.java b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/MultipleConfigMapsTests.java index 535cab7e..200f9c4d 100644 --- a/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/MultipleConfigMapsTests.java +++ b/spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/MultipleConfigMapsTests.java @@ -38,7 +38,7 @@ import org.springframework.test.web.reactive.server.WebTestClient; */ @ExtendWith(SpringExtension.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = ExampleApp.class, - properties = { "spring.cloud.bootstrap.name=multiplecms", "spring.main.cloud-platform=KUBERNETES" }) + properties = { "spring.cloud.bootstrap.name=multiplecms" }) @AutoConfigureWebTestClient @EnableKubernetesMockClient(crud = true, https = false) abstract class MultipleConfigMapsTests {