Refine search
List<EnvVar> podEnvironmentVariables = currentPod.getSpec().getContainers().get(0).getEnv(); Optional<EnvVar> noVncPort = podEnvironmentVariables.stream().filter(env -> "NOVNC_PORT".equals(env.getName())).findFirst();
private void discoverFolderMounts() { List<VolumeMount> volumeMounts = zaleniumPod.getSpec().getContainers().get(0).getVolumeMounts(); List<VolumeMount> validMounts = new ArrayList<>(); volumeMounts.stream() .filter(volumeMount -> !Arrays.asList(PROTECTED_NODE_MOUNT_POINTS).contains(volumeMount.getMountPath())) .forEach(validMounts::add); // Look through the volume mounts to see if the shared folder is mounted if (!validMounts.isEmpty()) { List<Volume> volumes = zaleniumPod.getSpec().getVolumes(); for (VolumeMount validMount : validMounts) { volumes.stream() .filter(volume -> validMount.getName().equalsIgnoreCase(volume.getName())) .findFirst() .ifPresent(volume -> mountedSharedFoldersMap.put(validMount, volume)); } } }
public ContainerBuilder( ContainerFluent<?> fluent ){ this(fluent, new Container()); } public ContainerBuilder( ContainerFluent<?> fluent , Container instance ){
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 ){
ObjectNode cspec = mapper.createObjectNode(); ArrayNode args = mapper.createArrayNode(); it.getArgs().forEach(arg -> { args.add(arg); }); cspec.set("args", args); cspec.put("workingDir", it.getWorkingDir()); cspec.put("tty", it.getTty()); cspec.put("imagePullPolicy", it.getImagePullPolicy()); cspec.put("image", it.getImage()); cspec.put("terminationMessagePath", it.getTerminationMessagePath()); cspec.put("terminationMessagePolicy", it.getTerminationMessagePolicy()); cspec.put("stdin", it.getStdin()); cspec.put("stdinOnce", it.getStdinOnce()); it.getEnv().forEach(env -> { cspec.put("env_" + env.getName(), env.getValue()); }); + " on create set k+={props}, k.updateTs=timestamp(),k.createTs=timestamp() " + " on match set k+={props}, k.updateTs=timestamp()", "podUid", meta.getUid(), "name", it.getName(), "props", cspec); "uid", meta.getUid(), "name", it.getName());
if (StringUtils.isBlank(pod.getSpec().getRestartPolicy())) { pod.getSpec().setRestartPolicy("Never"); Optional<Container> jnlpOpt = pod.getSpec().getContainers().stream().filter(c -> JNLP_NAME.equals(c.getName())) .findFirst(); Container jnlp = jnlpOpt.orElse(new ContainerBuilder().withName(JNLP_NAME).build()); pod.getSpec().getContainers().add(jnlp); if (StringUtils.isBlank(jnlp.getImage())) { jnlp.setImage(DEFAULT_JNLP_IMAGE); jnlp.getWorkingDir() != null ? jnlp.getWorkingDir() : ContainerTemplate.DEFAULT_WORKING_DIR, template.getEnvVars()); envVars.putAll(jnlp.getEnv().stream().collect(Collectors.toMap(EnvVar::getName, Function.identity()))); jnlp.setEnv(new ArrayList<>(envVars.values())); pod.getSpec().getContainers().stream() .filter(c -> c.getVolumeMounts().stream() .noneMatch(vm -> vm.getMountPath().equals( c.getWorkingDir() != null ? c.getWorkingDir() : ContainerTemplate.DEFAULT_WORKING_DIR))) .forEach(c -> c.getVolumeMounts().add(getDefaultVolumeMount(c.getWorkingDir())));
PodSpec podSpec = template.getSpec(); if (podSpec != null) { List<Container> containers = podSpec.getContainers(); if (containers.size() > 0) { Container container = containers.get(0); List<EnvVar> env = container.getEnv(); if (env == null) { env = new ArrayList<>(); boolean enabled = false; if (KubernetesResourceUtil.setEnvVar(env, ENV_VAR_JAVA_DEBUG, "true")) { container.setEnv(env); enabled = true; List<ContainerPort> ports = container.getPorts(); if (ports == null) { ports = new ArrayList<>(); container.setPorts(ports); enabled = true;
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; }
deployment.getSpec().getTemplate().getSpec().getContainers().forEach(container -> { String containerImage = container.getImage(); container.getName(), apolloDeployment.getId(), containerImage); container.setImage(containerImage);
container = containers.get(idx); } else { container = new Container(); containers.add(container); List<EnvVar> defaultEnv = defaultContainer.getEnv(); if (defaultEnv != null) { for (EnvVar envVar : defaultEnv) { List<ContainerPort> defaultPorts = defaultContainer.getPorts(); if (defaultPorts != null) { for (ContainerPort port : defaultPorts) { if (container.getReadinessProbe() == null) { container.setReadinessProbe(defaultContainer.getReadinessProbe()); if (container.getLivenessProbe() == null) { container.setLivenessProbe(defaultContainer.getLivenessProbe()); if (container.getSecurityContext() == null) { container.setSecurityContext(defaultContainer.getSecurityContext()); if (StringUtils.isBlank(container.getName())) { container.setName(defaultName);
private void validateContainer(Container container) { if (container.getImage() == null) { throw new IllegalArgumentException("Container " + container.getName() + " has no Docker image configured. " + "Please check your Docker image configuration (including the generators which are supposed to run)"); } } }
private static boolean isLocalCustomisation(PodSpec podSpec) { List<Container> containers = podSpec.getContainers() != null ? podSpec.getContainers() : Collections.<Container>emptyList(); for (Container container : containers) { if (StringUtils.isNotBlank(container.getImage())) { return false; } } return true; } }
public static Collection<String> validateYamlContainerNames(String yaml) { if (StringUtils.isBlank(yaml)) { return Collections.emptyList(); } Collection<String> errors = new ArrayList<>(); Pod pod = parseFromYaml(yaml); List<Container> containers = pod.getSpec().getContainers(); if (containers != null) { for (Container container : containers) { if (!PodTemplateUtils.validateContainerName(container.getName())) { errors.add(container.getName()); } } } return errors; }
String name = template.getName(); String image = Strings.isNullOrEmpty(template.getImage()) ? parent.getImage() : template.getImage(); Boolean privileged = template.getSecurityContext() != null && template.getSecurityContext().getPrivileged() != null ? template.getSecurityContext().getPrivileged() : (parent.getSecurityContext() != null ? parent.getSecurityContext().getPrivileged() : Boolean.FALSE); String imagePullPolicy = Strings.isNullOrEmpty(template.getImagePullPolicy()) ? parent.getImagePullPolicy() : template.getImagePullPolicy(); String workingDir = Strings.isNullOrEmpty(template.getWorkingDir()) ? (Strings.isNullOrEmpty(parent.getWorkingDir()) ? DEFAULT_WORKING_DIR : parent.getWorkingDir()) : template.getWorkingDir(); List<String> command = template.getCommand() == null ? parent.getCommand() : template.getCommand(); List<String> args = template.getArgs() == null ? parent.getArgs() : template.getArgs(); Boolean tty = template.getTty() != null ? template.getTty() : parent.getTty(); Map<String, Quantity> requests = combineResources(parent, template, ResourceRequirements::getRequests); Map<String, Quantity> limits = combineResources(parent, template, ResourceRequirements::getLimits); Map<String, VolumeMount> volumeMounts = parent.getVolumeMounts().stream() .collect(Collectors.toMap(VolumeMount::getMountPath, Function.identity())); template.getVolumeMounts().stream().forEach(vm -> volumeMounts.put(vm.getMountPath(), vm));
PodSpec podSpec = template.getSpec(); if (podSpec != null) { List<Container> containers = podSpec.getContainers(); boolean enabled = false; for (int i = 0; i < containers.size(); i++) { Container container = containers.get(i); List<EnvVar> env = container.getEnv(); if (env == null) { env = new ArrayList<>(); container.setEnv(env); enabled = true; container.setEnv(env); enabled = true; List<ContainerPort> ports = container.getPorts(); if (ports == null) { ports = new ArrayList<>(); container.setPorts(ports); enabled = true; container.setEnv(env); if (container.getReadinessProbe() != null) { log.info("Readiness probe will be disabled on " + KubernetesHelper.getKind(entity) + " " + getName(entity) + " to allow attaching a remote debugger during suspension"); container.setReadinessProbe(null); container.setEnv(env);
@Override protected Future<ReconcileResult<DeploymentConfig>> internalPatch(String namespace, String name, DeploymentConfig current, DeploymentConfig desired) { desired.getSpec().getTemplate().getSpec().getContainers().get(0).setImage(current.getSpec().getTemplate().getSpec().getContainers().get(0).getImage()); return super.internalPatch(namespace, name, current, desired); } }
LOGGER.log(Level.FINE, "Combining pods, template: {0}", template); Map<String, String> nodeSelector = mergeMaps(parent.getSpec().getNodeSelector(), template.getSpec().getNodeSelector()); String serviceAccount = Strings.isNullOrEmpty(template.getSpec().getServiceAccount()) ? parent.getSpec().getServiceAccount() : template.getSpec().getServiceAccount(); Map<String, Container> parentContainers = parent.getSpec().getContainers().stream() .collect(toMap(c -> c.getName(), c -> c)); combinedContainers.putAll(parentContainers); combinedContainers.putAll(template.getSpec().getContainers().stream() .collect(toMap(c -> c.getName(), c -> combine(parentContainers.get(c.getName()), c))));
public void addEnvironmentVariables(Pod podToDeploy, PodDeploymentContext deploymentContext) { final KubernetesSlave kubernetesSlave = deploymentContext.getKubernetesSlave(); for (Container container: podToDeploy.getSpec().getContainers()) { List<EnvVar> currentEnv = container.getEnv(); boolean found = false; for (EnvVar var: currentEnv) { if (var.getName().equals(JENKINS_URL) ) { found = true; break; } } if ( !found) { String url = JenkinsLocationConfiguration.get().getUrl(); currentEnv.add(new EnvVar(JENKINS_URL, url, null)); } container.setWorkingDir(KubernetesSlave.DEFAULT_REMOTE_FS); container.getArgs().add(kubernetesSlave.getComputer().getJnlpMac()); container.getArgs().add(kubernetesSlave.getComputer().getName()); LOGGER.log(Level.INFO, "Added environment variables to container: " + container.getName() ); } }
final boolean tls, final boolean verifyTls) { final Container container = new Container(); container.setName(DEFAULT_NAME); container.setImage(normalizeImageName(imageName)); container.setImagePullPolicy(normalizeImagePullPolicy(imagePullPolicy)); containerPorts.add(containerPort); container.setPorts(containerPorts); container.setEnv(env); livenessProbe.setInitialDelaySeconds(ONE); livenessProbe.setTimeoutSeconds(ONE); container.setLivenessProbe(livenessProbe); readinessProbe.setInitialDelaySeconds(ONE); readinessProbe.setTimeoutSeconds(ONE); container.setReadinessProbe(readinessProbe); volumeMount.setReadOnly(true); volumeMount.setMountPath(TILLER_TLS_CERTS_PATH); container.setVolumeMounts(Arrays.asList(volumeMount));
Map<String, Container> containers = pod.getSpec().getContainers().stream() .collect(Collectors.toMap(Container::getName, Function.identity())); assertEquals(2, containers.size()); assertEquals("busybox", containers.get("busybox").getImage()); assertEquals("jenkins/jnlp-slave:alpine", containers.get("jnlp").getImage()); Map<String, Volume> volumes = pod.getSpec().getVolumes().stream() .collect(Collectors.toMap(Volume::getName, Function.identity())); assertEquals(3, volumes.size()); List<VolumeMount> mounts = containers.get("busybox").getVolumeMounts(); if (fromYaml) { assertEquals(2, mounts.size());