Bump kubernetes-client from 5.9.0 to 6.2.0 (#105)
diff --git a/openjpa-kubernetes/src/main/java/org/apache/openjpa/event/kubernetes/KubernetesTCPRemoteCommitProvider.java b/openjpa-kubernetes/src/main/java/org/apache/openjpa/event/kubernetes/KubernetesTCPRemoteCommitProvider.java
index e0e1247..2316656 100644
--- a/openjpa-kubernetes/src/main/java/org/apache/openjpa/event/kubernetes/KubernetesTCPRemoteCommitProvider.java
+++ b/openjpa-kubernetes/src/main/java/org/apache/openjpa/event/kubernetes/KubernetesTCPRemoteCommitProvider.java
@@ -18,10 +18,10 @@
*/
package org.apache.openjpa.event.kubernetes;
-import io.fabric8.kubernetes.client.DefaultKubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClient;
+import io.fabric8.kubernetes.client.KubernetesClientBuilder;
import io.fabric8.kubernetes.client.KubernetesClientException;
-import io.fabric8.kubernetes.client.internal.readiness.Readiness;
+import io.fabric8.kubernetes.client.readiness.Readiness;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
@@ -58,7 +58,7 @@
}
protected KubernetesClient kubernetesClient() throws KubernetesClientException {
- return new DefaultKubernetesClient();
+ return new KubernetesClientBuilder().build();
}
@Override
diff --git a/openjpa-kubernetes/src/test/java/org/apache/openjpa/event/kubernetes/KubernetesTCPRemoteCommitProviderTest.java b/openjpa-kubernetes/src/test/java/org/apache/openjpa/event/kubernetes/KubernetesTCPRemoteCommitProviderTest.java
index d8e1e1f..8645d2e 100644
--- a/openjpa-kubernetes/src/test/java/org/apache/openjpa/event/kubernetes/KubernetesTCPRemoteCommitProviderTest.java
+++ b/openjpa-kubernetes/src/test/java/org/apache/openjpa/event/kubernetes/KubernetesTCPRemoteCommitProviderTest.java
@@ -24,6 +24,7 @@
import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.PodBuilder;
+import io.fabric8.kubernetes.api.model.PodCondition;
import io.fabric8.kubernetes.api.model.PodList;
import io.fabric8.kubernetes.api.model.PodStatusBuilder;
import io.fabric8.kubernetes.client.KubernetesClient;
@@ -33,9 +34,6 @@
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
-import java.util.stream.Collectors;
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.lang.builder.ReflectionToStringBuilder;
import org.apache.openjpa.event.TCPRemoteCommitProvider;
import org.apache.openjpa.lib.conf.Configuration;
import org.apache.openjpa.lib.log.SLF4JLogFactory;
@@ -51,6 +49,23 @@
private static final String LABEL = "testKey";
+ @SuppressWarnings("unchecked")
+ private static List<String> getAddresses(final KubernetesTCPRemoteCommitProvider rcp)
+ throws NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
+
+ Field _addresses = TCPRemoteCommitProvider.class.getDeclaredField("_addresses");
+ _addresses.setAccessible(true);
+
+ List<String> result = new ArrayList<>();
+ for (Object address : ((Iterable<? extends Object>) _addresses.get(rcp))) {
+ Field _address = address.getClass().getDeclaredField("_address");
+ _address.setAccessible(true);
+
+ result.add(_address.get(address).toString().substring(1));
+ }
+ return result;
+ }
+
@Rule
public JUnitRuleMockery context = new JUnitRuleMockery();
@@ -69,60 +84,50 @@
public void setupKubernetes() {
KubernetesClient client = server.getClient();
+ PodCondition condition = new PodCondition();
+ condition.setType("Ready");
+ condition.setStatus("True");
+
pod1 = new PodBuilder().
withNewMetadata().
withName("pod1").
addToLabels(LABEL, "value1").
endMetadata().
- withStatus(new PodStatusBuilder().withPodIP("1.1.1.1").build()).
+ withStatus(new PodStatusBuilder().withPodIP("1.1.1.1").withConditions(condition).build()).
build();
- client.pods().inNamespace(NAMESPACE).create(pod1);
+ client.pods().inNamespace(NAMESPACE).resource(pod1).create();
pod2 = new PodBuilder().
withNewMetadata().
withName("pod2").
addToLabels(LABEL, "value2").
endMetadata().
- withStatus(new PodStatusBuilder().withPodIP("2.2.2.2").build()).
+ withStatus(new PodStatusBuilder().withPodIP("2.2.2.2").withConditions(condition).build()).
build();
- client.pods().inNamespace(NAMESPACE).create(pod2);
+ client.pods().inNamespace(NAMESPACE).resource(pod2).create();
pod3 = new PodBuilder().
withNewMetadata().
withName("pod3").
endMetadata().
- withStatus(new PodStatusBuilder().withPodIP("3.3.3.3").build()).
+ withStatus(new PodStatusBuilder().withPodIP("3.3.3.3").withConditions(condition).build()).
build();
- client.pods().inNamespace("ns2").create(pod3);
+ client.pods().inNamespace("ns2").resource(pod3).create();
pod4 = new PodBuilder().
withNewMetadata().
withName("pod4").
addToLabels("other", "value1").
endMetadata().
- withStatus(new PodStatusBuilder().withPodIP("4.4.4.4").build()).
+ withStatus(new PodStatusBuilder().withPodIP("4.4.4.4").withConditions(condition).build()).
build();
- client.pods().inNamespace(NAMESPACE).create(pod4);
+ client.pods().inNamespace(NAMESPACE).resource(pod4).create();
PodList podList = client.pods().inNamespace(NAMESPACE).withLabel(LABEL).list();
assertNotNull(podList);
assertEquals(2, podList.getItems().size());
- assertTrue(podList.getItems().contains(pod1));
- assertTrue(podList.getItems().contains(pod2));
- }
-
- @SuppressWarnings("unchecked")
- private List<String> getAddresses(final KubernetesTCPRemoteCommitProvider rcp)
- throws NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
-
- Field _addresses = TCPRemoteCommitProvider.class.getDeclaredField("_addresses");
- _addresses.setAccessible(true);
-
- return new ArrayList<>((List<Object>) _addresses.get(rcp)).stream().
- map(ReflectionToStringBuilder::toString).
- map(address -> StringUtils.substringAfter(address, "_address=/")).
- map(address -> StringUtils.substringBefore(address, ",")).
- collect(Collectors.toList());
+ assertTrue(podList.getItems().stream().anyMatch(pod -> "pod1".equals(pod.getMetadata().getName())));
+ assertTrue(podList.getItems().stream().anyMatch(pod -> "pod2".equals(pod.getMetadata().getName())));
}
@Test
@@ -160,12 +165,5 @@
assertEquals(2, addresses.size());
assertTrue(addresses.contains(pod1.getStatus().getPodIP()));
assertTrue(addresses.contains(pod2.getStatus().getPodIP()));
-
- Thread.sleep(500);
-
- addresses = getAddresses(rcp);
- assertEquals(2, addresses.size());
- assertTrue(addresses.contains(pod1.getStatus().getPodIP()));
- assertTrue(addresses.contains(pod2.getStatus().getPodIP()));
}
}
diff --git a/pom.xml b/pom.xml
index 6529ba5..5be36ce 100644
--- a/pom.xml
+++ b/pom.xml
@@ -85,7 +85,7 @@
<mssql.connector.version>11.2.1.jre8</mssql.connector.version>
<!-- other common versions -->
- <kubernetes-client.version>5.9.0</kubernetes-client.version>
+ <kubernetes-client.version>6.2.0</kubernetes-client.version>
<slf4j.version>1.7.23</slf4j.version>
<!-- Compile Java source/target class level -->
<compile.class.source>${java.class.version}</compile.class.source>
@@ -95,7 +95,7 @@
<maven.javadoc.version>3.0.1</maven.javadoc.version>
<javadoc.additionalparam />
- <maven.surefire.version>3.0.0-M4</maven.surefire.version>
+ <maven.surefire.version>3.0.0-M7</maven.surefire.version>
<xbean.version>4.20</xbean.version>
<bval.version>1.1.2</bval.version>