diff --git a/core/src/main/java/io/dekorate/utils/Ports.java b/core/src/main/java/io/dekorate/utils/Ports.java index e595e9072..fd40e032a 100644 --- a/core/src/main/java/io/dekorate/utils/Ports.java +++ b/core/src/main/java/io/dekorate/utils/Ports.java @@ -20,7 +20,7 @@ import java.security.MessageDigest; import java.util.Arrays; import java.util.Collections; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Optional; @@ -37,7 +37,7 @@ public class Ports { - private static final Map HTTP_PORT_NAMES = Collections.unmodifiableMap(new HashMap() { + private static final Map HTTP_PORT_NAMES = Collections.unmodifiableMap(new LinkedHashMap() { { put("http", 80); put("https", 443); @@ -46,14 +46,15 @@ public class Ports { } }); - private static final Map HTTP_PORT_NUMBERS = Collections.unmodifiableMap(new HashMap() { - { - put(80, 80); - put(8080, 80); - put(443, 443); - put(8443, 443); - } - }); + private static final Map HTTP_PORT_NUMBERS = Collections + .unmodifiableMap(new LinkedHashMap() { + { + put(80, 80); + put(8080, 80); + put(443, 443); + put(8443, 443); + } + }); public static final String DEFAULT_HTTP_PORT_PATH = "/"; public static final int MIN_PORT_NUMBER = 1; @@ -62,7 +63,6 @@ public class Ports { public static final int MAX_NODE_PORT_VALUE = 31999; public static final Predicate PORT_PREDICATE = p -> HTTP_PORT_NAMES.containsKey(p.getName()) - || HTTP_PORT_NAMES.containsKey(p.getName()) || HTTP_PORT_NUMBERS.containsKey(p.getContainerPort()); public static final Map webPortNameMappings() { @@ -134,17 +134,22 @@ public static Optional getHttpPort(ContainerFluent container) return Optional.of(container.getPorts().get(0)); } - //Check the service name - Optional port = container.getPorts().stream().filter(p -> HTTP_PORT_NAMES.containsKey(p.getName())) - .findFirst(); - if (port.isPresent()) { - return port; + for (String portName : HTTP_PORT_NAMES.keySet()) { + Optional port = container.getPorts().stream().filter(p -> portName.equals(p.getName())) + .findFirst(); + if (port.isPresent()) { + return port; + } } - port = container.getPorts().stream().filter(p -> HTTP_PORT_NUMBERS.containsKey(p.getHostPort())).findFirst(); - if (port.isPresent()) { - return port; + for (Integer portNumber : HTTP_PORT_NUMBERS.keySet()) { + Optional port = container.getPorts().stream().filter(p -> portNumber.equals(p.getHostPort())) + .findFirst(); + if (port.isPresent()) { + return port; + } } + return Optional.empty(); } @@ -205,8 +210,6 @@ public static Integer calculateNodePort(String name, Port port) { // If not hostPort exists, then we will return the containerPort to follow // the same convention as kubernetes suggests return getStablePortNumberInRange(name, MIN_NODE_PORT_VALUE, MAX_NODE_PORT_VALUE); - // return new PortBuilder(port).withHostPort(calculateHostPort(port)) - // .withNodePort(stablePortNumberInRange).build(); } /**