This commit is contained in:
erabii
2022-07-05 22:58:57 +03:00
committed by GitHub
parent 87f67440f6
commit 74258a8bac
30 changed files with 57 additions and 159 deletions

View File

@@ -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.ConditionalOnKubernetesEnabled;
@@ -43,7 +41,6 @@ import org.springframework.context.annotation.Import;
@ConditionalOnKubernetesEnabled
@AutoConfigureAfter(KubernetesBootstrapConfiguration.class)
@Import({ KubernetesCommonsAutoConfiguration.class, KubernetesClientAutoConfiguration.class })
@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
public class KubernetesClientBootstrapConfiguration {
@Bean

View File

@@ -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.ConditionalOnKubernetesEnabled;
import org.springframework.cloud.kubernetes.commons.KubernetesCommonsAutoConfiguration;
@@ -44,7 +42,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 {

View File

@@ -55,7 +55,7 @@ public class KubernetesClientBootstrapConfigurationTests {
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class,
properties = { "spring.cloud.kubernetes.secrets.enabled=true",
"spring.cloud.kubernetes.client.namespace=default", "spring.main.cloud-platform=KUBERNETES" })
"spring.cloud.kubernetes.client.namespace=default" })
@Nested
class KubernetesEnabledOnPurpose {
@@ -71,8 +71,7 @@ public class KubernetesClientBootstrapConfigurationTests {
}
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class,
properties = { "spring.cloud.kubernetes.client.namespace=default",
"spring.main.cloud-platform=KUBERNETES" })
properties = { "spring.cloud.kubernetes.client.namespace=default" })
@Nested
class KubernetesEnabled {
@@ -88,7 +87,7 @@ public class KubernetesClientBootstrapConfigurationTests {
}
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class,
properties = { "spring.cloud.kubernetes.config.enabled=false", "spring.main.cloud-platform=KUBERNETES" })
properties = { "spring.cloud.kubernetes.config.enabled=false" })
@Nested
class KubernetesEnabledConfigDisabled {
@@ -105,7 +104,7 @@ public class KubernetesClientBootstrapConfigurationTests {
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class,
properties = { "spring.cloud.kubernetes.secrets.enabled=false",
"spring.cloud.kubernetes.client.namespace=default", "spring.main.cloud-platform=KUBERNETES" })
"spring.cloud.kubernetes.client.namespace=default" })
@Nested
class KubernetesEnabledSecretsDisabled {
@@ -122,7 +121,7 @@ public class KubernetesClientBootstrapConfigurationTests {
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class,
properties = { "spring.cloud.kubernetes.secrets.enabled=false",
"spring.cloud.kubernetes.config.enabled=false", "spring.main.cloud-platform=KUBERNETES" })
"spring.cloud.kubernetes.config.enabled=false" })
@Nested
class KubernetesEnabledSecretsAndConfigDisabled {
@@ -137,40 +136,4 @@ public class KubernetesClientBootstrapConfigurationTests {
}
// tests that @ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES) has the desired
// effect, meaning when it is enabled, both property sources are present
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class,
properties = { "spring.main.cloud-platform=KUBERNETES", "spring.cloud.kubernetes.client.namespace=abc" })
@Nested
class KubernetesClientBootstrapConfigurationInsideK8s {
@Autowired
ConfigurableApplicationContext context;
@Test
public void bothPresent() {
assertThat(context.getBeanNamesForType(KubernetesClientConfigMapPropertySourceLocator.class)).hasSize(1);
assertThat(context.getBeanNamesForType(KubernetesClientSecretsPropertySourceLocator.class)).hasSize(1);
}
}
// 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" })
@Nested
class KubernetesClientBootstrapConfigurationNotInsideK8s {
@Autowired
ConfigurableApplicationContext context;
@Test
public void bothMissing() {
assertThat(context.getBeanNamesForType(KubernetesClientConfigMapPropertySourceLocator.class)).hasSize(0);
assertThat(context.getBeanNamesForType(KubernetesClientSecretsPropertySourceLocator.class)).hasSize(0);
}
}
}

View File

