diff --git a/spring-cloud-kubernetes-config/src/main/java/org/springframework/cloud/kubernetes/config/BootstrapConfiguration.java b/spring-cloud-kubernetes-config/src/main/java/org/springframework/cloud/kubernetes/config/BootstrapConfiguration.java index a702852b..9eecc82d 100644 --- a/spring-cloud-kubernetes-config/src/main/java/org/springframework/cloud/kubernetes/config/BootstrapConfiguration.java +++ b/spring-cloud-kubernetes-config/src/main/java/org/springframework/cloud/kubernetes/config/BootstrapConfiguration.java @@ -39,18 +39,19 @@ public class BootstrapConfiguration { @Import(KubernetesAutoConfiguration.class) @EnableConfigurationProperties({ ConfigMapConfigProperties.class, SecretsConfigProperties.class }) - @ConditionalOnProperty(name = "spring.cloud.kubernetes.config.enabled", matchIfMissing = true) protected static class KubernetesPropertySourceConfiguration { @Autowired private KubernetesClient client; @Bean + @ConditionalOnProperty(name = "spring.cloud.kubernetes.config.enabled", matchIfMissing = true) public ConfigMapPropertySourceLocator configMapPropertySourceLocator( ConfigMapConfigProperties properties) { return new ConfigMapPropertySourceLocator(client, properties); } @Bean + @ConditionalOnProperty(name = "spring.cloud.kubernetes.secrets.enabled", matchIfMissing = true) public SecretsPropertySourceLocator secretsPropertySourceLocator( SecretsConfigProperties properties) { return new SecretsPropertySourceLocator(client, properties); diff --git a/spring-cloud-kubernetes-config/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-cloud-kubernetes-config/src/main/resources/META-INF/additional-spring-configuration-metadata.json new file mode 100644 index 00000000..74408790 --- /dev/null +++ b/spring-cloud-kubernetes-config/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -0,0 +1,15 @@ +{"properties": [ + { + "name": "spring.cloud.kubernetes.config.enabled", + "type": "java.lang.Boolean", + "description": "Enable the ConfigMap property source locator.", + "defaultValue": true + }, + { + "name": "spring.cloud.kubernetes.secrets.enabled", + "type": "java.lang.Boolean", + "description": "Enable the Secrets property source locator.", + "defaultValue": true + } +]} + diff --git a/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/KubernetesConfigConfigurationTest.java b/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/KubernetesConfigConfigurationTest.java index a137d3d2..c5e8131f 100644 --- a/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/KubernetesConfigConfigurationTest.java +++ b/spring-cloud-kubernetes-config/src/test/java/org/springframework/cloud/kubernetes/config/KubernetesConfigConfigurationTest.java @@ -37,12 +37,12 @@ public class KubernetesConfigConfigurationTest { @Test public void kubernetesWhenKubernetesConfigDisabled() throws Exception { - setup("spring.cloud.kubernetes.config.enabled=false"); + setup("spring.cloud.kubernetes.config.enabled=false", + "spring.cloud.kubernetes.secrets.enabled=false"); assertFalse(context.containsBean("configMapPropertySourceLocator")); assertFalse(context.containsBean("secretsPropertySourceLocator")); } - @Test public void kubernetesDefaultEnabled() throws Exception { setup("spring.cloud.kubernetes.enabled=true");