[3.0] Kubernetes Client dependency upgrade (#7603)
* upgrade fabric version, use http protocol in ut instead
This commit is contained in:
parent
0a5a709c68
commit
e93338749a
|
|
@ -148,7 +148,7 @@
|
|||
<eureka.version>1.9.12</eureka.version>
|
||||
|
||||
<!-- Fabric8 for Kubernetes -->
|
||||
<fabric8_kubernetes_version>4.10.3</fabric8_kubernetes_version>
|
||||
<fabric8_kubernetes_version>5.3.0</fabric8_kubernetes_version>
|
||||
|
||||
<!-- Alibaba -->
|
||||
<alibaba_spring_context_support_version>1.0.8</alibaba_spring_context_support_version>
|
||||
|
|
|
|||
|
|
@ -34,13 +34,14 @@ import io.fabric8.kubernetes.api.model.EndpointPort;
|
|||
import io.fabric8.kubernetes.api.model.EndpointSubset;
|
||||
import io.fabric8.kubernetes.api.model.Endpoints;
|
||||
import io.fabric8.kubernetes.api.model.Pod;
|
||||
import io.fabric8.kubernetes.api.model.PodBuilder;
|
||||
import io.fabric8.kubernetes.api.model.Service;
|
||||
import io.fabric8.kubernetes.client.Config;
|
||||
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
|
||||
import io.fabric8.kubernetes.client.KubernetesClient;
|
||||
import io.fabric8.kubernetes.client.KubernetesClientException;
|
||||
import io.fabric8.kubernetes.client.Watch;
|
||||
import io.fabric8.kubernetes.client.Watcher;
|
||||
import io.fabric8.kubernetes.client.WatcherException;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
|
|
@ -123,11 +124,12 @@ public class KubernetesServiceDiscovery implements ServiceDiscovery {
|
|||
.pods()
|
||||
.inNamespace(namespace)
|
||||
.withName(currentHostname)
|
||||
.edit()
|
||||
.editOrNewMetadata()
|
||||
.addToAnnotations(KUBERNETES_PROPERTIES_KEY, JSONObject.toJSONString(serviceInstance.getMetadata()))
|
||||
.endMetadata()
|
||||
.done();
|
||||
.edit(pod->
|
||||
new PodBuilder(pod)
|
||||
.editOrNewMetadata()
|
||||
.addToAnnotations(KUBERNETES_PROPERTIES_KEY, JSONObject.toJSONString(serviceInstance.getMetadata()))
|
||||
.endMetadata()
|
||||
.build());
|
||||
if (logger.isInfoEnabled()) {
|
||||
logger.info("Write Current Service Instance Metadata to Kubernetes pod. " +
|
||||
"Current pod name: " + currentHostname);
|
||||
|
|
@ -149,11 +151,12 @@ public class KubernetesServiceDiscovery implements ServiceDiscovery {
|
|||
.pods()
|
||||
.inNamespace(namespace)
|
||||
.withName(currentHostname)
|
||||
.edit()
|
||||
.editOrNewMetadata()
|
||||
.removeFromAnnotations(KUBERNETES_PROPERTIES_KEY)
|
||||
.endMetadata()
|
||||
.done();
|
||||
.edit(pod ->
|
||||
new PodBuilder(pod)
|
||||
.editOrNewMetadata()
|
||||
.removeFromAnnotations(KUBERNETES_PROPERTIES_KEY)
|
||||
.endMetadata()
|
||||
.build());
|
||||
if (logger.isInfoEnabled()) {
|
||||
logger.info("Remove Current Service Instance from Kubernetes pod. Current pod name: " + currentHostname);
|
||||
}
|
||||
|
|
@ -222,7 +225,7 @@ public class KubernetesServiceDiscovery implements ServiceDiscovery {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onClose(KubernetesClientException cause) {
|
||||
public void onClose(WatcherException cause) {
|
||||
// ignore
|
||||
}
|
||||
});
|
||||
|
|
@ -253,7 +256,7 @@ public class KubernetesServiceDiscovery implements ServiceDiscovery {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onClose(KubernetesClientException cause) {
|
||||
public void onClose(WatcherException cause) {
|
||||
// ignore
|
||||
}
|
||||
});
|
||||
|
|
@ -284,7 +287,7 @@ public class KubernetesServiceDiscovery implements ServiceDiscovery {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onClose(KubernetesClientException cause) {
|
||||
public void onClose(WatcherException cause) {
|
||||
// ignore
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ import io.fabric8.kubernetes.api.model.PodBuilder;
|
|||
import io.fabric8.kubernetes.api.model.Service;
|
||||
import io.fabric8.kubernetes.api.model.ServiceBuilder;
|
||||
import io.fabric8.kubernetes.client.Config;
|
||||
import io.fabric8.kubernetes.client.KubernetesClient;
|
||||
import io.fabric8.kubernetes.client.NamespacedKubernetesClient;
|
||||
import io.fabric8.kubernetes.client.server.mock.KubernetesServer;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
|
|
@ -47,9 +47,9 @@ import java.util.Map;
|
|||
|
||||
@ExtendWith({MockitoExtension.class})
|
||||
public class KubernetesServiceDiscoveryTest {
|
||||
public KubernetesServer mockServer = new KubernetesServer(true, true);
|
||||
public KubernetesServer mockServer = new KubernetesServer(false, true);
|
||||
|
||||
private KubernetesClient mockClient;
|
||||
private NamespacedKubernetesClient mockClient;
|
||||
|
||||
private ServiceInstancesChangedListener mockListener = Mockito.mock(ServiceInstancesChangedListener.class);
|
||||
|
||||
|
|
@ -64,7 +64,7 @@ public class KubernetesServiceDiscoveryTest {
|
|||
|
||||
serverUrl = URL.valueOf(mockClient.getConfiguration().getMasterUrl())
|
||||
.setProtocol("kubernetes")
|
||||
.addParameter(KubernetesClientConst.TRUST_CERTS, "true")
|
||||
.addParameter(KubernetesClientConst.USE_HTTPS, "false")
|
||||
.addParameter(KubernetesClientConst.HTTP2_DISABLE, "true");
|
||||
|
||||
System.setProperty(Config.KUBERNETES_AUTH_TRYKUBECONFIG_SYSTEM_PROPERTY, "false");
|
||||
|
|
@ -116,16 +116,20 @@ public class KubernetesServiceDiscoveryTest {
|
|||
Mockito.doNothing().when(mockListener).onEvent(Mockito.any());
|
||||
|
||||
serviceDiscovery.addServiceInstancesChangedListener(mockListener);
|
||||
mockClient.endpoints().withName("TestService").edit().editFirstSubset()
|
||||
.addNewAddress().withIp("ip2")
|
||||
.withNewTargetRef().withUid("uid2").withName("TestServer").endTargetRef().endAddress()
|
||||
.addNewPort("Test", "Test", 12345, "TCP").endSubset()
|
||||
.done();
|
||||
mockClient.endpoints().withName("TestService")
|
||||
.edit(endpoints ->
|
||||
new EndpointsBuilder(endpoints)
|
||||
.editFirstSubset()
|
||||
.addNewAddress()
|
||||
.withIp("ip2")
|
||||
.withNewTargetRef().withUid("uid2").withName("TestServer").endTargetRef()
|
||||
.endAddress().endSubset()
|
||||
.build());
|
||||
|
||||
Thread.sleep(5000);
|
||||
ArgumentCaptor<ServiceInstancesChangedEvent> eventArgumentCaptor =
|
||||
ArgumentCaptor.forClass(ServiceInstancesChangedEvent.class);
|
||||
Mockito.verify(mockListener).onEvent(eventArgumentCaptor.capture());
|
||||
Mockito.verify(mockListener, Mockito.times(2)).onEvent(eventArgumentCaptor.capture());
|
||||
Assertions.assertEquals(2, eventArgumentCaptor.getValue().getServiceInstances().size());
|
||||
|
||||
serviceDiscovery.unregister(serviceInstance);
|
||||
|
|
@ -158,7 +162,7 @@ public class KubernetesServiceDiscoveryTest {
|
|||
Thread.sleep(5000);
|
||||
ArgumentCaptor<ServiceInstancesChangedEvent> eventArgumentCaptor =
|
||||
ArgumentCaptor.forClass(ServiceInstancesChangedEvent.class);
|
||||
Mockito.verify(mockListener).onEvent(eventArgumentCaptor.capture());
|
||||
Mockito.verify(mockListener, Mockito.times(2)).onEvent(eventArgumentCaptor.capture());
|
||||
Assertions.assertEquals(1, eventArgumentCaptor.getValue().getServiceInstances().size());
|
||||
|
||||
serviceDiscovery.unregister(serviceInstance);
|
||||
|
|
|
|||
Loading…
Reference in New Issue