@@ -40,7 +40,7 @@ import org.springframework.test.web.reactive.server.WebTestClient;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = IncludeProfileSpecificSourcesApp.class,
properties = { "spring.cloud.bootstrap.name=include-profile-specific-sources",
"include.profile.specific.sources=true", "spring.main.cloud-platform=KUBERNETES" })
"include.profile.specific.sources=true" })
@AutoConfigureWebTestClient
@ActiveProfiles("dev")
class KubernetesClientConfigMapIncludeProfileSpecificSourcesTests {

View File

@@ -37,8 +37,7 @@ import org.springframework.test.web.reactive.server.WebTestClient;
*/
@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = WithPrefixApp.class,
properties = { "spring.cloud.bootstrap.name=config-map-name-as-prefix", "config.map.name.as.prefix.stub=true",
"spring.main.cloud-platform=KUBERNETES" })
properties = { "spring.cloud.bootstrap.name=config-map-name-as-prefix", "config.map.name.as.prefix.stub=true" })
@AutoConfigureWebTestClient
public class KubernetesClientConfigMapNameAsPrefixTests {

View File

@@ -120,7 +120,7 @@ public class KubernetesClientConfigMapPropertySourceLocatorRetryTests {
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE,
properties = { "spring.cloud.kubernetes.client.namespace=default",
"spring.cloud.kubernetes.config.fail-fast=true",
"spring.cloud.kubernetes.config.retry.max-attempts=5", "spring.main.cloud-platform=KUBERNETES" },
"spring.cloud.kubernetes.config.retry.max-attempts=5" },
classes = App.class)
class ConfigRetryEnabled {
@@ -202,7 +202,7 @@ public class KubernetesClientConfigMapPropertySourceLocatorRetryTests {
@Nested
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.NONE, properties = {
"spring.cloud.kubernetes.client.namespace=default", "spring.main.cloud-platform=KUBERNETES" },
"spring.cloud.kubernetes.client.namespace=default" },
classes = App.class)
class ConfigFailFastDisabled {
@@ -227,7 +227,7 @@ public class KubernetesClientConfigMapPropertySourceLocatorRetryTests {
properties = { "spring.cloud.kubernetes.client.namespace=default",
"spring.cloud.kubernetes.config.fail-fast=true",
"spring.cloud.kubernetes.config.retry.enabled=false",
"spring.cloud.kubernetes.secrets.fail-fast=true", "spring.main.cloud-platform=KUBERNETES" },
"spring.cloud.kubernetes.secrets.fail-fast=true" },
classes = App.class)
class ConfigRetryDisabledButSecretsRetryEnabled {
@@ -264,7 +264,7 @@ public class KubernetesClientConfigMapPropertySourceLocatorRetryTests {
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE,
properties = { "spring.cloud.kubernetes.client.namespace=default",
"spring.cloud.kubernetes.config.fail-fast=true",
"spring.cloud.kubernetes.config.retry.enabled=false", "spring.main.cloud-platform=KUBERNETES" },
"spring.cloud.kubernetes.config.retry.enabled=false" },
classes = App.class)
class ConfigFailFastEnabledButRetryDisabled {
@@ -321,8 +321,7 @@ public class KubernetesClientConfigMapPropertySourceLocatorRetryTests {
@Test
public void doesNotContainRetryableConfigMapPropertySourceLocator() throws Exception {
stubFor(get(API).willReturn(aResponse().withStatus(500).withBody("Internal Server Error")));
setup("debug=true", "spring.main.cloud-platform=KUBERNETES",
"spring.cloud.kubernetes.test.enable-retry=true");
setup("debug=true", "spring.cloud.kubernetes.test.enable-retry=true");
assertThat(context.containsBean("retryableConfigMapPropertySourceLocator")).isFalse();
}

View File

@@ -120,7 +120,7 @@ public class KubernetesClientSecretsPropertySourceLocatorRetryTests {
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, properties = {
"spring.cloud.kubernetes.client.namespace=default", "spring.cloud.kubernetes.secrets.fail-fast=true",
"spring.cloud.kubernetes.secrets.retry.max-attempts=5", "spring.cloud.kubernetes.secrets.name=my-secret",
"spring.cloud.kubernetes.secrets.enable-api=true", "spring.main.cloud-platform=KUBERNETES" },
"spring.cloud.kubernetes.secrets.enable-api=true" },
classes = App.class)
class SecretsRetryEnabled {
@@ -202,8 +202,7 @@ public class KubernetesClientSecretsPropertySourceLocatorRetryTests {
@Nested
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE,
properties = { "spring.cloud.kubernetes.client.namespace=default",
"spring.cloud.kubernetes.secrets.name=my-secret", "spring.cloud.kubernetes.secrets.enable-api=true",
"spring.main.cloud-platform=KUBERNETES" },
"spring.cloud.kubernetes.secrets.name=my-secret", "spring.cloud.kubernetes.secrets.enable-api=true" },
classes = App.class)
class SecretsFailFastDisabled {
@@ -229,7 +228,7 @@ public class KubernetesClientSecretsPropertySourceLocatorRetryTests {
"spring.cloud.kubernetes.secrets.fail-fast=true",
"spring.cloud.kubernetes.secrets.retry.enabled=false",
"spring.cloud.kubernetes.config.fail-fast=true", "spring.cloud.kubernetes.secrets.name=my-secret",
"spring.cloud.kubernetes.secrets.enable-api=true", "spring.main.cloud-platform=KUBERNETES" },
"spring.cloud.kubernetes.secrets.enable-api=true" },
classes = App.class)
class SecretsRetryDisabledButConfigRetryEnabled {
@@ -266,7 +265,7 @@ public class KubernetesClientSecretsPropertySourceLocatorRetryTests {
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, properties = {
"spring.cloud.kubernetes.client.namespace=default", "spring.cloud.kubernetes.secrets.fail-fast=true",
"spring.cloud.kubernetes.secrets.retry.enabled=false", "spring.cloud.kubernetes.secrets.name=my-secret",
"spring.cloud.kubernetes.secrets.enable-api=true", "spring.main.cloud-platform=KUBERNETES" },
"spring.cloud.kubernetes.secrets.enable-api=true" },
classes = App.class)
class SecretsFailFastEnabledButRetryDisabled {
@@ -323,7 +322,7 @@ public class KubernetesClientSecretsPropertySourceLocatorRetryTests {
@Test
public void doesNotContainRetryableSecretsPropertySourceLocator() throws Exception {
stubFor(get(API).willReturn(aResponse().withStatus(500).withBody("Internal Server Error")));
setup("debug=true", "spring.main.cloud-platform=KUBERNETES",
setup("debug=true",
"spring.cloud.kubernetes.test.enable-retry=true", "spring.cloud.kubernetes.secrets.name=my-secret",
"spring.cloud.kubernetes.secrets.enable-api=true");
assertThat(context.containsBean("retryableSecretsPropertySourceLocator")).isFalse();

View File

@@ -152,8 +152,7 @@ public class KubernetesClientConfigReloadAutoConfigurationTest {
@Test
public void kubernetesReloadEnabledWithPolling() throws Exception {
setup("spring.cloud.kubernetes.reload.enabled=true", "spring.cloud.kubernetes.reload.mode=polling",
"spring.main.cloud-platform=KUBERNETES");
setup("spring.cloud.kubernetes.reload.enabled=true", "spring.cloud.kubernetes.reload.mode=polling");
assertThat(context.containsBean("configMapPropertySourceLocator")).isTrue();
assertThat(context.containsBean("secretsPropertySourceLocator")).isTrue();
assertThat(context.containsBean("configMapPropertyChangePollingWatcher")).isTrue();
@@ -164,8 +163,7 @@ public class KubernetesClientConfigReloadAutoConfigurationTest {
@Test
public void kubernetesReloadEnabledWithEvent() throws Exception {
setup("spring.cloud.kubernetes.reload.enabled=true", "spring.cloud.kubernetes.reload.mode=event",
"spring.main.cloud-platform=KUBERNETES");
setup("spring.cloud.kubernetes.reload.enabled=true", "spring.cloud.kubernetes.reload.mode=event");
assertThat(context.containsBean("configMapPropertyChangePollingWatcher")).isFalse();
assertThat(context.containsBean("secretsPropertyChangePollingWatcher")).isFalse();
assertThat(context.containsBean("configMapPropertyChangeEventWatcher")).isTrue();
@@ -176,21 +174,21 @@ public class KubernetesClientConfigReloadAutoConfigurationTest {
@Test
public void kubernetesConfigAndSecretEnabledByDefault() throws Exception {
setup("spring.main.cloud-platform=KUBERNETES");
setup();
assertThat(context.containsBean("configMapPropertySourceLocator")).isTrue();
assertThat(context.containsBean("secretsPropertySourceLocator")).isTrue();
}
@Test
public void kubernetesConfigEnabledButSecretDisabled() throws Exception {
setup("spring.cloud.kubernetes.secrets.enabled=false", "spring.main.cloud-platform=KUBERNETES");
setup("spring.cloud.kubernetes.secrets.enabled=false");
assertThat(context.containsBean("configMapPropertySourceLocator")).isTrue();
assertThat(context.containsBean("secretsPropertySourceLocator")).isFalse();
}
@Test
public void kubernetesSecretsEnabledButConfigDisabled() throws Exception {
setup("spring.cloud.kubernetes.config.enabled=false", "spring.main.cloud-platform=KUBERNETES");
setup("spring.cloud.kubernetes.config.enabled=false");
assertThat(context.containsBean("configMapPropertySourceLocator")).isFalse();
assertThat(context.containsBean("secretsPropertySourceLocator")).isTrue();
}

View File

@@ -22,8 +22,6 @@ import io.fabric8.kubernetes.client.KubernetesClient;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
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;
@@ -50,7 +48,6 @@ import org.springframework.core.env.Environment;
@Import({ KubernetesCommonsAutoConfiguration.class, Fabric8AutoConfiguration.class })
@ConditionalOnClass({ ConfigMap.class, Secret.class })
@AutoConfigureAfter(KubernetesBootstrapConfiguration.class)
@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
public class Fabric8BootstrapConfiguration {
@Bean

View File

@@ -23,8 +23,6 @@ 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.cloud.CloudPlatform;
import org.springframework.cloud.kubernetes.commons.ConditionalOnKubernetesEnabled;
import org.springframework.cloud.kubernetes.commons.KubernetesCommonsAutoConfiguration;
import org.springframework.cloud.kubernetes.commons.KubernetesNamespaceProvider;
@@ -48,7 +46,6 @@ import org.springframework.context.annotation.Import;
@Import({ KubernetesCommonsAutoConfiguration.class, Fabric8AutoConfiguration.class })
@ConditionalOnClass({ ConfigMap.class, Secret.class })
@AutoConfigureAfter(KubernetesBootstrapConfiguration.class)
@ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES)
@ConditionalOnKubernetesConfigOrSecretsRetryEnabled
public class Fabric8RetryBootstrapConfiguration {

View File

@@ -42,8 +42,7 @@ import org.springframework.test.web.reactive.server.WebTestClient;
@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = IncludeProfileSpecificSourcesApp.class,
properties = { "spring.cloud.bootstrap.name=include-profile-specific-sources",
"spring.main.cloud-platform=KUBERNETES" })
properties = { "spring.cloud.bootstrap.name=include-profile-specific-sources" })
@AutoConfigureWebTestClient
@EnableKubernetesMockClient(crud = true, https = false)
@ActiveProfiles("dev")

View File

@@ -40,8 +40,7 @@ import org.springframework.test.web.reactive.server.WebTestClient;
*/
@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = WithPrefixApp.class,
properties = { "spring.cloud.bootstrap.name=config-map-name-as-prefix",
"spring.main.cloud-platform=KUBERNETES" })
properties = { "spring.cloud.bootstrap.name=config-map-name-as-prefix"})
@AutoConfigureWebTestClient
@EnableKubernetesMockClient(crud = true, https = false)
class ConfigMapWithPrefixTests {

View File

@@ -42,8 +42,7 @@ import static org.assertj.core.util.Lists.newArrayList;
"spring.cloud.kubernetes.config.enableApi=false",
"spring.cloud.kubernetes.config.paths=" + ConfigMapsFromFilePathsTests.FIRST_FILE_NAME_FULL_PATH + ","
+ ConfigMapsFromFilePathsTests.SECOND_FILE_NAME_FULL_PATH + ","
+ ConfigMapsFromFilePathsTests.FIRST_FILE_NAME_DUPLICATED_FULL_PATH,
"spring.main.cloud-platform=KUBERNETES" })
+ ConfigMapsFromFilePathsTests.FIRST_FILE_NAME_DUPLICATED_FULL_PATH })
@EnableKubernetesMockClient(crud = true, https = false)
public class ConfigMapsFromFilePathsTests {

View File

@@ -43,8 +43,7 @@ import static org.assertj.core.util.Lists.newArrayList;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
properties = { "spring.application.name=" + ConfigMapsMixedTests.APPLICATION_NAME,
"spring.cloud.kubernetes.config.enableApi=true",
"spring.cloud.kubernetes.config.paths=" + ConfigMapsMixedTests.FILE_NAME_FULL_PATH,
"spring.main.cloud-platform=KUBERNETES" })
"spring.cloud.kubernetes.config.paths=" + ConfigMapsMixedTests.FILE_NAME_FULL_PATH })
@EnableKubernetesMockClient(crud = true, https = false)
public class ConfigMapsMixedTests {

View File

@@ -41,8 +41,7 @@ import static org.assertj.core.api.Assertions.assertThat;
*/
@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
properties = { "spring.application.name=configmap-example", "spring.cloud.kubernetes.reload.enabled=false",
"spring.main.cloud-platform=KUBERNETES" })
properties = { "spring.application.name=configmap-example", "spring.cloud.kubernetes.reload.enabled=false"})
@AutoConfigureWebTestClient
@EnableKubernetesMockClient(crud = true, https = false)
public class ConfigMapsTests {

View File

@@ -43,7 +43,7 @@ import static org.springframework.cloud.kubernetes.fabric8.config.ConfigMapTestU
@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = RANDOM_PORT, classes = App.class,
properties = { "spring.application.name=configmap-with-active-profile-name-example",
"spring.cloud.kubernetes.reload.enabled=false", "spring.main.cloud-platform=KUBERNETES" })
"spring.cloud.kubernetes.reload.enabled=false" })
@ActiveProfiles("development")
@AutoConfigureWebTestClient
@EnableKubernetesMockClient(crud = true, https = false)

