Bump kubernetes-client from 5.9.0 to 6.2.0 (#105)

This commit is contained in:
dependabot[bot] 2022-11-03 11:46:07 +01:00 committed by GitHub
parent e7cd6f6562
commit 57f300b1da
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 37 additions and 39 deletions

View File

@ -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 @@ public class KubernetesTCPRemoteCommitProvider extends DynamicTCPRemoteCommitPro
}
protected KubernetesClient kubernetesClient() throws KubernetesClientException {
return new DefaultKubernetesClient();
return new KubernetesClientBuilder().build();
}
@Override

View File

@ -24,6 +24,7 @@ import static org.junit.Assert.assertTrue;
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.lang.reflect.Field;
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 @@ public class KubernetesTCPRemoteCommitProviderTest {
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 class KubernetesTCPRemoteCommitProviderTest {
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 @@ public class KubernetesTCPRemoteCommitProviderTest {
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()));
}
}

View File

@ -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>