From 0b8e1c9810c5dda991520d65ceab46b9ce0ebe1b Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Tue, 13 Nov 2018 11:44:15 -0500 Subject: [PATCH] Allows disabling the SecretsPropertySourceLocator with a property. fixes gh-125 --- .../kubernetes/config/BootstrapConfiguration.java | 3 ++- .../additional-spring-configuration-metadata.json | 15 +++++++++++++++ .../config/KubernetesConfigConfigurationTest.java | 4 ++-- 3 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 spring-cloud-kubernetes-config/src/main/resources/META-INF/additional-spring-configuration-metadata.json 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");