View File

@@ -41,7 +41,7 @@ import org.springframework.test.web.reactive.server.WebTestClient;
@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
properties = { "spring.application.name=configmap-with-profile-example",
"spring.cloud.kubernetes.reload.enabled=false", "spring.main.cloud-platform=KUBERNETES" })
"spring.cloud.kubernetes.reload.enabled=false" })
@ActiveProfiles({ "production", "us-east" })
@AutoConfigureWebTestClient
@EnableKubernetesMockClient(crud = true, https = false)

View File

@@ -41,7 +41,7 @@ import static org.springframework.cloud.kubernetes.fabric8.config.ConfigMapTestU
@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
properties = { "spring.application.name=configmap-with-profile-no-active-profiles-example",
"spring.cloud.kubernetes.reload.enabled=false", "spring.main.cloud-platform=KUBERNETES" })
"spring.cloud.kubernetes.reload.enabled=false" })
@AutoConfigureWebTestClient
@EnableKubernetesMockClient(crud = true, https = false)
public class ConfigMapsWithProfilesNoActiveProfileTests {

View File

@@ -40,7 +40,7 @@ import org.springframework.test.web.reactive.server.WebTestClient;
@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
properties = { "spring.application.name=configmap-with-profile-example",
"spring.cloud.kubernetes.reload.enabled=false", "spring.main.cloud-platform=KUBERNETES" })
"spring.cloud.kubernetes.reload.enabled=false" })
@ActiveProfiles("development")
@AutoConfigureWebTestClient
@EnableKubernetesMockClient(crud = true, https = false)

