Skip to content

Commit 9862e24

Browse files
wind57ryanjbaxter
andauthored
Update to fabric8 6.2.0 (#1165)
Co-authored-by: Ryan Baxter <[email protected]>
1 parent 411e8a1 commit 9862e24

File tree

44 files changed

+282
-189
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+282
-189
lines changed

spring-cloud-kubernetes-dependencies/pom.xml

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,8 @@
3333
<description>Spring Cloud Kubernetes Dependencies</description>
3434
<properties>
3535
<hoverfly.version>0.13.0</hoverfly.version>
36-
<kubernetes-fabric8-client.version>5.12.2</kubernetes-fabric8-client.version>
36+
<kubernetes-fabric8-client.version>6.2.0</kubernetes-fabric8-client.version>
3737
<kubernetes-native-client.version>16.0.2</kubernetes-native-client.version>
38-
<istio-client.version>1.7.7.1</istio-client.version>
3938
<wiremock.version>2.26.3</wiremock.version>
4039
<spring-retry.version>1.3.1</spring-retry.version>
4140
<commons.collections4.version>4.4</commons.collections4.version>
@@ -72,12 +71,6 @@
7271
<version>${kubernetes-native-client.version}</version>
7372
</dependency>
7473

75-
<dependency>
76-
<groupId>me.snowdrop</groupId>
77-
<artifactId>istio-client</artifactId>
78-
<version>${istio-client.version}</version>
79-
</dependency>
80-
8174
<dependency>
8275
<groupId>org.springframework.retry</groupId>
8376
<artifactId>spring-retry</artifactId>

spring-cloud-kubernetes-fabric8-autoconfig/src/main/java/org/springframework/cloud/kubernetes/fabric8/Fabric8AutoConfiguration.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020

2121
import io.fabric8.kubernetes.client.Config;
2222
import io.fabric8.kubernetes.client.ConfigBuilder;
23-
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
2423
import io.fabric8.kubernetes.client.KubernetesClient;
24+
import io.fabric8.kubernetes.client.KubernetesClientBuilder;
2525

2626
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
2727
import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatform;
@@ -107,7 +107,7 @@ public Config kubernetesClientConfig(KubernetesClientProperties kubernetesClient
107107
@Bean
108108
@ConditionalOnMissingBean
109109
public KubernetesClient kubernetesClient(Config config) {
110-
return new DefaultKubernetesClient(config);
110+
return new KubernetesClientBuilder().withConfig(config).build();
111111
}
112112

113113
@Bean

spring-cloud-kubernetes-fabric8-autoconfig/src/main/java/org/springframework/cloud/kubernetes/fabric8/profile/Fabric8ProfileEnvironmentPostProcessor.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2013-2019 the original author or authors.
2+
* Copyright 2013-2022 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -16,7 +16,8 @@
1616

1717
package org.springframework.cloud.kubernetes.fabric8.profile;
1818

19-
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
19+
import io.fabric8.kubernetes.client.KubernetesClient;
20+
import io.fabric8.kubernetes.client.KubernetesClientBuilder;
2021

2122
import org.springframework.cloud.kubernetes.commons.profile.AbstractKubernetesProfileEnvironmentPostProcessor;
2223
import org.springframework.cloud.kubernetes.fabric8.Fabric8PodUtils;
@@ -26,7 +27,8 @@ public class Fabric8ProfileEnvironmentPostProcessor extends AbstractKubernetesPr
2627

2728
@Override
2829
protected boolean isInsideKubernetes(Environment environment) {
29-
try (DefaultKubernetesClient client = new DefaultKubernetesClient()) {
30+
31+
try (KubernetesClient client = new KubernetesClientBuilder().build()) {
3032
Fabric8PodUtils podUtils = new Fabric8PodUtils(client);
3133
return environment.containsProperty(Fabric8PodUtils.KUBERNETES_SERVICE_HOST)
3234
|| podUtils.isInsideKubernetes();

spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/Fabric8PodUtilsTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,11 @@ class Fabric8PodUtilsTest {
6262

6363
private final File certFile = Mockito.mock(File.class);
6464

65-
private final MixedOperation<Pod, PodList, PodResource<Pod>> mixed = Mockito.mock(MixedOperation.class);
65+
private final MixedOperation<Pod, PodList, PodResource> mixed = Mockito.mock(MixedOperation.class);
6666

6767
private final Pod pod = Mockito.mock(Pod.class);
6868

69-
private final PodResource<Pod> podResource = Mockito.mock(PodResource.class);
69+
private final PodResource podResource = Mockito.mock(PodResource.class);
7070

7171
private MockedStatic<EnvReader> envReader;
7272

spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/fabric8/Fabric8UserAgentDefaultConfigurationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class Fabric8UserAgentDefaultConfigurationTests {
3737
@Test
3838
void testUserAgent() {
3939
String userAgent = client.getConfiguration().getUserAgent();
40-
assertThat(userAgent).isEqualTo("Spring-Cloud-Kubernetes-Application");
40+
assertThat(userAgent).isEqualTo("fabric8-kubernetes-client/6.2.0");
4141
}
4242

4343
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
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;
18+
19+
import io.fabric8.kubernetes.client.KubernetesClient;
20+
import org.junit.jupiter.api.Test;
21+
import org.mockito.Mockito;
22+
23+
import org.springframework.cloud.kubernetes.commons.config.NamespaceResolutionFailedException;
24+
25+
import static org.assertj.core.api.Assertions.assertThat;
26+
import static org.assertj.core.api.Assertions.assertThatThrownBy;
27+
28+
/**
29+
* @author wind57
30+
*/
31+
class Fabric8UtilsMockTests {
32+
33+
private final KubernetesClient mockClient = Mockito.mock(KubernetesClient.class);
34+
35+
@Test
36+
void testNamespaceFromClient() {
37+
Mockito.when(mockClient.getNamespace()).thenReturn("qwe");
38+
String result = Fabric8Utils.getApplicationNamespace(mockClient, "", "target", null);
39+
assertThat(result).isEqualTo("qwe");
40+
}
41+
42+
@Test
43+
void testNamespaceResolutionFailed() {
44+
assertThatThrownBy(() -> Fabric8Utils.getApplicationNamespace(mockClient, "", "target", null))
45+
.isInstanceOf(NamespaceResolutionFailedException.class);
46+
}
47+
48+
}

spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/fabric8/Fabric8UtilsTests.java

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,14 @@
1616

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

19-
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
2019
import io.fabric8.kubernetes.client.KubernetesClient;
2120
import io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient;
2221
import org.junit.jupiter.api.Test;
2322
import org.mockito.Mockito;
2423

2524
import org.springframework.cloud.kubernetes.commons.KubernetesNamespaceProvider;
26-
import org.springframework.cloud.kubernetes.commons.config.NamespaceResolutionFailedException;
2725

2826
import static org.assertj.core.api.Assertions.assertThat;
29-
import static org.assertj.core.api.Assertions.assertThatThrownBy;
3027

3128
/**
3229
* @author wind57
@@ -36,8 +33,6 @@ class Fabric8UtilsTests {
3633

3734
private KubernetesClient client;
3835

39-
private final DefaultKubernetesClient mockClient = Mockito.mock(DefaultKubernetesClient.class);
40-
4136
private final KubernetesNamespaceProvider provider = Mockito.mock(KubernetesNamespaceProvider.class);
4237

4338
@Test
@@ -65,17 +60,4 @@ void testNamespaceFromProvider() {
6560
assertThat(result).isEqualTo("def");
6661
}
6762

68-
@Test
69-
void testNamespaceFromClient() {
70-
Mockito.when(mockClient.getNamespace()).thenReturn("qwe");
71-
String result = Fabric8Utils.getApplicationNamespace(mockClient, "", "target", null);
72-
assertThat(result).isEqualTo("qwe");
73-
}
74-
75-
@Test
76-
void testNamespaceResolutionFailed() {
77-
assertThatThrownBy(() -> Fabric8Utils.getApplicationNamespace(mockClient, "", "target", null))
78-
.isInstanceOf(NamespaceResolutionFailedException.class);
79-
}
80-
8163
}

spring-cloud-kubernetes-fabric8-config/src/main/java/org/springframework/cloud/kubernetes/fabric8/config/reload/Fabric8EventBasedConfigMapChangeDetector.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import io.fabric8.kubernetes.client.KubernetesClient;
2626
import io.fabric8.kubernetes.client.informers.ResourceEventHandler;
2727
import io.fabric8.kubernetes.client.informers.SharedIndexInformer;
28-
import io.fabric8.kubernetes.client.informers.SharedInformer;
2928
import jakarta.annotation.PostConstruct;
3029
import jakarta.annotation.PreDestroy;
3130
import org.apache.commons.logging.LogFactory;
@@ -104,7 +103,7 @@ private void inform() {
104103

105104
@PreDestroy
106105
private void shutdown() {
107-
informers.forEach(SharedInformer::close);
106+
informers.forEach(SharedIndexInformer::close);
108107
// Ensure the kubernetes client is cleaned up from spare threads when shutting
109108
// down
110109
kubernetesClient.close();

spring-cloud-kubernetes-fabric8-config/src/main/java/org/springframework/cloud/kubernetes/fabric8/config/reload/Fabric8EventBasedSecretsChangeDetector.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import io.fabric8.kubernetes.client.KubernetesClient;
2626
import io.fabric8.kubernetes.client.informers.ResourceEventHandler;
2727
import io.fabric8.kubernetes.client.informers.SharedIndexInformer;
28-
import io.fabric8.kubernetes.client.informers.SharedInformer;
2928
import jakarta.annotation.PostConstruct;
3029
import jakarta.annotation.PreDestroy;
3130
import org.apache.commons.logging.LogFactory;
@@ -81,7 +80,7 @@ public Fabric8EventBasedSecretsChangeDetector(AbstractEnvironment environment, C
8180

8281
@PreDestroy
8382
private void shutdown() {
84-
informers.forEach(SharedInformer::close);
83+
informers.forEach(SharedIndexInformer::close);
8584
// Ensure the kubernetes client is cleaned up from spare threads when shutting
8685
// down
8786
kubernetesClient.close();

spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/ConfigMapsTest.java

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -35,29 +35,29 @@
3535
* @author Charles Moulliard
3636
*/
3737
@EnableKubernetesMockClient(crud = true, https = false)
38-
public class ConfigMapsTest {
38+
class ConfigMapsTest {
3939

4040
private static KubernetesClient mockClient;
4141

4242
@Test
4343
public void testConfigMapList() {
4444
mockClient.configMaps().inNamespace("ns1")
45-
.create(new ConfigMapBuilder().withNewMetadata().withName("empty").endMetadata().build());
45+
.resource(new ConfigMapBuilder().withNewMetadata().withName("empty").endMetadata().build()).create();
4646

4747
ConfigMapList configMapList = mockClient.configMaps().inNamespace("ns1").list();
4848
assertThat(configMapList).isNotNull();
4949
// metadata is an element
5050
assertThat(configMapList.getItems().size()).isEqualTo(1);
51-
assertThat(configMapList.getItems().get(0).getData()).isNull();
51+
assertThat(configMapList.getItems().get(0).getData()).isEmpty();
5252
}
5353

5454
@Test
55-
public void testConfigMapGet() {
55+
void testConfigMapGet() {
5656

5757
ConfigMap configMap = new ConfigMapBuilder().withNewMetadata().withName("reload-example").endMetadata()
5858
.addToData("KEY", "123").build();
5959

60-
mockClient.configMaps().inNamespace("ns2").create(configMap);
60+
mockClient.configMaps().inNamespace("ns2").resource(configMap).create();
6161

6262
ConfigMapList configMapList = mockClient.configMaps().inNamespace("ns2").list();
6363
assertThat(configMapList).isNotNull();
@@ -68,13 +68,13 @@ public void testConfigMapGet() {
6868
}
6969

7070
@Test
71-
public void testConfigMapFromSingleApplicationProperties() {
71+
void testConfigMapFromSingleApplicationProperties() {
7272
String configMapName = "app-properties-test";
7373
ConfigMap configMap = new ConfigMapBuilder().withNewMetadata().withName(configMapName).endMetadata()
7474
.addToData("application.properties", ConfigMapTestUtil.readResourceFile("application.properties"))
7575
.build();
7676

77-
mockClient.configMaps().inNamespace("test").create(configMap);
77+
mockClient.configMaps().inNamespace("test").resource(configMap).create();
7878
NormalizedSource source = new NamedConfigMapNormalizedSource(configMapName, "test", false, false);
7979
Fabric8ConfigContext context = new Fabric8ConfigContext(mockClient, source, "", new MockEnvironment());
8080

@@ -86,12 +86,12 @@ public void testConfigMapFromSingleApplicationProperties() {
8686
}
8787

8888
@Test
89-
public void testConfigMapFromSingleApplicationYaml() {
89+
void testConfigMapFromSingleApplicationYaml() {
9090
String configMapName = "app-yaml-test";
9191
ConfigMap configMap = new ConfigMapBuilder().withNewMetadata().withName(configMapName).endMetadata()
9292
.addToData("application.yaml", ConfigMapTestUtil.readResourceFile("application.yaml")).build();
9393

94-
mockClient.configMaps().inNamespace("test").create(configMap);
94+
mockClient.configMaps().inNamespace("test").resource(configMap).create();
9595
NormalizedSource source = new NamedConfigMapNormalizedSource(configMapName, "test", false, false);
9696
Fabric8ConfigContext context = new Fabric8ConfigContext(mockClient, source, "", new MockEnvironment());
9797

@@ -103,12 +103,12 @@ public void testConfigMapFromSingleApplicationYaml() {
103103
}
104104

105105
@Test
106-
public void testConfigMapFromSingleNonStandardFileName() {
106+
void testConfigMapFromSingleNonStandardFileName() {
107107
String configMapName = "single-non-standard-test";
108108
ConfigMap configMap = new ConfigMapBuilder().withNewMetadata().withName(configMapName).endMetadata()
109109
.addToData("adhoc.yml", ConfigMapTestUtil.readResourceFile("adhoc.yml")).build();
110110

111-
mockClient.configMaps().inNamespace("test").create(configMap);
111+
mockClient.configMaps().inNamespace("test").resource(configMap).create();
112112
NormalizedSource source = new NamedConfigMapNormalizedSource(configMapName, "test", false, false);
113113
Fabric8ConfigContext context = new Fabric8ConfigContext(mockClient, source, "", new MockEnvironment());
114114

@@ -120,12 +120,12 @@ public void testConfigMapFromSingleNonStandardFileName() {
120120
}
121121

122122
@Test
123-
public void testConfigMapFromSingleInvalidPropertiesContent() {
123+
void testConfigMapFromSingleInvalidPropertiesContent() {
124124
String configMapName = "single-unparseable-properties-test";
125125
ConfigMap configMap = new ConfigMapBuilder().withNewMetadata().withName(configMapName).endMetadata()
126126
.addToData("application.properties", "somevalue").build();
127127

128-
mockClient.configMaps().inNamespace("test").create(configMap);
128+
mockClient.configMaps().inNamespace("test").resource(configMap).create();
129129
NormalizedSource source = new NamedConfigMapNormalizedSource(configMapName, "namespace", false, false);
130130
Fabric8ConfigContext context = new Fabric8ConfigContext(mockClient, source, "", new MockEnvironment());
131131

@@ -135,12 +135,12 @@ public void testConfigMapFromSingleInvalidPropertiesContent() {
135135
}
136136

137137
@Test
138-
public void testConfigMapFromSingleInvalidYamlContent() {
138+
void testConfigMapFromSingleInvalidYamlContent() {
139139
String configMapName = "single-unparseable-yaml-test";
140140
ConfigMap configMap = new ConfigMapBuilder().withNewMetadata().withName(configMapName).endMetadata()
141141
.addToData("application.yaml", "somevalue").build();
142142

143-
mockClient.configMaps().inNamespace("test").create(configMap);
143+
mockClient.configMaps().inNamespace("test").resource(configMap).create();
144144
NormalizedSource source = new NamedConfigMapNormalizedSource(configMapName, "namespace", false, false);
145145
Fabric8ConfigContext context = new Fabric8ConfigContext(mockClient, source, "", new MockEnvironment());
146146

@@ -150,13 +150,13 @@ public void testConfigMapFromSingleInvalidYamlContent() {
150150
}
151151

152152
@Test
153-
public void testConfigMapFromMultipleApplicationProperties() {
153+
void testConfigMapFromMultipleApplicationProperties() {
154154
String configMapName = "app-multiple-properties-test";
155155
ConfigMap configMap = new ConfigMapBuilder().withNewMetadata().withName(configMapName).endMetadata()
156156
.addToData("application.properties", ConfigMapTestUtil.readResourceFile("application.properties"))
157157
.addToData("adhoc.properties", ConfigMapTestUtil.readResourceFile("adhoc.properties")).build();
158158

159-
mockClient.configMaps().inNamespace("test").create(configMap);
159+
mockClient.configMaps().inNamespace("test").resource(configMap).create();
160160
NormalizedSource source = new NamedConfigMapNormalizedSource(configMapName, "test", false, false);
161161
Fabric8ConfigContext context = new Fabric8ConfigContext(mockClient, source, "", new MockEnvironment());
162162

0 commit comments

Comments
 (0)