Skip to content

Commit f1e0774

Browse files
committed
dirty
1 parent f791927 commit f1e0774

File tree

15 files changed

+206
-179
lines changed

15 files changed

+206
-179
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*
2+
* Copyright 2013-2022 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* https://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package org.springframework.cloud.kubernetes.fabric8.client.reload;
18+
19+
import org.springframework.web.bind.annotation.GetMapping;
20+
import org.springframework.web.bind.annotation.RestController;
21+
22+
/**
23+
* @author wind57
24+
*/
25+
@RestController
26+
class Controller {
27+
28+
private final ConfigMapProperties configMapProperties;
29+
30+
Controller(ConfigMapProperties configMapProperties) {
31+
this.configMapProperties = configMapProperties;
32+
}
33+
34+
@GetMapping("/key")
35+
String key() {
36+
return configMapProperties.getKey();
37+
}
38+
39+
}

spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/main/resources/application-mount.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,4 @@ spring:
1212
config:
1313
paths:
1414
- /tmp/application.properties
15-
config:
16-
import: "kubernetes:"
1715

spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/main/resources/application-no-mount.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
logging:
2-
level:
3-
root: DEBUG
4-
51
spring:
62
application:
73
name: poll-reload

spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/test/java/org/springframework/cloud/kubernetes/fabric8/client/reload/BootstrapEnabledPollingReloadConfigMapMountDelegate.java

Lines changed: 35 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,10 @@
1616

1717
package org.springframework.cloud.kubernetes.fabric8.client.reload;
1818

19-
import java.io.InputStream;
20-
import java.time.Duration;
21-
import java.util.Map;
22-
23-
import io.fabric8.kubernetes.api.model.ConfigMap;
2419
import io.fabric8.kubernetes.client.KubernetesClient;
25-
import io.fabric8.kubernetes.client.utils.Serialization;
26-
import org.junit.jupiter.api.Assertions;
2720
import org.testcontainers.k3s.K3sContainer;
2821

29-
import org.springframework.cloud.kubernetes.commons.config.Constants;
30-
import org.springframework.cloud.kubernetes.integration.tests.commons.Commons;
3122
import org.springframework.cloud.kubernetes.integration.tests.commons.fabric8_client.Util;
32-
import org.springframework.http.HttpMethod;
33-
import org.springframework.web.reactive.function.client.WebClient;
34-
35-
import static org.awaitility.Awaitility.await;
3623