View File

@@ -37,7 +37,7 @@ import org.springframework.test.web.reactive.server.WebTestClient;
@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
properties = { "spring.application.name=configmap-without-profile-example",
"spring.cloud.kubernetes.reload.enabled=false", "spring.main.cloud-platform=KUBERNETES" })
"spring.cloud.kubernetes.reload.enabled=false" })
@ActiveProfiles("development")
@AutoConfigureWebTestClient
@EnableKubernetesMockClient(crud = true, https = false)

View File

@@ -39,7 +39,7 @@ import static org.assertj.core.api.Assertions.assertThat;
@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", "spring.main.cloud-platform=KUBERNETES" })
"spring.cloud.kubernetes.secrets.enableApi=true" })
@EnableKubernetesMockClient(crud = true, https = false)
public class CoreTest {

View File

@@ -48,7 +48,7 @@ public class Fabric8BootstrapConfigurationTests {
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class,
properties = { "spring.cloud.kubernetes.secrets.enabled=true",
"spring.cloud.kubernetes.client.namespace=default", "spring.main.cloud-platform=KUBERNETES" })
"spring.cloud.kubernetes.client.namespace=default" })
@Nested
class KubernetesEnabledOnPurpose {
@@ -64,8 +64,7 @@ public class Fabric8BootstrapConfigurationTests {
}
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class,
properties = { "spring.cloud.kubernetes.client.namespace=default",
"spring.main.cloud-platform=KUBERNETES" })
properties = { "spring.cloud.kubernetes.client.namespace=default" })
@Nested
class KubernetesEnabled {
@@ -81,7 +80,7 @@ public class Fabric8BootstrapConfigurationTests {
}
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class,
properties = { "spring.cloud.kubernetes.config.enabled=false", "spring.main.cloud-platform=KUBERNETES" })
properties = { "spring.cloud.kubernetes.config.enabled=false" })
@Nested
class KubernetesEnabledConfigDisabled {
@@ -98,7 +97,7 @@ public class Fabric8BootstrapConfigurationTests {
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class,
properties = { "spring.cloud.kubernetes.secrets.enabled=false",
"spring.cloud.kubernetes.client.namespace=default", "spring.main.cloud-platform=KUBERNETES" })
"spring.cloud.kubernetes.client.namespace=default" })
@Nested
class KubernetesEnabledSecretsDisabled {
@@ -130,39 +129,4 @@ public class Fabric8BootstrapConfigurationTests {
}
// tests that @ConditionalOnCloudPlatform(CloudPlatform.KUBERNETES) has the desired
// effect, meaning when it is enabled, both property sources are present
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class,
properties = { "spring.main.cloud-platform=KUBERNETES", "spring.cloud.kubernetes.client.namespace=abc" })
@Nested
class Fabric8BootstrapConfigurationInsideK8s {
@Autowired
ConfigurableApplicationContext context;
@Test
public void bothPresent() {
assertThat(context.getBeanNamesForType(Fabric8ConfigMapPropertySourceLocator.class)).hasSize(1);
assertThat(context.getBeanNamesForType(Fabric8SecretsPropertySourceLocator.class)).hasSize(1);
}
}
// 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)
@Nested
class Fabric8BootstrapConfigurationNotInsideK8s {
@Autowired
ConfigurableApplicationContext context;
@Test
public void bothMissing() {
assertThat(context.getBeanNamesForType(Fabric8ConfigMapPropertySourceLocator.class)).hasSize(0);
assertThat(context.getBeanNamesForType(Fabric8SecretsPropertySourceLocator.class)).hasSize(0);
}
}
}

