diff --git a/service-discovery/kubernetes/src/main/java/io/smallrye/stork/servicediscovery/kubernetes/KubernetesMetadataKey.java b/service-discovery/kubernetes/src/main/java/io/smallrye/stork/servicediscovery/kubernetes/KubernetesMetadataKey.java index 9ac50dd2..4ff0ed70 100644 --- a/service-discovery/kubernetes/src/main/java/io/smallrye/stork/servicediscovery/kubernetes/KubernetesMetadataKey.java +++ b/service-discovery/kubernetes/src/main/java/io/smallrye/stork/servicediscovery/kubernetes/KubernetesMetadataKey.java @@ -14,7 +14,12 @@ public enum KubernetesMetadataKey implements MetadataKey { /** * The key to access the kubernates namespace */ - META_K8S_NAMESPACE("k8s-namespace"); + META_K8S_NAMESPACE("k8s-namespace"), + + /** + * The key to access the port protocol + */ + META_K8S_PORT_PROTOCOL("k8s-port-protocol"); private final String name; diff --git a/service-discovery/kubernetes/src/main/java/io/smallrye/stork/servicediscovery/kubernetes/KubernetesServiceDiscovery.java b/service-discovery/kubernetes/src/main/java/io/smallrye/stork/servicediscovery/kubernetes/KubernetesServiceDiscovery.java index b2bb875b..d53309dc 100644 --- a/service-discovery/kubernetes/src/main/java/io/smallrye/stork/servicediscovery/kubernetes/KubernetesServiceDiscovery.java +++ b/service-discovery/kubernetes/src/main/java/io/smallrye/stork/servicediscovery/kubernetes/KubernetesServiceDiscovery.java @@ -1,6 +1,7 @@ package io.smallrye.stork.servicediscovery.kubernetes; import static io.smallrye.stork.servicediscovery.kubernetes.KubernetesMetadataKey.META_K8S_NAMESPACE; +import static io.smallrye.stork.servicediscovery.kubernetes.KubernetesMetadataKey.META_K8S_PORT_PROTOCOL; import static io.smallrye.stork.servicediscovery.kubernetes.KubernetesMetadataKey.META_K8S_SERVICE_ID; import java.util.ArrayList; @@ -182,8 +183,10 @@ private List toStorkServiceInstances(Map> } List endpointPorts = subset.getPorts(); Integer port = 0; + String protocol = ""; if (endpointPorts.size() == 1) { port = endpointPorts.get(0).getPort(); + protocol = endpointPorts.get(0).getProtocol(); } ServiceInstance matching = ServiceInstanceUtils.findMatching(previousInstances, hostname, port); @@ -208,7 +211,8 @@ private List toStorkServiceInstances(Map> Metadata k8sMetadata = Metadata.of(KubernetesMetadataKey.class); serviceInstances.add(new DefaultServiceInstance(ServiceInstanceIds.next(), hostname, port, secure, labels, - k8sMetadata.with(META_K8S_SERVICE_ID, hostname).with(META_K8S_NAMESPACE, podNamespace))); + k8sMetadata.with(META_K8S_SERVICE_ID, hostname).with(META_K8S_NAMESPACE, podNamespace) + .with(META_K8S_PORT_PROTOCOL, protocol))); } } } diff --git a/service-discovery/kubernetes/src/test/java/io/smallrye/stork/servicediscovery/kubernetes/KubernetesServiceDiscoveryTest.java b/service-discovery/kubernetes/src/test/java/io/smallrye/stork/servicediscovery/kubernetes/KubernetesServiceDiscoveryTest.java index a2d339a2..81e5704f 100644 --- a/service-discovery/kubernetes/src/test/java/io/smallrye/stork/servicediscovery/kubernetes/KubernetesServiceDiscoveryTest.java +++ b/service-discovery/kubernetes/src/test/java/io/smallrye/stork/servicediscovery/kubernetes/KubernetesServiceDiscoveryTest.java @@ -537,7 +537,7 @@ private Endpoints buildAndRegisterKubernetesService(String serviceName, String n Endpoints endpoint = new EndpointsBuilder() .withNewMetadata().withName(serviceName).withLabels(serviceLabels).endMetadata() .addToSubsets(new EndpointSubsetBuilder().withAddresses(endpointAddresses) - .addToPorts(new EndpointPortBuilder().withPort(8080).build()) + .addToPorts(new EndpointPortBuilder().withPort(8080).withProtocol("TCP").build()) .build()) .build();