/** * Find a free (on localhost) random port in the range [49152, 65535] after 100 attempts. * * @return a random port where a server socket can be bound to */ public static int getFreeRandomPort() { // 100 attempts should be enough return getFreeRandomPort(49152, 65535, 100); }
private String getPortForwardUrl(final Set<HasMetadata> resources) throws Exception { LabelSelector selector = KubernetesResourceUtil.getPodLabelSelector(resources); if (selector == null) { log.warn("Unable to determine a selector for application pods"); return null; } Properties properties = SpringBootUtil.getSpringBootApplicationProperties(MavenUtil.getCompileClassLoader(getContext().getProject())); SpringBootConfigurationHelper propertyHelper = new SpringBootConfigurationHelper(SpringBootUtil.getSpringBootVersion(getContext().getProject())); int port = IoUtil.getFreeRandomPort(); int containerPort = propertyHelper.getServerPort(properties); portForwardService.forwardPortAsync(getContext().getLogger(), selector, containerPort, port); return createForwardUrl(propertyHelper, properties, port); }