Skip to content

Commit c046499

Browse files
authored
More simplifications in fabric8 discovery implementation (#1403)
1 parent 44a0064 commit c046499

File tree

5 files changed

+133
-110
lines changed

5 files changed

+133
-110
lines changed

spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/discovery/DiscoveryClientUtils.java

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -59,41 +59,41 @@ private DiscoveryClientUtils() {
5959
* - service type
6060
* </pre>
6161
*/
62-
public static Map<String, String> serviceMetadata(String serviceId, Map<String, String> serviceLabels,
63-
Map<String, String> serviceAnnotations, Map<String, String> portsData,
64-
KubernetesDiscoveryProperties properties, String namespace, String serviceType) {
65-
Map<String, String> serviceMetadata = new HashMap<>();
62+
public static Map<String, String> serviceInstanceMetadata(Map<String, String> portsData,
63+
ServiceMetadata serviceMetadata, KubernetesDiscoveryProperties properties) {
64+
Map<String, String> result = new HashMap<>();
6665
KubernetesDiscoveryProperties.Metadata metadataProps = properties.metadata();
6766
if (metadataProps.addLabels()) {
68-
Map<String, String> labelMetadata = keysWithPrefix(serviceLabels, metadataProps.labelsPrefix());
69-
LOG.debug(() -> "Adding labels metadata: " + labelMetadata + " for serviceId: " + serviceId);
70-
serviceMetadata.putAll(labelMetadata);
67+
Map<String, String> labelMetadata = keysWithPrefix(serviceMetadata.labels(), metadataProps.labelsPrefix());
68+
LOG.debug(() -> "Adding labels metadata: " + labelMetadata + " for serviceId: " + serviceMetadata.name());
69+
result.putAll(labelMetadata);
7170
}
7271
if (metadataProps.addAnnotations()) {
73-
Map<String, String> annotationMetadata = keysWithPrefix(serviceAnnotations,
72+
Map<String, String> annotationMetadata = keysWithPrefix(serviceMetadata.annotations(),
7473
metadataProps.annotationsPrefix());
75-
LOG.debug(() -> "Adding annotations metadata: " + annotationMetadata + " for serviceId: " + serviceId);
76-
serviceMetadata.putAll(annotationMetadata);
74+
LOG.debug(() -> "Adding annotations metadata: " + annotationMetadata + " for serviceId: "
75+
+ serviceMetadata.name());
76+
result.putAll(annotationMetadata);
7777
}
7878

7979
if (metadataProps.addPorts()) {
8080
Map<String, String> portMetadata = keysWithPrefix(portsData, properties.metadata().portsPrefix());
8181
if (!portMetadata.isEmpty()) {
82-
LOG.debug(() -> "Adding port metadata: " + portMetadata + " for serviceId : " + serviceId);
82+
LOG.debug(() -> "Adding port metadata: " + portMetadata + " for serviceId : " + serviceMetadata.name());
8383
}
84-
serviceMetadata.putAll(portMetadata);
84+
result.putAll(portMetadata);
8585
}
8686

87-
serviceMetadata.put(NAMESPACE_METADATA_KEY, namespace);
88-
serviceMetadata.put(SERVICE_TYPE, serviceType);
89-
return serviceMetadata;
87+
result.put(NAMESPACE_METADATA_KEY, serviceMetadata.namespace());
88+
result.put(SERVICE_TYPE, serviceMetadata.type());
89+
return result;
9090
}
9191

9292
public static ServicePortNameAndNumber endpointsPort(LinkedHashMap<String, Integer> endpointsPorts,
93-
String serviceId, KubernetesDiscoveryProperties properties, Map<String, String> serviceLabels) {
93+
ServiceMetadata serviceMetadata, KubernetesDiscoveryProperties properties) {
9494

9595
if (endpointsPorts.size() == 0) {
96-
LOG.debug(() -> "no ports found for service : " + serviceId + ", will return zero");
96+
LOG.debug(() -> "no ports found for service : " + serviceMetadata.name() + ", will return zero");
9797
return new ServicePortNameAndNumber(0, "http");
9898
}
9999

@@ -106,7 +106,7 @@ public static ServicePortNameAndNumber endpointsPort(LinkedHashMap<String, Integ
106106
else {
107107

108108
Optional<ServicePortNameAndNumber> portData;
109-
String primaryPortName = primaryPortName(properties, serviceLabels, serviceId);
109+
String primaryPortName = primaryPortName(properties, serviceMetadata.labels(), serviceMetadata.name());
110110

111111
Map<String, Integer> existingPorts = endpointsPorts.entrySet().stream()
112112
.filter(entry -> StringUtils.hasText(entry.getKey()))
@@ -136,11 +136,9 @@ public static ServicePortNameAndNumber endpointsPort(LinkedHashMap<String, Integ
136136
}
137137

138138
public static ServiceInstance serviceInstance(@Nullable ServicePortSecureResolver servicePortSecureResolver,
139-
ServiceMetadataForServiceInstance serviceMetadataForServiceInstance,
140-
Supplier<InstanceIdHostPodName> instanceIdAndHost,
139+
ServiceMetadata serviceMetadata, Supplier<InstanceIdHostPodName> instanceIdAndHost,
141140
Function<String, PodLabelsAndAnnotations> podLabelsAndMetadata, ServicePortNameAndNumber portData,
142-
String serviceId, Map<String, String> serviceMetadata, String namespace,
143-
KubernetesDiscoveryProperties properties) {
141+
Map<String, String> serviceInstanceMetadata, KubernetesDiscoveryProperties properties) {
144142

145143
InstanceIdHostPodName data = instanceIdAndHost.get();
146144

@@ -150,15 +148,15 @@ public static ServiceInstance serviceInstance(@Nullable ServicePortSecureResolve
150148
}
151149
else {
152150
secured = servicePortSecureResolver.resolve(new ServicePortSecureResolver.Input(portData,
153-
serviceMetadataForServiceInstance.name(), serviceMetadataForServiceInstance.labels(),
154-
serviceMetadataForServiceInstance.annotations()));
151+
serviceMetadata.name(), serviceMetadata.labels(), serviceMetadata.annotations()));
155152
}
156153

157-
Map<String, Map<String, String>> podMetadata = podMetadata(data.podName(), serviceMetadata, properties,
158-
podLabelsAndMetadata);
154+
Map<String, Map<String, String>> podMetadata = podMetadata(data.podName(), serviceInstanceMetadata,
155+
properties, podLabelsAndMetadata);
159156

160-
return new DefaultKubernetesServiceInstance(data.instanceId(), serviceId, data.host(), portData.portNumber(),
161-
serviceMetadata, secured, namespace, null, podMetadata);
157+
return new DefaultKubernetesServiceInstance(data.instanceId(), serviceMetadata.name(),
158+
data.host(), portData.portNumber(), serviceInstanceMetadata, secured,
159+
serviceMetadata.namespace(), null, podMetadata);
162160
}
163161

164162
/**
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@
1919
import java.util.Map;
2020

2121
/**
22-
* Holds service name, labels and annotations.
22+
* Holds service name, namespace, spec.type, labels and annotations.
2323
*
2424
* @author wind57
2525
*
2626
*/
27-
public record ServiceMetadataForServiceInstance(String name, Map<String, String> labels,
27+
public record ServiceMetadata(String name, String namespace, String type, Map<String, String> labels,
2828
Map<String, String> annotations) {
2929
}

0 commit comments

Comments
 (0)