List<Endpoint> endpoints() {
        try {
            String urlString = String.format("%s/api/v1/namespaces/%s/pods", kubernetesMaster, namespace);
            return enrichWithPublicAddresses(parsePodsList(callGet(urlString)));
        } catch (RestClientException e) {
            return handleKnownException(e);
        }
    }
@Test
    public void endpointsByNamespaceWithLoadBalancerHostname() throws JsonProcessingException {
        // given
        stub(String.format("/api/v1/namespaces/%s/pods", NAMESPACE), podsListResponse());
        stub(String.format("/api/v1/namespaces/%s/endpoints", NAMESPACE), endpointsListResponse());
        stub(String.format("/api/v1/namespaces/%s/services/hazelcast-0", NAMESPACE),
                serviceLbHost(servicePort(32123, 5701, 31916), "abc.hostname"));
        stub(String.format("/api/v1/namespaces/%s/services/service-1", NAMESPACE),
                serviceLbHost(servicePort(32124, 5701, 31916), "abc2.hostname"));
        stub(String.format("/api/v1/namespaces/%s/pods/hazelcast-0", NAMESPACE),
                pod("hazelcast-0", NAMESPACE, "node-name-1", 5701));
        stub(String.format("/api/v1/namespaces/%s/pods/hazelcast-1", NAMESPACE),
                pod("hazelcast-1", NAMESPACE, "node-name-2", 5701));

        // when
        List<Endpoint> result = kubernetesClient.endpoints();

        // then
        assertThat(formatPrivate(result)).containsExactlyInAnyOrder(ready("192.168.0.25", 5701), ready("172.17.0.5", 5702));
        assertThat(formatPublic(result)).containsExactlyInAnyOrder(ready("abc.hostname", 32123), ready("abc2.hostname", 32124));
    }