kubernetes-client icon indicating copy to clipboard operation
kubernetes-client copied to clipboard

Connection closed when using mock server

Open ruiarodrigues opened this issue 5 months ago • 4 comments

Describe the bug

Hi! I'm upgrade from 6.x to 7.3.1 and my tests fail with connection closed when the first request to the server is done. Everything works fine with 6.x. See the steps to reproduce the error.

Fabric8 Kubernetes Client version

7.3.1

Steps to reproduce

Run this

import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.PodBuilder;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient;
import io.fabric8.kubernetes.client.server.mock.KubernetesMockServer;
import org.junit.jupiter.api.Test;

@EnableKubernetesMockClient
class SomeTest {

    KubernetesMockServer server;
    KubernetesClient client;

    @Test
    void myTest() {
        server.expect().get()
            .withPath("/api/v1/namespaces/my-namespace/pods/my-pod")
            .andReturn(200, new PodBuilder().build())
            .always();
        Pod pod = client.pods().inNamespace("my-namespace").withName("my-pod").get();
    }
}

Expected behavior

Tests should pass after the upograde

Runtime

Kubernetes (vanilla)

Kubernetes API Server version

1.33

Environment

macOS

Fabric8 Kubernetes Client Logs

INFO: MockWebServer[51150] starting to accept connections on localhost
May 23, 2025 3:43:37 PM io.fabric8.mockwebserver.MockWebServer info
INFO: MockWebServer[51150] done accepting connections

Connection was closed
io.fabric8.kubernetes.client.KubernetesClientException: Connection was closed
	at io.fabric8.kubernetes.client.dsl.internal.OperationSupport.waitForResult(OperationSupport.java:509)
	at io.fabric8.kubernetes.client.dsl.internal.OperationSupport.handleResponse(OperationSupport.java:524)
	at io.fabric8.kubernetes.client.dsl.internal.OperationSupport.handleGet(OperationSupport.java:467)
	at io.fabric8.kubernetes.client.dsl.internal.BaseOperation.handleGet(BaseOperation.java:792)
	at io.fabric8.kubernetes.client.dsl.internal.BaseOperation.requireFromServer(BaseOperation.java:193)
	at io.fabric8.kubernetes.client.dsl.internal.BaseOperation.get(BaseOperation.java:149)
	at io.fabric8.kubernetes.client.dsl.internal.BaseOperation.get(BaseOperation.java:98)
	at fi.relex.processor2.adapter.SomeTest.myTest(SomeTest.java:38)

Additional context

I have as dependencies. Maybe something is missing?

kubernetes-client-bom = { module = "io.fabric8:kubernetes-client-bom", version = "7.3.1" }

implementation("io.fabric8:kubernetes-client")

ruiarodrigues avatar May 23 '25 14:05 ruiarodrigues