View File

@@ -84,7 +84,7 @@ public class Fabric8ConfigMapPropertySourceLocatorRetryTests {
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE,
properties = { "spring.cloud.kubernetes.client.namespace=default",
"spring.cloud.kubernetes.config.fail-fast=true",
"spring.cloud.kubernetes.config.retry.max-attempts=5", "spring.main.cloud-platform=KUBERNETES" },
"spring.cloud.kubernetes.config.retry.max-attempts=5" },
classes = Application.class)
@EnableKubernetesMockClient
class ConfigRetryEnabled {
@@ -153,7 +153,7 @@ public class Fabric8ConfigMapPropertySourceLocatorRetryTests {
@Nested
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.NONE, properties = {
"spring.cloud.kubernetes.client.namespace=default", "spring.main.cloud-platform=KUBERNETES" },
"spring.cloud.kubernetes.client.namespace=default" },
classes = Application.class)
@EnableKubernetesMockClient
class ConfigFailFastDisabled {
@@ -178,7 +178,7 @@ public class Fabric8ConfigMapPropertySourceLocatorRetryTests {
properties = { "spring.cloud.kubernetes.client.namespace=default",
"spring.cloud.kubernetes.config.fail-fast=true",
"spring.cloud.kubernetes.config.retry.enabled=false",
"spring.cloud.kubernetes.secrets.fail-fast=true", "spring.main.cloud-platform=KUBERNETES" },
"spring.cloud.kubernetes.secrets.fail-fast=true" },
classes = Application.class)
@EnableKubernetesMockClient
class ConfigRetryDisabledButSecretsRetryEnabled {
@@ -216,7 +216,7 @@ public class Fabric8ConfigMapPropertySourceLocatorRetryTests {
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE,
properties = { "spring.cloud.kubernetes.client.namespace=default",
"spring.cloud.kubernetes.config.fail-fast=true",
"spring.cloud.kubernetes.config.retry.enabled=false", "spring.main.cloud-platform=KUBERNETES" },
"spring.cloud.kubernetes.config.retry.enabled=false" },
classes = Application.class)
@EnableKubernetesMockClient
class ConfigFailFastEnabledButRetryDisabled {
@@ -274,8 +274,7 @@ public class Fabric8ConfigMapPropertySourceLocatorRetryTests {
@Test
public void doesNotContainRetryableConfigMapPropertySourceLocator() throws Exception {
mockServer.expect().withPath(API).andReturn(500, "Internal Server Error").once();
setup("debug=true", "spring.main.cloud-platform=KUBERNETES",
"spring.cloud.kubernetes.test.enable-retry=true");
setup("debug=true", "spring.cloud.kubernetes.test.enable-retry=true");
assertThat(context.containsBean("retryableConfigMapPropertySourceLocator")).isFalse();
}

View File

@@ -91,7 +91,7 @@ public class Fabric8SecretsPropertySourceLocatorRetryTests {
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, properties = {
"spring.cloud.kubernetes.client.namespace=default", "spring.cloud.kubernetes.secrets.fail-fast=true",
"spring.cloud.kubernetes.secrets.retry.max-attempts=5", "spring.cloud.kubernetes.secrets.name=my-secret",
"spring.cloud.kubernetes.secrets.enable-api=true", "spring.main.cloud-platform=KUBERNETES" },
"spring.cloud.kubernetes.secrets.enable-api=true" },
classes = Application.class)
@EnableKubernetesMockClient
class SecretsRetryEnabled {
@@ -162,8 +162,7 @@ public class Fabric8SecretsPropertySourceLocatorRetryTests {
@Nested
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE,
properties = { "spring.cloud.kubernetes.client.namespace=default",
"spring.cloud.kubernetes.secrets.name=my-secret", "spring.cloud.kubernetes.secrets.enable-api=true",
"spring.main.cloud-platform=KUBERNETES" },
"spring.cloud.kubernetes.secrets.name=my-secret", "spring.cloud.kubernetes.secrets.enable-api=true" },
classes = Application.class)
@EnableKubernetesMockClient
class SecretsFailFastDisabled {
@@ -189,7 +188,7 @@ public class Fabric8SecretsPropertySourceLocatorRetryTests {
"spring.cloud.kubernetes.secrets.fail-fast=true",
"spring.cloud.kubernetes.secrets.retry.enabled=false",
"spring.cloud.kubernetes.config.fail-fast=true", "spring.cloud.kubernetes.secrets.name=my-secret",
"spring.cloud.kubernetes.secrets.enable-api=true", "spring.main.cloud-platform=KUBERNETES" },
"spring.cloud.kubernetes.secrets.enable-api=true" },
classes = Application.class)
@EnableKubernetesMockClient
class SecretsRetryDisabledButConfigRetryEnabled {
@@ -227,7 +226,7 @@ public class Fabric8SecretsPropertySourceLocatorRetryTests {
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, properties = {
"spring.cloud.kubernetes.client.namespace=default", "spring.cloud.kubernetes.secrets.fail-fast=true",
"spring.cloud.kubernetes.secrets.retry.enabled=false", "spring.cloud.kubernetes.secrets.name=my-secret",
"spring.cloud.kubernetes.secrets.enable-api=true", "spring.main.cloud-platform=KUBERNETES" },
"spring.cloud.kubernetes.secrets.enable-api=true" },
classes = Application.class)
@EnableKubernetesMockClient
class SecretsFailFastEnabledButRetryDisabled {
@@ -285,7 +284,7 @@ public class Fabric8SecretsPropertySourceLocatorRetryTests {
@Test
public void doesNotContainRetryableSecretsPropertySourceLocator() throws Exception {
mockServer.expect().withPath(API).andReturn(500, "Internal Server Error").once();
setup("debug=true", "spring.main.cloud-platform=KUBERNETES",
setup("debug=true",
"spring.cloud.kubernetes.test.enable-retry=true", "spring.cloud.kubernetes.secrets.name=my-secret",
"spring.cloud.kubernetes.secrets.enable-api=true");
assertThat(context.containsBean("retryableSecretsPropertySourceLocator")).isFalse();

View File

@@ -39,8 +39,7 @@ import static java.util.Collections.singletonMap;
import static org.assertj.core.api.Assertions.assertThat;
@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class,
properties = "spring.main.cloud-platform=KUBERNETES")
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = App.class)
@TestPropertySource("classpath:/application-secrets.properties")
@EnableKubernetesMockClient(crud = true, https = false)
class Fabric8SecretsPropertySourceTest {

View File

@@ -43,7 +43,7 @@ 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");
"spring.cloud.kubernetes.client.namespace=default");
assertThat(getContext().containsBean("configMapPropertySourceLocator")).isTrue();
assertThat(getContext().containsBean("secretsPropertySourceLocator")).isTrue();
}
@@ -66,8 +66,7 @@ public class KubernetesConfigConfigurationTest extends KubernetesConfigTestBase
@Test
public void kubernetesWhenKubernetesConfigEnabledButSecretDisabled() {
setup(KubernetesClientTestConfiguration.class, "spring.cloud.kubernetes.config.enabled=true",
"spring.cloud.kubernetes.secrets.enabled=false", "spring.cloud.kubernetes.client.namespace=default",
"spring.main.cloud-platform=KUBERNETES");
"spring.cloud.kubernetes.secrets.enabled=false", "spring.cloud.kubernetes.client.namespace=default");
assertThat(getContext().containsBean("configMapPropertySourceLocator")).isTrue();
assertThat(getContext().containsBean("secretsPropertySourceLocator")).isFalse();
}
@@ -75,7 +74,7 @@ public class KubernetesConfigConfigurationTest extends KubernetesConfigTestBase
@Test
public void kubernetesWhenKubernetesConfigDisabledButSecretEnabled() {
setup(KubernetesClientTestConfiguration.class, "spring.cloud.kubernetes.config.enabled=false",
"spring.cloud.kubernetes.secrets.enabled=true", "spring.main.cloud-platform=KUBERNETES");
"spring.cloud.kubernetes.secrets.enabled=true");
assertThat(getContext().containsBean("configMapPropertySourceLocator")).isFalse();
assertThat(getContext().containsBean("secretsPropertySourceLocator")).isTrue();
}
@@ -83,8 +82,7 @@ public class KubernetesConfigConfigurationTest extends KubernetesConfigTestBase
@Test
public void kubernetesConfigWhenKubernetesEnabledAndKubernetesConfigEnabled() {
setup(KubernetesClientTestConfiguration.class, "spring.cloud.kubernetes.config.enabled=true",
"spring.cloud.kubernetes.secrets.enabled=true", "spring.cloud.kubernetes.client.namespace=default",
"spring.main.cloud-platform=KUBERNETES");
"spring.cloud.kubernetes.secrets.enabled=true", "spring.cloud.kubernetes.client.namespace=default");
assertThat(getContext().containsBean("configMapPropertySourceLocator")).isTrue();
assertThat(getContext().containsBean("secretsPropertySourceLocator")).isTrue();
}
@@ -106,5 +104,4 @@ public class KubernetesConfigConfigurationTest extends KubernetesConfigTestBase
}
}
}

