Use spring-config-import in configserver (#1258)
Co-authored-by: Ryan Baxter <524254+ryanjbaxter@users.noreply.github.com>
This commit is contained in:
@@ -19,6 +19,7 @@ package org.springframework.cloud.kubernetes.client.config;
|
||||
import io.kubernetes.client.openapi.ApiClient;
|
||||
import io.kubernetes.client.openapi.apis.CoreV1Api;
|
||||
|
||||
import org.springframework.boot.BootstrapRegistry;
|
||||
import org.springframework.boot.ConfigurableBootstrapContext;
|
||||
import org.springframework.boot.context.config.ConfigDataLocation;
|
||||
import org.springframework.boot.context.config.ConfigDataLocationResolverContext;
|
||||
@@ -90,7 +91,7 @@ public class KubernetesClientConfigDataLocationResolver extends KubernetesConfig
|
||||
registerSingle(bootstrapContext, ApiClient.class, apiClient, "configDataApiClient");
|
||||
|
||||
CoreV1Api coreV1Api = new CoreV1Api(apiClient);
|
||||
registerSingle(bootstrapContext, CoreV1Api.class, coreV1Api, "configCoreV1Api");
|
||||
bootstrapContext.registerIfAbsent(CoreV1Api.class, BootstrapRegistry.InstanceSupplier.of(coreV1Api));
|
||||
|
||||
return coreV1Api;
|
||||
}
|
||||
|
||||
@@ -264,8 +264,12 @@ public final class ConfigUtils {
|
||||
public static <T> void registerSingle(ConfigurableBootstrapContext bootstrapContext, Class<T> cls, T instance,
|
||||
String name) {
|
||||
bootstrapContext.registerIfAbsent(cls, BootstrapRegistry.InstanceSupplier.of(instance));
|
||||
bootstrapContext.addCloseListener(event -> event.getApplicationContext().getBeanFactory()
|
||||
.registerSingleton(name, event.getBootstrapContext().get(cls)));
|
||||
bootstrapContext.addCloseListener(event -> {
|
||||
if (event.getApplicationContext().getBeanFactory().getSingleton(name) == null) {
|
||||
event.getApplicationContext().getBeanFactory().registerSingleton(name,
|
||||
event.getBootstrapContext().get(cls));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -4,3 +4,10 @@ spring:
|
||||
|
||||
server:
|
||||
port: 8888
|
||||
|
||||
---
|
||||
spring:
|
||||
config:
|
||||
activate:
|
||||
on-cloud-platform: kubernetes
|
||||
import: "optional:kubernetes:"
|
||||
|
||||
@@ -35,8 +35,7 @@ import static org.mockito.Mockito.mockStatic;
|
||||
*/
|
||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
|
||||
properties = { "spring.main.cloud-platform=KUBERNETES", "spring.cloud.kubernetes.client.namespace=default",
|
||||
"spring.profiles.include=kubernetes", "spring.cloud.kubernetes.secrets.enableApi=true", "debug=true",
|
||||
"spring.config.import=kubernetes:" },
|
||||
"spring.profiles.include=kubernetes", "spring.cloud.kubernetes.secrets.enableApi=true", "debug=true" },
|
||||
classes = { KubernetesConfigServerApplication.class })
|
||||
public class ConfigDataConfigServerIntegrationTest extends ConfigServerIntegrationTest {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user