Skip to content

Commit

Permalink
fix(provider/kubernetes): v2 statefulset services don't need to be un…
Browse files Browse the repository at this point in the history
…ique (#2406)
  • Loading branch information
lwander committed Mar 2, 2018
1 parent 0a288b7 commit c2800df
Showing 1 changed file with 12 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.function.BiFunction;
import java.util.stream.Collectors;

import static com.netflix.spinnaker.cats.agent.AgentDataType.Authority.AUTHORITATIVE;
Expand Down Expand Up @@ -69,20 +70,28 @@ protected KubernetesKind primaryKind() {

@Override
protected Map<KubernetesManifest, List<KubernetesManifest>> loadSecondaryResourceRelationships(List<KubernetesManifest> primaryResourceList) {
BiFunction<String, String, String> manifestName = (namespace, name) -> namespace + ":" + name;

Map<String, KubernetesManifest> services = namespaces.stream()
.map(n -> credentials.list(KubernetesKind.SERVICE, n))
.flatMap(Collection::stream)
.collect(Collectors.toMap(KubernetesManifest::getName, (m) -> m));
.collect(Collectors.toMap((m) -> manifestName.apply(m.getNamespace(), m.getName()), (m) -> m));

Map<KubernetesManifest, List<KubernetesManifest>> result = new HashMap<>();

for (KubernetesManifest manifest : primaryResourceList) {
String serviceName = KubernetesStatefulSetHandler.serviceName(manifest);
if (StringUtils.isEmpty(serviceName) || !services.containsKey(serviceName)) {
if (StringUtils.isEmpty(serviceName)) {
continue;
}

String key = manifestName.apply(manifest.getNamespace(), serviceName);

if (!services.containsKey(key)) {
continue;
}

KubernetesManifest service = services.get(serviceName);
KubernetesManifest service = services.get(key);
result.put(manifest, Collections.singletonList(service));
}

Expand Down

0 comments on commit c2800df

Please sign in to comment.