Search in sources :

Example 26 with ServiceName

use of io.fabric8.annotations.ServiceName in project fabric8 by fabric8io.

the class ServiceConverter method getServiceURL.

public String getServiceURL(KubernetesClient client, Service srv, String serviceProtocol, String servicePortName) {
    String serviceName = KubernetesHelper.getName(srv);
    String serviceProto = serviceProtocol != null ? serviceProtocol : KubernetesServices.serviceToProtocol(serviceName, servicePortName);
    if (Strings.isNullOrBlank(servicePortName) && KubernetesHelper.isOpenShift(client)) {
        OpenShiftClient openShiftClient = client.adapt(OpenShiftClient.class);
        RouteList routeList = openShiftClient.routes().list();
        for (Route route : routeList.getItems()) {
            if (route.getSpec().getTo().getName().equals(serviceName)) {
                return (serviceProto + "://" + route.getSpec().getHost()).toLowerCase();
            }
        }
    }
    ServicePort port = KubernetesHelper.findServicePortByName(srv, servicePortName);
    if (port == null) {
        throw new RuntimeException("Couldn't find port: " + servicePortName + " for service:" + serviceName);
    }
    String clusterIP = srv.getSpec().getClusterIP();
    if ("None".equals(clusterIP)) {
        throw new IllegalStateException("Service " + serviceName + " is head-less. Search for endpoints instead.");
    }
    return (serviceProto + "://" + clusterIP + ":" + port.getPort()).toLowerCase();
}
Also used : ServicePort(io.fabric8.kubernetes.api.model.ServicePort) OpenShiftClient(io.fabric8.openshift.client.OpenShiftClient) RouteList(io.fabric8.openshift.api.model.RouteList) Route(io.fabric8.openshift.api.model.Route)

Example 27 with ServiceName

use of io.fabric8.annotations.ServiceName in project fabric8 by fabric8io.

the class KubernetesAssert method service.

/**
 * Asserts that the given service name exist
 *
 * @return the assertion object on the given service
 */
public ServicePodsAssert service(String serviceName) {
    Service service = client.services().inNamespace(namespace()).withName(serviceName).get();
    assertThat(service).describedAs("No service exists for name: " + serviceName).isNotNull();
    return new ServicePodsAssert(client, service);
}
Also used : Service(io.fabric8.kubernetes.api.model.Service)

Aggregations

Service (io.fabric8.kubernetes.api.model.Service)13 ArrayList (java.util.ArrayList)7 ServiceBuilder (io.fabric8.kubernetes.api.model.ServiceBuilder)6 OpenShiftClient (io.fabric8.openshift.client.OpenShiftClient)6 ServicePort (io.fabric8.kubernetes.api.model.ServicePort)5 Ingress (io.fabric8.kubernetes.api.model.extensions.Ingress)5 KubernetesClient (io.fabric8.kubernetes.client.KubernetesClient)5 ServiceSpec (io.fabric8.kubernetes.api.model.ServiceSpec)4 HTTPIngressPath (io.fabric8.kubernetes.api.model.extensions.HTTPIngressPath)4 Route (io.fabric8.openshift.api.model.Route)4 List (java.util.List)4 ServicePortBuilder (io.fabric8.kubernetes.api.model.ServicePortBuilder)3 BaseOperation (io.fabric8.kubernetes.client.dsl.base.BaseOperation)3 Map (java.util.Map)3 JsonProcessingException (com.fasterxml.jackson.core.JsonProcessingException)2 Alias (io.fabric8.annotations.Alias)2 External (io.fabric8.annotations.External)2 PortName (io.fabric8.annotations.PortName)2 Protocol (io.fabric8.annotations.Protocol)2 ServiceName (io.fabric8.annotations.ServiceName)2