io.fabric8.kubernetes.api.model.ServiceStatus#io.fabric8.kubernetes.api.model.LoadBalancerStatus源码实例Demo

下面列出了io.fabric8.kubernetes.api.model.ServiceStatus#io.fabric8.kubernetes.api.model.LoadBalancerStatus 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

protected void createMockService(final String serviceName, final String ip, final Map<String, String> labels, final String namespace) {
    final ServiceSpec serviceSpec = new ServiceSpec();
    serviceSpec.setPorts(Collections.singletonList(new ServicePort("http", 0, 8080, "http", new IntOrString(8080))));
    serviceSpec.setClusterIP(ip);
    serviceSpec.setType("ClusterIP");
    serviceSpec.setSessionAffinity("ClientIP");

    final ObjectMeta metadata = new ObjectMeta();
    metadata.setName(serviceName);
    metadata.setNamespace(MOCK_NAMESPACE);
    metadata.setLabels(labels);

    final Service service = new Service("v1", "Service", metadata, serviceSpec, new ServiceStatus(new LoadBalancerStatus()));
    if (namespace != null) {
        this.server.getClient().inNamespace(namespace).services().create(service);
    } else {
        this.server.getClient().services().create(service);
    }

}
 
@Test
public void testGivenServiceExists() {
    final ServiceSpec serviceSpec = new ServiceSpec();
    serviceSpec.setPorts(Collections.singletonList(new ServicePort("http", 0, 8080, "http", new IntOrString(8080))));
    serviceSpec.setClusterIP("172.30.158.31");
    serviceSpec.setType("ClusterIP");
    serviceSpec.setSessionAffinity("ClientIP");

    final ObjectMeta metadata = new ObjectMeta();
    metadata.setName("test-kieserver");
    metadata.setNamespace(MOCK_NAMESPACE);
    metadata.setLabels(Collections.singletonMap("test-kieserver", "service"));

    final Service service = new Service("v1", "Service", metadata, serviceSpec, new ServiceStatus(new LoadBalancerStatus()));
    getClient().services().create(service);

    final DiscoveredServiceWorkItemHandler handler = new TestDiscoveredServiceWorkItemHandler(this);
    final ServiceInfo serviceInfo = handler.findEndpoint(MOCK_NAMESPACE, "test-kieserver");
    assertThat(serviceInfo, notNullValue());
    assertThat(serviceInfo.getUrl(), is("http://172.30.158.31:8080/test-kieserver"));
}
 
源代码3 项目: flink   文件: Fabric8FlinkKubeClient.java
private Optional<Endpoint> getRestEndPointFromService(Service service, int restPort) {
	if (service.getStatus() == null) {
		return Optional.empty();
	}

	LoadBalancerStatus loadBalancer = service.getStatus().getLoadBalancer();
	boolean hasExternalIP = service.getSpec() != null &&
		service.getSpec().getExternalIPs() != null && !service.getSpec().getExternalIPs().isEmpty();

	if (loadBalancer != null) {
		return getLoadBalancerRestEndpoint(loadBalancer, restPort);
	} else if (hasExternalIP) {
		final String address = service.getSpec().getExternalIPs().get(0);
		if (address != null && !address.isEmpty()) {
			return Optional.of(new Endpoint(address, restPort));
		}
	}
	return Optional.empty();
}
 
源代码4 项目: flink   文件: Fabric8FlinkKubeClient.java
private Optional<Endpoint> getLoadBalancerRestEndpoint(LoadBalancerStatus loadBalancer, int restPort) {
	boolean hasIngress = loadBalancer.getIngress() != null && !loadBalancer.getIngress().isEmpty();
	String address;
	if (hasIngress) {
		address = loadBalancer.getIngress().get(0).getIp();
		// Use hostname when the ip address is null
		if (address == null || address.isEmpty()) {
			address = loadBalancer.getIngress().get(0).getHostname();
		}
	} else {
		// Use node port
		address = this.internalClient.getMasterUrl().getHost();
	}
	boolean noAddress = address == null || address.isEmpty();
	return noAddress ? Optional.empty() : Optional.of(new Endpoint(address, restPort));
}
 
源代码5 项目: flink   文件: KubernetesClientTestBase.java
protected Service buildExternalServiceWithNodePort() {
	final ServicePort servicePort = new ServicePortBuilder()
		.withName(Constants.REST_PORT_NAME)
		.withPort(REST_PORT)
		.withNodePort(NODE_PORT)
		.withNewTargetPort(REST_PORT)
		.build();

	final ServiceStatus serviceStatus = new ServiceStatusBuilder()
		.withLoadBalancer(new LoadBalancerStatus(Collections.emptyList()))
		.build();

	return buildExternalService(
		KubernetesConfigOptions.ServiceExposedType.NodePort,
		servicePort,
		serviceStatus);
}
 
源代码6 项目: flink   文件: KubernetesClientTestBase.java
protected Service buildExternalServiceWithLoadBalancer(@Nullable String hostname, @Nullable String ip) {
	final ServicePort servicePort = new ServicePortBuilder()
		.withName(Constants.REST_PORT_NAME)
		.withPort(REST_PORT)
		.withNewTargetPort(REST_PORT)
		.build();
	final ServiceStatus serviceStatus = new ServiceStatusBuilder()
		.withLoadBalancer(new LoadBalancerStatus(Collections.singletonList(new LoadBalancerIngress(hostname, ip))))
		.build();

	return buildExternalService(
		KubernetesConfigOptions.ServiceExposedType.LoadBalancer,
		servicePort,
		serviceStatus);
}