private static Map<String, Map<String, Integer>> getPortMap(List<Container> containers) { Map<String, Map<String, Integer>> portMap = new LinkedHashMap<>(); for (Container container : containers) { Map<String, Integer> ports = new LinkedHashMap<>(); for (ContainerPort port : container.getPorts()) { ports.put(port.getName(), port.getContainerPort()); } portMap.put(container.getName(), ports); } return portMap; }
private static void ensureHasPort(Container container, ContainerPort port) { List<ContainerPort> ports = container.getPorts(); if (ports == null) { ports = new ArrayList<>(); container.setPorts(ports); } for (ContainerPort cp : ports) { String n1 = cp.getName(); String n2 = port.getName(); if (n1 != null && n2 != null && n1.equals(n2)) { return; } Integer p1 = cp.getContainerPort(); Integer p2 = port.getContainerPort(); if (p1 != null && p2 != null && p1.intValue() == p2.intValue()) { return; } } ports.add(port); }
public static int findHostPortForService(Pod pod, int serviceContainerPort) { List<Container> containers = KubernetesHelper.getContainers(pod); for (Container container : containers) { List<ContainerPort> ports = container.getPorts(); if (ports != null) { for (ContainerPort port : ports) { Integer containerPort = port.getContainerPort(); Integer hostPort = port.getHostPort(); if (containerPort != null && containerPort == serviceContainerPort) { if (hostPort != null) { return hostPort; } } } } } LOG.warn("Could not find host port for service port: {} pod: {}", serviceContainerPort, pod); return serviceContainerPort; }
protected static List<ContainerPort> createInstallationPorts(Map<String, String> environment, Installation installation, Container container) { try { List<ContainerPort> answer = container.getPorts(); if (answer == null) { answer = new ArrayList<>();
@Override public List<InetSocketAddress> findSeedNodes(String cluster) throws HekateException { if (log.isDebugEnabled()) { log.debug("Searching for seed node addresses [namespace={}, container-port-name={}]", config.getNamespace(), containerPortName); } try (KubernetesClient client = new DefaultKubernetesClient(config)) { List<InetSocketAddress> seedNodes = new ArrayList<>(); PodList pods = client.pods().list(); // Search through Pods -> Containers -> Ports. nullSafe(pods.getItems()) .filter(pod -> pod.getSpec() != null && pod.getStatus() != null && pod.getStatus().getPodIP() != null) .filter(pod -> ACTIVE_POD_PHASES.contains(pod.getStatus().getPhase())) .forEach(pod -> { String ip = pod.getStatus().getPodIP(); nullSafe(pod.getSpec().getContainers()) .flatMap(container -> nullSafe(container.getPorts())) .filter(port -> containerPortName.equals(port.getName()) && port.getContainerPort() != null) .map(ContainerPort::getContainerPort) .forEach(port -> seedNodes.add(new InetSocketAddress(ip, port)) ); }); return seedNodes; } catch (KubernetesClientException e) { throw new HekateException("Kubernetes seed node discovery failure [" + "namespace=" + config.getNamespace() + ", " + "container-port-name=" + containerPortName + "]", e); } }
public List<PhysicalAddress> findKubernetesHosts() { List<PhysicalAddress> addresses = new ArrayList<>(); Map<String, String> labels = Collections.singletonMap(Constants.JGROUPS_CLUSTER_NAME, cluster_name); for (Pod pod : client.pods().withLabels(labels).list().getItems()) { List<Container> containers = KubernetesHelper.getContainers(pod); for (Container container : containers) { for (ContainerPort port : container.getPorts()) { if (Constants.JGROUPS_TCP_PORT.equals(port.getName())) { try { String ip = pod.getStatus().getPodIP(); if (ip != null) { addresses.add(new IpAddress(ip, port.getContainerPort())); } } catch (Exception ex) { LOGGER.warn("Failed to create Address {}.", pod.getStatus().getPodIP()); } } } } } return addresses; }
enabled = true; List<ContainerPort> ports = container.getPorts(); if (ports == null) { ports = new ArrayList<>();
enabled = true; List<ContainerPort> ports = container.getPorts(); if (ports == null) { ports = new ArrayList<>();
enabled = true; List<ContainerPort> ports = container.getPorts(); if (ports == null) { ports = new ArrayList<>();
for (Container container : router.getSpec().getContainers()) { if (container.getName().equals("router")) { for (ContainerPort containerPort : container.getPorts()) { if (containerPort.getName().equals("amqps-normal")) { port = containerPort.getContainerPort();
public static Container addOrUpdateDesiredContainer(Pod pod, String containerName, Container container) { List<Container> containers = getOrCreatePodDesiredContainers(pod); Container oldContainer = findContainer(containers, containerName); if (oldContainer != null) { // lets update it just in case something changed... containers.remove(oldContainer); } Container newContainer = new Container(); // TODO we should use bean utils or something to copy properties in case we miss one! newContainer.setCommand(container.getCommand()); newContainer.setEnv(container.getEnv()); newContainer.setImage(container.getImage()); newContainer.setPorts(container.getPorts()); newContainer.setVolumeMounts(container.getVolumeMounts()); newContainer.setWorkingDir(container.getWorkingDir()); newContainer.getAdditionalProperties().putAll(container.getAdditionalProperties()); newContainer.setName(containerName); LOG.info("Added new container: {}", containerName); containers.add(newContainer); return newContainer; }
List<ContainerPort> ports = container.getPorts(); for (ContainerPort port : ports) { Integer containerPort = port.getContainerPort();
if (containers != null) { for (Container container : containers) { List<ContainerPort> ports = container.getPorts(); if (ports != null) { for (ContainerPort port : ports) {
public ContainerBuilder( ContainerFluent<?> fluent , Container instance ){ this.fluent = fluent; fluent.withArgs(instance.getArgs()); fluent.withCommand(instance.getCommand()); fluent.withEnv(instance.getEnv()); fluent.withImage(instance.getImage()); fluent.withImagePullPolicy(instance.getImagePullPolicy()); fluent.withLifecycle(instance.getLifecycle()); fluent.withLivenessProbe(instance.getLivenessProbe()); fluent.withName(instance.getName()); fluent.withPorts(instance.getPorts()); fluent.withReadinessProbe(instance.getReadinessProbe()); fluent.withResources(instance.getResources()); fluent.withSecurityContext(instance.getSecurityContext()); fluent.withTerminationMessagePath(instance.getTerminationMessagePath()); fluent.withVolumeMounts(instance.getVolumeMounts()); fluent.withWorkingDir(instance.getWorkingDir()); } public ContainerBuilder( Container instance ){
public ContainerBuilder( Container instance ){ this.fluent = this; this.withArgs(instance.getArgs()); this.withCommand(instance.getCommand()); this.withEnv(instance.getEnv()); this.withImage(instance.getImage()); this.withImagePullPolicy(instance.getImagePullPolicy()); this.withLifecycle(instance.getLifecycle()); this.withLivenessProbe(instance.getLivenessProbe()); this.withName(instance.getName()); this.withPorts(instance.getPorts()); this.withReadinessProbe(instance.getReadinessProbe()); this.withResources(instance.getResources()); this.withSecurityContext(instance.getSecurityContext()); this.withTerminationMessagePath(instance.getTerminationMessagePath()); this.withVolumeMounts(instance.getVolumeMounts()); this.withWorkingDir(instance.getWorkingDir()); }
public ContainerBuilder( ContainerFluent<?> fluent , Container instance ){ this.fluent = fluent; fluent.withArgs(instance.getArgs()); fluent.withCapabilities(instance.getCapabilities()); fluent.withCommand(instance.getCommand()); fluent.withEnv(instance.getEnv()); fluent.withImage(instance.getImage()); fluent.withImagePullPolicy(instance.getImagePullPolicy()); fluent.withLifecycle(instance.getLifecycle()); fluent.withLivenessProbe(instance.getLivenessProbe()); fluent.withName(instance.getName()); fluent.withPorts(instance.getPorts()); fluent.withPrivileged(instance.getPrivileged()); fluent.withReadinessProbe(instance.getReadinessProbe()); fluent.withResources(instance.getResources()); fluent.withSecurityContext(instance.getSecurityContext()); fluent.withTerminationMessagePath(instance.getTerminationMessagePath()); fluent.withVolumeMounts(instance.getVolumeMounts()); fluent.withWorkingDir(instance.getWorkingDir()); } public ContainerBuilder( Container instance ){
public ContainerBuilder( Container instance ){ this.fluent = this; this.withArgs(instance.getArgs()); this.withCapabilities(instance.getCapabilities()); this.withCommand(instance.getCommand()); this.withEnv(instance.getEnv()); this.withImage(instance.getImage()); this.withImagePullPolicy(instance.getImagePullPolicy()); this.withLifecycle(instance.getLifecycle()); this.withLivenessProbe(instance.getLivenessProbe()); this.withName(instance.getName()); this.withPorts(instance.getPorts()); this.withPrivileged(instance.getPrivileged()); this.withReadinessProbe(instance.getReadinessProbe()); this.withResources(instance.getResources()); this.withSecurityContext(instance.getSecurityContext()); this.withTerminationMessagePath(instance.getTerminationMessagePath()); this.withVolumeMounts(instance.getVolumeMounts()); this.withWorkingDir(instance.getWorkingDir()); }
public ContainerFluentImpl(Container instance){ this.withArgs(instance.getArgs()); this.withCommand(instance.getCommand()); this.withEnv(instance.getEnv()); this.withImage(instance.getImage()); this.withImagePullPolicy(instance.getImagePullPolicy()); this.withLifecycle(instance.getLifecycle()); this.withLivenessProbe(instance.getLivenessProbe()); this.withName(instance.getName()); this.withPorts(instance.getPorts()); this.withReadinessProbe(instance.getReadinessProbe()); this.withResources(instance.getResources()); this.withSecurityContext(instance.getSecurityContext()); this.withStdin(instance.getStdin()); this.withStdinOnce(instance.getStdinOnce()); this.withTerminationMessagePath(instance.getTerminationMessagePath()); this.withTty(instance.getTty()); this.withVolumeMounts(instance.getVolumeMounts()); this.withWorkingDir(instance.getWorkingDir()); }
public ContainerBuilder(Container instance,Boolean validationEnabled){ this.fluent = this; this.withArgs(instance.getArgs()); this.withCommand(instance.getCommand()); this.withEnv(instance.getEnv()); this.withImage(instance.getImage()); this.withImagePullPolicy(instance.getImagePullPolicy()); this.withLifecycle(instance.getLifecycle()); this.withLivenessProbe(instance.getLivenessProbe()); this.withName(instance.getName()); this.withPorts(instance.getPorts()); this.withReadinessProbe(instance.getReadinessProbe()); this.withResources(instance.getResources()); this.withSecurityContext(instance.getSecurityContext()); this.withStdin(instance.getStdin()); this.withStdinOnce(instance.getStdinOnce()); this.withTerminationMessagePath(instance.getTerminationMessagePath()); this.withTty(instance.getTty()); this.withVolumeMounts(instance.getVolumeMounts()); this.withWorkingDir(instance.getWorkingDir()); this.validationEnabled = validationEnabled; }
public ContainerBuilder(ContainerFluent<?> fluent,Container instance,Boolean validationEnabled){ this.fluent = fluent; fluent.withArgs(instance.getArgs()); fluent.withCommand(instance.getCommand()); fluent.withEnv(instance.getEnv()); fluent.withImage(instance.getImage()); fluent.withImagePullPolicy(instance.getImagePullPolicy()); fluent.withLifecycle(instance.getLifecycle()); fluent.withLivenessProbe(instance.getLivenessProbe()); fluent.withName(instance.getName()); fluent.withPorts(instance.getPorts()); fluent.withReadinessProbe(instance.getReadinessProbe()); fluent.withResources(instance.getResources()); fluent.withSecurityContext(instance.getSecurityContext()); fluent.withStdin(instance.getStdin()); fluent.withStdinOnce(instance.getStdinOnce()); fluent.withTerminationMessagePath(instance.getTerminationMessagePath()); fluent.withTty(instance.getTty()); fluent.withVolumeMounts(instance.getVolumeMounts()); fluent.withWorkingDir(instance.getWorkingDir()); this.validationEnabled = validationEnabled; } public ContainerBuilder(Container instance){