Skip to content

Commit ab29eb2

Browse files
committed
wip
Signed-off-by: wind57 <[email protected]>
1 parent 10acbb9 commit ab29eb2

File tree

4 files changed

+52
-174
lines changed

4 files changed

+52
-174
lines changed

spring-cloud-kubernetes-client-discovery/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,4 @@ org.springframework.cloud.kubernetes.client.discovery.KubernetesClientCatalogWat
22
org.springframework.cloud.kubernetes.client.discovery.KubernetesClientInformerDiscoveryClientAutoConfiguration
33
org.springframework.cloud.kubernetes.client.discovery.KubernetesClientInformerAutoConfiguration
44
org.springframework.cloud.kubernetes.client.discovery.KubernetesClientInformerReactiveDiscoveryClientAutoConfiguration
5-
org.springframework.cloud.kubernetes.client.discovery.KubernetesClientInformerSelectiveNamespacesAutoConfiguration
65
org.springframework.cloud.kubernetes.client.discovery.KubernetesClientDiscoveryClientSpelAutoConfiguration

spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesClientInformerDiscoveryClientAutoConfigurationApplicationContextTests.java

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
import io.kubernetes.client.util.Config;
2323
import org.junit.jupiter.api.AfterAll;
2424
import org.junit.jupiter.api.Test;
25+
import org.springframework.cloud.client.discovery.simple.reactive.SimpleReactiveDiscoveryClientAutoConfiguration;
26+
import org.springframework.cloud.commons.util.UtilAutoConfiguration;
27+
import org.springframework.cloud.kubernetes.commons.KubernetesCommonsAutoConfiguration;
2528
import org.testcontainers.k3s.K3sContainer;
2629

2730
import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -38,6 +41,7 @@
3841
import org.springframework.context.annotation.Primary;
3942

4043
import static org.assertj.core.api.Assertions.assertThat;
44+
import static org.springframework.cloud.kubernetes.client.discovery.TestUtils.assertInformerBeansMissing;
4145
import static org.springframework.cloud.kubernetes.client.discovery.TestUtils.assertInformerBeansPresent;
4246

