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() ); } }
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; }