View File

@@ -39,7 +39,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)
public class MultipleConfigMapsTests {

View File

@@ -41,7 +41,7 @@ import org.springframework.test.web.reactive.server.WebTestClient;
*/
@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = MultiSecretsApp.class,
properties = { "spring.cloud.bootstrap.name=multiple-secrets", "spring.main.cloud-platform=KUBERNETES" })
properties = { "spring.cloud.bootstrap.name=multiple-secrets" })
@AutoConfigureWebTestClient
@EnableKubernetesMockClient(crud = true, https = false)
public class MultipleSecretsTests {

View File

@@ -99,7 +99,7 @@ public class ConfigReloadAutoConfigurationTest extends KubernetesConfigTestBase
public void kubernetesReloadEnabled() {
setup(KubernetesClientTestConfiguration.class, "spring.cloud.kubernetes.enabled=true",
"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();
@@ -110,7 +110,7 @@ public class ConfigReloadAutoConfigurationTest extends KubernetesConfigTestBase
public void kubernetesReloadEnabledButSecretDisabled() {
setup(KubernetesClientTestConfiguration.class, "spring.cloud.kubernetes.enabled=true",
"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();

View File

@@ -37,8 +37,7 @@ import org.springframework.test.web.reactive.server.WebTestClient;
* @author wind57
*/
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = SecretsWithLabelsApp.class,
properties = { "spring.cloud.bootstrap.name=secret-with-labels-config",
"spring.main.cloud-platform=KUBERNETES" })
properties = { "spring.cloud.bootstrap.name=secret-with-labels-config"})
@EnableKubernetesMockClient(crud = true, https = false)
class SecretsWithLabelsTests {