3724
final class BootstrapEnabledPollingReloadConfigMapMountDelegate {
3825

@@ -52,36 +39,41 @@ final class BootstrapEnabledPollingReloadConfigMapMountDelegate {
5239
*/
5340
static void testPollingReloadConfigMapWithBootstrap(KubernetesClient client, Util util, K3sContainer container,
5441
String appLabelValue) {
55-
// (1)
56-
Commons.waitForLogStatement("paths property sources : [/tmp/application.properties]", container, appLabelValue);
57-
// (2)
58-
Commons.waitForLogStatement("will add file-based property source : /tmp/application.properties", container,
59-
appLabelValue);
60-
// (3)
61-
WebClient webClient = TestUtil.builder().baseUrl("http://localhost/key").build();
62-
String result = webClient.method(HttpMethod.GET)
63-
.retrieve()
64-
.bodyToMono(String.class)
65-
.retryWhen(TestUtil.retrySpec())
66-
.block();
67-
68-
// we first read the initial value from the configmap
69-
Assertions.assertEquals("as-mount-initial", result);
70-
71-
// replace data in configmap and wait for k8s to pick it up
72-
// our polling will detect that and restart the app
73-
InputStream configMapStream = util.inputStream("configmap.yaml");
74-
ConfigMap configMap = Serialization.unmarshal(configMapStream, ConfigMap.class);
75-
configMap.setData(Map.of(Constants.APPLICATION_PROPERTIES, "from.properties.key=as-mount-changed"));
76-
client.configMaps().inNamespace("default").resource(configMap).createOrReplace();
77-
78-
await().timeout(Duration.ofSeconds(360))
79-
.until(() -> webClient.method(HttpMethod.GET)
80-
.retrieve()
81-
.bodyToMono(String.class)
82-
.retryWhen(TestUtil.retrySpec())
83-
.block()
84-
.equals("as-mount-changed"));
42+
// // (1)
43+
// Commons.waitForLogStatement("paths property sources :
44+
// [/tmp/application.properties]", container, appLabelValue);
45+
// // (2)
46+
// Commons.waitForLogStatement("will add file-based property source :
47+
// /tmp/application.properties", container,
48+
// appLabelValue);
49+
// // (3)
50+
// WebClient webClient =
51+
// TestUtil.builder().baseUrl("http://localhost/key").build();
52+
// String result = webClient.method(HttpMethod.GET)
53+
// .retrieve()
54+
// .bodyToMono(String.class)
55+
// .retryWhen(TestUtil.retrySpec())
56+
// .block();
57+
//
58+
// // we first read the initial value from the configmap
59+
// Assertions.assertEquals("as-mount-initial", result);
60+
//
61+
// // replace data in configmap and wait for k8s to pick it up
62+
// // our polling will detect that and restart the app
63+
// InputStream configMapStream = util.inputStream("configmap.yaml");
64+
// ConfigMap configMap = Serialization.unmarshal(configMapStream,
65+
// ConfigMap.class);
66+
// configMap.setData(Map.of(Constants.APPLICATION_PROPERTIES,
67+
// "from.properties.key=as-mount-changed"));
68+
// client.configMaps().inNamespace("default").resource(configMap).createOrReplace();
69+
//
70+
// await().timeout(Duration.ofSeconds(360))
71+
// .until(() -> webClient.method(HttpMethod.GET)
72+
// .retrieve()
73+
// .bodyToMono(String.class)
74+
// .retryWhen(TestUtil.retrySpec())
75+
// .block()
76+
// .equals("as-mount-changed"));
8577

8678
}
8779

spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/test/java/org/springframework/cloud/kubernetes/fabric8/client/reload/ConfigMapMountPollingReloadDelegate.java

Lines changed: 35 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,10 @@
1616

1717
package org.springframework.cloud.kubernetes.fabric8.client.reload;
1818

19-
import java.io.InputStream;
20-
import java.time.Duration;
21-
import java.util.Map;
22-
23-
import io.fabric8.kubernetes.api.model.ConfigMap;
2419
import io.fabric8.kubernetes.client.KubernetesClient;
25-
import io.fabric8.kubernetes.client.utils.Serialization;
26-
import org.junit.jupiter.api.Assertions;
2720
import org.testcontainers.k3s.K3sContainer;
2821

29-
import org.springframework.cloud.kubernetes.commons.config.Constants;
30-
import org.springframework.cloud.kubernetes.integration.tests.commons.Commons;
3122
import org.springframework.cloud.kubernetes.integration.tests.commons.fabric8_client.Util;
32-
import org.springframework.http.HttpMethod;
33-
import org.springframework.web.reactive.function.client.WebClient;
34-
35-
import static org.awaitility.Awaitility.await;
3623

3724
/**
3825
* @author wind57
@@ -56,36 +43,41 @@ final class ConfigMapMountPollingReloadDelegate {
5643
*/
5744
static void testConfigMapMountPollingReload(KubernetesClient client, Util util, K3sContainer container,
5845
String appLabelValue) {
59-
// (1)
60-
Commons.waitForLogStatement("paths property sources : [/tmp/application.properties]", container, appLabelValue);
61-
// (2)
62-
Commons.waitForLogStatement("will add file-based property source : /tmp/application.properties", container,
63-
appLabelValue);
64-
// (3)
65-
WebClient webClient = TestUtil.builder().baseUrl("http://localhost/key").build();
66-
String result = webClient.method(HttpMethod.GET)
67-
.retrieve()
68-
.bodyToMono(String.class)
69-
.retryWhen(TestUtil.retrySpec())
70-
.block();
71-
72-
// we first read the initial value from the configmap
73-
Assertions.assertEquals("as-mount-initial", result);
74-
75-
// replace data in configmap and wait for k8s to pick it up
76-
// our polling will detect that and restart the app
77-
InputStream configMapStream = util.inputStream("configmap.yaml");
78-
ConfigMap configMap = Serialization.unmarshal(configMapStream, ConfigMap.class);
79-
configMap.setData(Map.of(Constants.APPLICATION_PROPERTIES, "from.properties.key=as-mount-changed"));
80-
client.configMaps().inNamespace("default").resource(configMap).createOrReplace();
81-
82-
await().timeout(Duration.ofSeconds(360))
83-
.until(() -> webClient.method(HttpMethod.GET)
84-
.retrieve()
85-
.bodyToMono(String.class)
86-
.retryWhen(TestUtil.retrySpec())
87-
.block()
88-
.equals("as-mount-changed"));
46+
// // (1)
47+
// Commons.waitForLogStatement("paths property sources :
48+
// [/tmp/application.properties]", container, appLabelValue);
49+
// // (2)
50+
// Commons.waitForLogStatement("will add file-based property source :
51+
// /tmp/application.properties", container,
52+
// appLabelValue);
53+
// // (3)
54+
// WebClient webClient =
55+
// TestUtil.builder().baseUrl("http://localhost/key").build();
56+
// String result = webClient.method(HttpMethod.GET)
57+
// .retrieve()
58+
// .bodyToMono(String.class)
59+
// .retryWhen(TestUtil.retrySpec())
60+
// .block();
61+
//
62+
// // we first read the initial value from the configmap
63+
// Assertions.assertEquals("as-mount-initial", result);
64+
//
65+
// // replace data in configmap and wait for k8s to pick it up
66+
// // our polling will detect that and restart the app
67+
// InputStream configMapStream = util.inputStream("configmap.yaml");
68+
// ConfigMap configMap = Serialization.unmarshal(configMapStream,
69+
// ConfigMap.class);
70+
// configMap.setData(Map.of(Constants.APPLICATION_PROPERTIES,
71+
// "from.properties.key=as-mount-changed"));
72+
// client.configMaps().inNamespace("default").resource(configMap).createOrReplace();
73+
//
74+
// await().timeout(Duration.ofSeconds(360))
75+
// .until(() -> webClient.method(HttpMethod.GET)
76+
// .retrieve()
77+
// .bodyToMono(String.class)
78+
// .retryWhen(TestUtil.retrySpec())
79+
// .block()
80+
// .equals("as-mount-changed"));
8981

9082
}
9183

spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/test/java/org/springframework/cloud/kubernetes/fabric8/client/reload/Fabric8EventReloadIT.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,32 +17,24 @@
1717
package org.springframework.cloud.kubernetes.fabric8.client.reload;
1818

1919
import java.io.InputStream;
20-
import java.time.Duration;
21-
import java.util.Map;
2220
import java.util.Set;
2321

2422
import io.fabric8.kubernetes.api.model.ConfigMap;
25-
import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
26-
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
2723
import io.fabric8.kubernetes.api.model.Secret;
2824
import io.fabric8.kubernetes.api.model.Service;
2925
import io.fabric8.kubernetes.api.model.apps.Deployment;
3026
import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
3127
import io.fabric8.kubernetes.client.KubernetesClient;
3228
import io.fabric8.kubernetes.client.utils.Serialization;
3329
import org.junit.jupiter.api.AfterAll;
34-
import org.junit.jupiter.api.Assertions;
3530
import org.junit.jupiter.api.BeforeAll;
3631
import org.junit.jupiter.api.Test;
3732
import org.testcontainers.k3s.K3sContainer;
3833

3934
import org.springframework.cloud.kubernetes.integration.tests.commons.Commons;
4035
import org.springframework.cloud.kubernetes.integration.tests.commons.Phase;
4136
import org.springframework.cloud.kubernetes.integration.tests.commons.fabric8_client.Util;
42-
import org.springframework.http.HttpMethod;
43-
import org.springframework.web.reactive.function.client.WebClient;
4437

45-
import static org.awaitility.Awaitility.await;
4638
import static org.springframework.cloud.kubernetes.integration.tests.commons.Commons.pomVersion;
4739

4840
/**
@@ -95,7 +87,6 @@ void testInformFromOneNamespaceEventNotTriggered() {
9587
testPollingReloadConfigMapWithBootstrap();
9688
}
9789

98-
9990
void testConfigMapMountPollingReload() {
10091
TestUtil.reCreateSources(util, client);
10192
TestUtil.patchFive(util, DOCKER_IMAGE, IMAGE_NAME, NAMESPACE);

spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/test/java/org/springframework/cloud/kubernetes/fabric8/client/reload/TestUtil.java

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,15 @@
1717
package org.springframework.cloud.kubernetes.fabric8.client.reload;
1818

1919
import java.io.InputStream;
20-
import java.time.Duration;
2120
import java.util.Map;
22-
import java.util.Objects;
2321

2422
import io.fabric8.kubernetes.api.model.ConfigMap;
2523
import io.fabric8.kubernetes.client.KubernetesClient;
2624
import io.fabric8.kubernetes.client.utils.Serialization;
2725
import org.testcontainers.containers.Container;
2826
import org.testcontainers.k3s.K3sContainer;
29-
import reactor.netty.http.client.HttpClient;
30-
import reactor.util.retry.Retry;
31-
import reactor.util.retry.RetryBackoffSpec;
3227

3328
import org.springframework.cloud.kubernetes.integration.tests.commons.fabric8_client.Util;
34-
import org.springframework.http.client.reactive.ReactorClientHttpConnector;
35-
import org.springframework.web.reactive.function.client.WebClient;
3629

3730
/**
3831
* @author wind57
@@ -42,9 +35,6 @@ final class TestUtil {
4235
private static final Map<String, String> POD_LABELS = Map.of("app",
4336
"spring-cloud-kubernetes-fabric8-client-reload");
4437

45-
46-
47-
4838
private static final String BODY_FOUR = """
4939
{
5040
"spec": {
@@ -245,14 +235,6 @@ static void patchSeven(Util util, String dockerImage, String deploymentName, Str
245235
util.patchWithReplace(dockerImage, deploymentName, namespace, BODY_SEVEN, POD_LABELS);
246236
}
247237

248-
static WebClient.Builder builder() {
249-
return WebClient.builder().clientConnector(new ReactorClientHttpConnector(HttpClient.create()));
250-
}
251-
252-
static RetryBackoffSpec retrySpec() {
253-
return Retry.fixedDelay(120, Duration.ofSeconds(2)).filter(Objects::nonNull);
254-
}
255-
256238
static String logs(K3sContainer container, String appLabelValue) {
257239
try {
258240
String appPodName = container

0 commit comments

Comments
 (0)