/src/main/java/org/csanchez/jenkins/plugins/kubernetes/PodTemplate.java
https://gitlab.com/vectorci/kubernetes-plugin · Java · 247 lines · 182 code · 62 blank · 3 comment · 6 complexity · cabc3e31b64002e64d6fd9fdd633895b MD5 · raw file
- package org.csanchez.jenkins.plugins.kubernetes;
- import hudson.Extension;
- import hudson.Util;
- import hudson.model.AbstractDescribableImpl;
- import hudson.model.Descriptor;
- import hudson.model.Label;
- import hudson.model.labels.LabelAtom;
- import org.apache.commons.lang.StringUtils;
- import org.kohsuke.stapler.DataBoundConstructor;
- import org.kohsuke.stapler.DataBoundSetter;
- import com.google.common.base.Preconditions;
- import org.csanchez.jenkins.plugins.kubernetes.PodVolumes.PodVolume;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Set;
- /**
- * @author <a href="mailto:nicolas.deloof@gmail.com">Nicolas De Loof</a>
- */
- public class PodTemplate extends AbstractDescribableImpl<PodTemplate> {
- private String name;
- private final String image;
- private boolean privileged;
- private boolean alwaysPullImage;
- private String command;
- private String args;
- private String remoteFs;
- private int instanceCap;
- private String label;
- private String serviceAccount;
- private String nodeSelector;
- private String resourceRequestCpu;
- private String resourceRequestMemory;
- private String resourceLimitCpu;
- private String resourceLimitMemory;
- private final List<PodVolume> volumes;
- private final List<PodEnvVar> envVars = new ArrayList<PodEnvVar>();
- @DataBoundConstructor
- public PodTemplate(String image, List<? extends PodVolume> volumes) {
- this(null, image, volumes);
- }
- PodTemplate(String name, String image, List<? extends PodVolume> volumes) {
- Preconditions.checkArgument(!StringUtils.isBlank(image));
- this.name = name;
- this.image = image;
- this.volumes = (volumes == null) ? new ArrayList<PodVolume>() : new ArrayList<PodVolume>(volumes);
- }
- @DataBoundSetter
- public void setName(String name) {
- this.name = name;
- }
- public String getName() {
- return name;
- }
- public String getImage() {
- return image;
- }
- @DataBoundSetter
- public void setCommand(String command) {
- this.command = command;
- }
- public String getCommand() {
- return command;
- }
- @DataBoundSetter
- public void setArgs(String args) {
- this.args = args;
- }
- public String getArgs() {
- return args;
- }
- public String getDisplayName() {
- return "Kubernetes Pod Template";
- }
- @DataBoundSetter
- public void setRemoteFs(String remoteFs) {
- this.remoteFs = StringUtils.isBlank(remoteFs) ? "/home/jenkins" : remoteFs;
- }
- public String getRemoteFs() {
- return remoteFs;
- }
- public void setInstanceCap(int instanceCap) {
- this.instanceCap = instanceCap;
- }
- public int getInstanceCap() {
- return instanceCap;
- }
- @DataBoundSetter
- public void setInstanceCapStr(String instanceCapStr) {
- if ("".equals(instanceCapStr)) {
- setInstanceCap(Integer.MAX_VALUE);
- } else {
- setInstanceCap(Integer.parseInt(instanceCapStr));
- }
- }
- public String getInstanceCapStr() {
- if (getInstanceCap() == Integer.MAX_VALUE) {
- return "";
- } else {
- return String.valueOf(instanceCap);
- }
- }
- public Set<LabelAtom> getLabelSet() {
- return Label.parse(label);
- }
- @DataBoundSetter
- public void setLabel(String label) {
- this.label = label;
- }
- public String getLabel() {
- return label;
- }
- @DataBoundSetter
- public void setNodeSelector(String nodeSelector) {
- this.nodeSelector = nodeSelector;
- }
- public String getNodeSelector() {
- return nodeSelector;
- }
- @DataBoundSetter
- public void setPrivileged(boolean privileged) {
- this.privileged = privileged;
- }
- public boolean isPrivileged() {
- return privileged;
- }
- public String getServiceAccount() {
- return serviceAccount;
- }
- @DataBoundSetter
- public void setServiceAccount(String serviceAccount) {
- this.serviceAccount = Util.fixEmpty(serviceAccount);
- }
- @DataBoundSetter
- public void setAlwaysPullImage(boolean alwaysPullImage) {
- this.alwaysPullImage = alwaysPullImage;
- }
- public boolean isAlwaysPullImage() {
- return alwaysPullImage;
- }
- public List<PodEnvVar> getEnvVars() {
- return envVars;
- }
- @DataBoundSetter
- public void setEnvVars(List<PodEnvVar> envVars) {
- this.envVars.addAll(envVars);
- }
- public String getResourceRequestMemory() {
- return resourceRequestMemory;
- }
- @DataBoundSetter
- public void setResourceRequestMemory(String resourceRequestMemory) {
- this.resourceRequestMemory = resourceRequestMemory;
- }
- public String getResourceLimitCpu() {
- return resourceLimitCpu;
- }
- @DataBoundSetter
- public void setResourceLimitCpu(String resourceLimitCpu) {
- this.resourceLimitCpu = resourceLimitCpu;
- }
- public String getResourceLimitMemory() {
- return resourceLimitMemory;
- }
- @DataBoundSetter
- public void setResourceLimitMemory(String resourceLimitMemory) {
- this.resourceLimitMemory = resourceLimitMemory;
- }
- public String getResourceRequestCpu() {
- return resourceRequestCpu;
- }
- @DataBoundSetter
- public void setResourceRequestCpu(String resourceRequestCpu) {
- this.resourceRequestCpu = resourceRequestCpu;
- }
- @Extension
- public static class DescriptorImpl extends Descriptor<PodTemplate> {
- @Override
- public String getDisplayName() {
- return "Kubernetes Pod Template";
- }
- }
- public List<PodVolume> getVolumes() {
- return volumes;
- }
- }