4347
/**
@@ -150,15 +154,15 @@ void discoveryDisabledWithSelectiveNamespaces() {
150154
@Test
151155
void kubernetesDiscoveryEnabled() {
152156
setup("spring.main.cloud-platform=KUBERNETES", "spring.cloud.config.enabled=false",
153-
"spring.cloud.kubernetes.discovery.enabled=true");
157+
"spring.cloud.kubernetes.discovery.enabled=true", "spring.cloud.kubernetes.client.namespace=default");
154158
applicationContextRunner.run(context -> {
155159
assertThat(context).hasSingleBean(KubernetesClientInformerDiscoveryClient.class);
156-
assertThat(context).doesNotHaveBean(KubernetesClientInformerReactiveDiscoveryClient.class);
160+
assertThat(context).hasSingleBean(KubernetesClientInformerReactiveDiscoveryClient.class);
157161

158-
assertThat(context).hasSingleBean(KubernetesDiscoveryClientHealthIndicatorInitializer.class);
159-
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class);
162+
assertThat(context).getBeans(KubernetesDiscoveryClientHealthIndicatorInitializer.class).hasSize(2);
163+
assertThat(context).getBeans(ReactiveDiscoveryClientHealthIndicator.class).hasSize(2);
160164

161-
assertInformerBeansPresent(context, 2);
165+
assertInformerBeansPresent(context, 1);
162166
});
163167
}
164168

@@ -203,9 +207,10 @@ void kubernetesDiscoveryDisabledWithSelectiveNamespaces() {
203207
assertThat(context).doesNotHaveBean(KubernetesClientInformerReactiveDiscoveryClient.class);
204208

205209
assertThat(context).doesNotHaveBean(KubernetesDiscoveryClientHealthIndicatorInitializer.class);
206-
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class);
210+
// simpleReactiveDiscoveryClientHealthIndicator
211+
assertThat(context).hasSingleBean(ReactiveDiscoveryClientHealthIndicator.class);
207212

208-
assertInformerBeansPresent(context , 4);
213+
assertInformerBeansMissing(context);
209214
});
210215
}
211216

@@ -401,19 +406,24 @@ void reactiveDisabledWithSelectiveNamespaces() {
401406

402407
private void setup(String... properties) {
403408
applicationContextRunner = new ApplicationContextRunner()
404-
.withConfiguration(AutoConfigurations.of(KubernetesClientInformerDiscoveryClientAutoConfiguration.class,
405-
KubernetesClientAutoConfiguration.class, KubernetesDiscoveryPropertiesAutoConfiguration.class,
406-
KubernetesClientInformerAutoConfiguration.class,
407-
KubernetesClientDiscoveryClientSpelAutoConfiguration.class))
408-
.withUserConfiguration(ApiClientConfig.class)
409+
.withConfiguration(AutoConfigurations.of(
410+
KubernetesClientInformerReactiveDiscoveryClientAutoConfiguration.class,
411+
KubernetesClientAutoConfiguration.class, SimpleReactiveDiscoveryClientAutoConfiguration.class,
412+
UtilAutoConfiguration.class, KubernetesDiscoveryPropertiesAutoConfiguration.class,
413+
KubernetesClientInformerAutoConfiguration.class,
414+
KubernetesClientInformerDiscoveryClientAutoConfiguration.class,
415+
KubernetesCommonsAutoConfiguration.class,
416+
KubernetesClientDiscoveryClientSpelAutoConfiguration.class))
417+
.withUserConfiguration(KubernetesClientInformerDiscoveryClientAutoConfigurationApplicationContextTests.ApiClientConfig.class)
409418
.withPropertyValues(properties);
410419
}
411420

412421
private void setupWithFilteredClassLoader(Class<?> cls, String... properties) {
413422
applicationContextRunner = new ApplicationContextRunner()
414423
.withConfiguration(AutoConfigurations.of(KubernetesClientInformerDiscoveryClientAutoConfiguration.class,
424+
KubernetesClientInformerReactiveDiscoveryClientAutoConfiguration.class,
415425
KubernetesClientAutoConfiguration.class, KubernetesDiscoveryPropertiesAutoConfiguration.class,
416-
KubernetesClientInformerAutoConfiguration.class,
426+
KubernetesClientInformerAutoConfiguration.class,
417427
KubernetesClientDiscoveryClientSpelAutoConfiguration.class))
418428
.withClassLoader(new FilteredClassLoader(cls))
419429
.withUserConfiguration(ApiClientConfig.class)

spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesClientInformerReactiveDiscoveryClientAutoConfigurationApplicationContextTests.java

Lines changed: 29 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -62,18 +62,17 @@ static void afterAll() {
6262

6363
@Test
6464
void discoveryEnabledDefault() {
65-
setup("spring.main.cloud-platform=KUBERNETES", "spring.cloud.config.enabled=false");
65+
setup("spring.main.cloud-platform=KUBERNETES", "spring.cloud.config.enabled=false",
66+
"spring.cloud.kubernetes.client.namespace=default");
6667
applicationContextRunner.run(context -> {
6768
assertThat(context).hasSingleBean(KubernetesClientInformerDiscoveryClient.class);
68-
assertThat(context).hasBean("kubernetesClientInformerDiscoveryClient");
6969
assertThat(context).hasSingleBean(KubernetesClientInformerReactiveDiscoveryClient.class);
7070

7171
// simple from commons and ours
7272
assertThat(context).getBeans(ReactiveDiscoveryClientHealthIndicator.class).hasSize(2);
73-
assertThat(context).hasSingleBean(KubernetesDiscoveryClientHealthIndicatorInitializer.class);
74-
assertThat(context).hasBean("reactiveIndicatorInitializer");
73+
assertThat(context).getBeans(KubernetesDiscoveryClientHealthIndicatorInitializer.class).hasSize(2);
7574

76-
assertInformerBeansPresent(context, 2);
75+
assertInformerBeansPresent(context, 1);
7776
});
7877
}
7978

@@ -83,13 +82,11 @@ void discoveryEnabledDefaultWithSelectiveNamespaces() {
8382
"spring.cloud.kubernetes.discovery.namespaces=a,b,c");
8483
applicationContextRunner.run(context -> {
8584
assertThat(context).hasSingleBean(KubernetesClientInformerDiscoveryClient.class);
86-
assertThat(context).hasBean("selectiveNamespacesKubernetesClientInformerDiscoveryClient");
8785
assertThat(context).hasSingleBean(KubernetesClientInformerReactiveDiscoveryClient.class);
8886

8987
// simple from commons and ours
9088
assertThat(context).getBeans(ReactiveDiscoveryClientHealthIndicator.class).hasSize(2);
91-
assertThat(context).hasSingleBean(KubernetesDiscoveryClientHealthIndicatorInitializer.class);
92-
assertThat(context).hasBean("reactiveIndicatorInitializer");
89+
assertThat(context).getBeans(KubernetesDiscoveryClientHealthIndicatorInitializer.class).hasSize(2);
9390

9491
assertInformerBeansPresent(context, 3);
9592
});
@@ -98,18 +95,16 @@ void discoveryEnabledDefaultWithSelectiveNamespaces() {
9895
@Test
9996
void discoveryEnabled() {
10097
setup("spring.main.cloud-platform=KUBERNETES", "spring.cloud.config.enabled=false",
101-
"spring.cloud.discovery.enabled=true");
98+
"spring.cloud.discovery.enabled=true", "spring.cloud.kubernetes.client.namespace=default");
10299
applicationContextRunner.run(context -> {
103100
assertThat(context).hasSingleBean(KubernetesClientInformerDiscoveryClient.class);
104-
assertThat(context).hasBean("kubernetesClientInformerDiscoveryClient");
105101
assertThat(context).hasSingleBean(KubernetesClientInformerReactiveDiscoveryClient.class);
106102

107103
// simple from commons and ours
108104
assertThat(context).getBeans(ReactiveDiscoveryClientHealthIndicator.class).hasSize(2);
109-
assertThat(context).hasSingleBean(KubernetesDiscoveryClientHealthIndicatorInitializer.class);
110-
assertThat(context).hasBean("reactiveIndicatorInitializer");
105+
assertThat(context).getBeans(KubernetesDiscoveryClientHealthIndicatorInitializer.class).hasSize(2);
111106

112-
assertInformerBeansPresent(context, 2);
107+
assertInformerBeansPresent(context, 1);
113108
});
114109
}
115110

@@ -119,13 +114,11 @@ void discoveryEnabledWithSelectiveNamespaces() {
119114
"spring.cloud.discovery.enabled=true", "spring.cloud.kubernetes.discovery.namespaces=a,b,c");
120115
applicationContextRunner.run(context -> {
121116
assertThat(context).hasSingleBean(KubernetesClientInformerDiscoveryClient.class);
122-
assertThat(context).hasBean("selectiveNamespacesKubernetesClientInformerDiscoveryClient");
123117
assertThat(context).hasSingleBean(KubernetesClientInformerReactiveDiscoveryClient.class);
124118

125119
// simple from commons and ours
126120
assertThat(context).getBeans(ReactiveDiscoveryClientHealthIndicator.class).hasSize(2);
127-
assertThat(context).hasSingleBean(KubernetesDiscoveryClientHealthIndicatorInitializer.class);
128-
assertThat(context).hasBean("reactiveIndicatorInitializer");
121+
assertThat(context).getBeans(KubernetesDiscoveryClientHealthIndicatorInitializer.class).hasSize(2);
129122

130123
assertInformerBeansPresent(context, 3);
131124
});
@@ -142,7 +135,7 @@ void discoveryDisabled() {
142135
assertThat(context).doesNotHaveBean(KubernetesDiscoveryClientHealthIndicatorInitializer.class);
143136
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class);
144137

145-
assertInformerBeansPresent(context , 2);
138+
assertInformerBeansMissing(context);
146139
});
147140
}
148141

@@ -157,25 +150,23 @@ void discoveryDisabledWithSelectiveNamespaces() {
157150
assertThat(context).doesNotHaveBean(KubernetesDiscoveryClientHealthIndicatorInitializer.class);
158151
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class);
159152

160-
assertInformerBeansPresent(context , 3);
153+
assertInformerBeansMissing(context);
161154
});
162155
}
163156

164157
@Test
165158
void kubernetesDiscoveryEnabled() {
166159
setup("spring.main.cloud-platform=KUBERNETES", "spring.cloud.config.enabled=false",
167-
"spring.cloud.kubernetes.discovery.enabled=true");
160+
"spring.cloud.kubernetes.discovery.enabled=true", "spring.cloud.kubernetes.client.namespace=default");
168161
applicationContextRunner.run(context -> {
169162
assertThat(context).hasSingleBean(KubernetesClientInformerDiscoveryClient.class);
170-
assertThat(context).hasBean("kubernetesClientInformerDiscoveryClient");
171163
assertThat(context).hasSingleBean(KubernetesClientInformerReactiveDiscoveryClient.class);
172164

173165
// simple from commons and ours
174166
assertThat(context).getBeans(ReactiveDiscoveryClientHealthIndicator.class).hasSize(2);
175-
assertThat(context).hasSingleBean(KubernetesDiscoveryClientHealthIndicatorInitializer.class);
176-
assertThat(context).hasBean("reactiveIndicatorInitializer");
167+
assertThat(context).getBeans(KubernetesDiscoveryClientHealthIndicatorInitializer.class).hasSize(2);
177168

178-
assertInformerBeansPresent(context , 2);
169+
assertInformerBeansPresent(context , 1);
179170
});
180171
}
181172

@@ -185,13 +176,11 @@ void kubernetesDiscoveryEnabledWithSelectiveNamespaces() {
185176
"spring.cloud.kubernetes.discovery.enabled=true", "spring.cloud.kubernetes.discovery.namespaces=a,b");
186177
applicationContextRunner.run(context -> {
187178
assertThat(context).hasSingleBean(KubernetesClientInformerDiscoveryClient.class);
188-
assertThat(context).hasBean("selectiveNamespacesKubernetesClientInformerDiscoveryClient");
189179
assertThat(context).hasSingleBean(KubernetesClientInformerReactiveDiscoveryClient.class);
190180

191181
// simple from commons and ours
192182
assertThat(context).getBeans(ReactiveDiscoveryClientHealthIndicator.class).hasSize(2);
193-
assertThat(context).hasSingleBean(KubernetesDiscoveryClientHealthIndicatorInitializer.class);
194-
assertThat(context).hasBean("reactiveIndicatorInitializer");
183+
assertThat(context).getBeans(KubernetesDiscoveryClientHealthIndicatorInitializer.class).hasSize(2);
195184

196185
assertInformerBeansPresent(context, 2);
197186
});
@@ -209,7 +198,7 @@ void kubernetesDiscoveryDisabled() {
209198
// only "simple" one from commons, as ours is not picked up
210199
assertThat(context).hasSingleBean(ReactiveDiscoveryClientHealthIndicator.class);
211200

212-
assertInformerBeansPresent(context , 2);
201+
assertInformerBeansMissing(context);
213202
});
214203
}
215204

@@ -233,18 +222,16 @@ void kubernetesDiscoveryDisabledWithSelectiveNamespaces() {
233222
@Test
234223
void kubernetesReactiveDiscoveryEnabled() {
235224
setup("spring.main.cloud-platform=KUBERNETES", "spring.cloud.config.enabled=false",
236-
"spring.cloud.discovery.reactive.enabled=true");
225+
"spring.cloud.discovery.reactive.enabled=true", "spring.cloud.kubernetes.client.namespace=default");
237226
applicationContextRunner.run(context -> {
238227
assertThat(context).hasSingleBean(KubernetesClientInformerDiscoveryClient.class);
239-
assertThat(context).hasBean("kubernetesClientInformerDiscoveryClient");
240228
assertThat(context).hasSingleBean(KubernetesClientInformerReactiveDiscoveryClient.class);
241229

242230
// simple from commons and ours
243231
assertThat(context).getBeans(ReactiveDiscoveryClientHealthIndicator.class).hasSize(2);
244-
assertThat(context).hasSingleBean(KubernetesDiscoveryClientHealthIndicatorInitializer.class);
245-
assertThat(context).hasBean("reactiveIndicatorInitializer");
232+
assertThat(context).getBeans(KubernetesDiscoveryClientHealthIndicatorInitializer.class).hasSize(2);
246233

247-
assertInformerBeansPresent(context , 2);
234+
assertInformerBeansPresent(context , 1);
248235
});
249236
}
250237

@@ -254,13 +241,11 @@ void kubernetesReactiveDiscoveryEnabledWithSelectiveNamespaces() {
254241
"spring.cloud.discovery.reactive.enabled=true", "spring.cloud.kubernetes.discovery.namespaces=a,b");
255242
applicationContextRunner.run(context -> {
256243
assertThat(context).hasSingleBean(KubernetesClientInformerDiscoveryClient.class);
257-
assertThat(context).hasBean("selectiveNamespacesKubernetesClientInformerDiscoveryClient");
258244
assertThat(context).hasSingleBean(KubernetesClientInformerReactiveDiscoveryClient.class);
259245

260246
// simple from commons and ours
261247
assertThat(context).getBeans(ReactiveDiscoveryClientHealthIndicator.class).hasSize(2);
262-
assertThat(context).hasSingleBean(KubernetesDiscoveryClientHealthIndicatorInitializer.class);
263-
assertThat(context).hasBean("reactiveIndicatorInitializer");
248+
assertThat(context).getBeans(KubernetesDiscoveryClientHealthIndicatorInitializer.class).hasSize(2);
264249

265250
assertInformerBeansPresent(context, 2);
266251
});
@@ -302,18 +287,16 @@ void kubernetesReactiveDiscoveryDisabledWithSelectiveNamespaces() {
302287
@Test
303288
void blockingDisabled() {
304289
setup("spring.main.cloud-platform=KUBERNETES", "spring.cloud.config.enabled=false",
305-
"spring.cloud.discovery.blocking.enabled=false");
290+
"spring.cloud.discovery.blocking.enabled=false", "spring.cloud.kubernetes.client.namespace=default");
306291
applicationContextRunner.run(context -> {
307-
assertThat(context).hasSingleBean(KubernetesClientInformerDiscoveryClient.class);
308-
assertThat(context).hasBean("kubernetesClientInformerDiscoveryClient");
292+
assertThat(context).doesNotHaveBean(KubernetesClientInformerDiscoveryClient.class);
309293
assertThat(context).hasSingleBean(KubernetesClientInformerReactiveDiscoveryClient.class);
310294

311295
// simple from commons and ours
312296
assertThat(context).getBeans(ReactiveDiscoveryClientHealthIndicator.class).hasSize(2);
313297
assertThat(context).hasSingleBean(KubernetesDiscoveryClientHealthIndicatorInitializer.class);
314-
assertThat(context).hasBean("reactiveIndicatorInitializer");
315298

316-
assertInformerBeansPresent(context , 2);
299+
assertInformerBeansPresent(context , 1);
317300
});
318301
}
319302

@@ -340,16 +323,16 @@ void blockingDisabledWithSelectiveNamespaces() {
340323
@Test
341324
void healthDisabled() {
342325
setup("spring.main.cloud-platform=KUBERNETES", "spring.cloud.config.enabled=false",
343-
"spring.cloud.discovery.client.health-indicator.enabled=false");
326+
"spring.cloud.discovery.client.health-indicator.enabled=false",
327+
"spring.cloud.kubernetes.client.namespace=default");
344328
applicationContextRunner.run(context -> {
345329
assertThat(context).hasSingleBean(KubernetesClientInformerDiscoveryClient.class);
346-
assertThat(context).hasBean("kubernetesClientInformerDiscoveryClient");
347330
assertThat(context).hasSingleBean(KubernetesClientInformerReactiveDiscoveryClient.class);
348331

349332
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class);
350333
assertThat(context).doesNotHaveBean(KubernetesDiscoveryClientHealthIndicatorInitializer.class);
351334

352-
assertInformerBeansPresent(context, 2);
335+
assertInformerBeansPresent(context, 1);
353336
});
354337
}
355338

@@ -360,7 +343,6 @@ void healthDisabledWithSelectiveNamespaces() {
360343
"spring.cloud.kubernetes.discovery.namespaces=a,b");
361344
applicationContextRunner.run(context -> {
362345
assertThat(context).hasSingleBean(KubernetesClientInformerDiscoveryClient.class);
363-
assertThat(context).hasBean("selectiveNamespacesKubernetesClientInformerDiscoveryClient");
364346
assertThat(context).hasSingleBean(KubernetesClientInformerReactiveDiscoveryClient.class);
365347

366348
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class);
@@ -374,16 +356,16 @@ void healthDisabledWithSelectiveNamespaces() {
374356
void healthEnabledClassNotPresent() {
375357
setupWithFilteredClassLoader("org.springframework.boot.health.contributor.ReactiveHealthIndicator",
376358
"spring.main.cloud-platform=KUBERNETES", "spring.cloud.config.enabled=false",
377-
"spring.cloud.discovery.client.health-indicator.enabled=false");
359+
"spring.cloud.discovery.client.health-indicator.enabled=false",
360+
"spring.cloud.kubernetes.client.namespace=default");
378361
applicationContextRunner.run(context -> {
379362
assertThat(context).hasSingleBean(KubernetesClientInformerDiscoveryClient.class);
380-
assertThat(context).hasBean("kubernetesClientInformerDiscoveryClient");
381363
assertThat(context).hasSingleBean(KubernetesClientInformerReactiveDiscoveryClient.class);
382364

383365
assertThat(context).doesNotHaveBean(ReactiveDiscoveryClientHealthIndicator.class);
384366
assertThat(context).doesNotHaveBean(KubernetesDiscoveryClientHealthIndicatorInitializer.class);
385367

386-
assertInformerBeansPresent(context , 2);
368+
assertInformerBeansPresent(context , 1);
387369
});
388370
}
389371

0 commit comments

Comments
 (0)