Skip to content

Commit

Permalink
Merge pull request #869 from KrapivinAndrey/feature/resource_ephemera…
Browse files Browse the repository at this point in the history
…l_storage
  • Loading branch information
Vlatombe committed Dec 3, 2020
2 parents d19ba98 + 848a997 commit a8eba67
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,13 @@ public class ContainerTemplate extends AbstractDescribableImpl<ContainerTemplate

private String resourceRequestMemory;

private String resourceRequestEphemeralStorage;

private String resourceLimitCpu;

private String resourceLimitMemory;

private String resourceLimitEphemeralStorage;
private String shell;

private final List<TemplateEnvVar> envVars = new ArrayList<>();
Expand Down Expand Up @@ -98,8 +102,10 @@ public ContainerTemplate(ContainerTemplate from) {
this.setTtyEnabled(from.isTtyEnabled());
this.setResourceRequestCpu(from.getResourceRequestCpu());
this.setResourceRequestMemory(from.getResourceRequestMemory());
this.setResourceRequestEphemeralStorage(from.getResourceRequestEphemeralStorage());
this.setResourceLimitCpu(from.getResourceLimitCpu());
this.setResourceLimitMemory(from.getResourceLimitMemory());
this.setResourceLimitEphemeralStorage(from.getResourceLimitEphemeralStorage());
this.setShell(from.getShell());
this.setEnvVars(from.getEnvVars());
this.setPorts(from.getPorts());
Expand Down Expand Up @@ -241,6 +247,24 @@ public void setResourceRequestMemory(String resourceRequestMemory) {
this.resourceRequestMemory = resourceRequestMemory;
}

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

public String getResourceLimitCpu() {
return resourceLimitCpu;
}
Expand All @@ -250,23 +274,24 @@ public void setResourceLimitCpu(String resourceLimitCpu) {
this.resourceLimitCpu = resourceLimitCpu;
}

public String getResourceLimitMemory() {
return resourceLimitMemory;
public String getResourceRequestEphemeralStorage() {
return resourceRequestEphemeralStorage;
}

@DataBoundSetter
public void setResourceLimitMemory(String resourceLimitMemory) {
this.resourceLimitMemory = resourceLimitMemory;
public void setResourceRequestEphemeralStorage(String resourceRequestEphemeralStorage) {
this.resourceRequestEphemeralStorage = resourceRequestEphemeralStorage;
}

public String getResourceRequestCpu() {
return resourceRequestCpu;
public String getResourceLimitEphemeralStorage() {
return resourceLimitEphemeralStorage;
}

@DataBoundSetter
public void setResourceRequestCpu(String resourceRequestCpu) {
this.resourceRequestCpu = resourceRequestCpu;
public void setResourceLimitEphemeralStorage(String resourceLimitEphemeralStorage) {
this.resourceLimitEphemeralStorage = resourceLimitEphemeralStorage;
}


public String getShell() {
return shell;
Expand Down Expand Up @@ -342,8 +367,10 @@ public String toString() {
(!ttyEnabled ? "" : ", ttyEnabled=" + ttyEnabled) +
(resourceRequestCpu == null ? "" : ", resourceRequestCpu='" + resourceRequestCpu + '\'') +
(resourceRequestMemory == null ? "" : ", resourceRequestMemory='" + resourceRequestMemory + '\'') +
(resourceRequestEphemeralStorage == null ? "" : ", resourceRequestEphemeralStorage='" + resourceRequestEphemeralStorage + '\'') +
(resourceLimitCpu == null ? "" : ", resourceLimitCpu='" + resourceLimitCpu + '\'') +
(resourceLimitMemory == null ? "" : ", resourceLimitMemory='" + resourceLimitMemory + '\'') +
(resourceLimitEphemeralStorage == null ? "" : ", resourceLimitEphemeralStorage='" + resourceLimitEphemeralStorage + '\'') +
(envVars == null || envVars.isEmpty() ? "" : ", envVars=" + envVars) +
(ports == null || ports.isEmpty() ? "" : ", ports=" + ports) +
(livenessProbe == null ? "" : ", livenessProbe=" + livenessProbe) +
Expand Down Expand Up @@ -397,12 +424,18 @@ public boolean equals(Object o) {
if (resourceRequestMemory != null ? !resourceRequestMemory.equals(that.resourceRequestMemory) : that.resourceRequestMemory != null) {
return false;
}
if (resourceRequestEphemeralStorage != null ? !resourceRequestEphemeralStorage.equals(that.resourceRequestEphemeralStorage) : that.resourceRequestEphemeralStorage != null) {
return false;
}
if (resourceLimitCpu != null ? !resourceLimitCpu.equals(that.resourceLimitCpu) : that.resourceLimitCpu != null) {
return false;
}
if (resourceLimitMemory != null ? !resourceLimitMemory.equals(that.resourceLimitMemory) : that.resourceLimitMemory != null) {
return false;
}
if (resourceLimitEphemeralStorage != null ? !resourceLimitEphemeralStorage.equals(that.resourceLimitEphemeralStorage) : that.resourceLimitEphemeralStorage != null) {
return false;
}
if (shell != null ? !shell.equals(that.shell) : that.shell != null) {
return false;
}
Expand All @@ -429,8 +462,10 @@ public int hashCode() {
result = 31 * result + (ttyEnabled ? 1 : 0);
result = 31 * result + (resourceRequestCpu != null ? resourceRequestCpu.hashCode() : 0);
result = 31 * result + (resourceRequestMemory != null ? resourceRequestMemory.hashCode() : 0);
result = 31 * result + (resourceRequestEphemeralStorage != null ? resourceRequestEphemeralStorage.hashCode() : 0);
result = 31 * result + (resourceLimitCpu != null ? resourceLimitCpu.hashCode() : 0);
result = 31 * result + (resourceLimitMemory != null ? resourceLimitMemory.hashCode() : 0);
result = 31 * result + (resourceLimitEphemeralStorage != null ? resourceLimitEphemeralStorage.hashCode() : 0);
result = 31 * result + (shell != null ? shell.hashCode() : 0);
result = 31 * result + (envVars != null ? envVars.hashCode() : 0);
result = 31 * result + (ports != null ? ports.hashCode() : 0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,10 +125,14 @@ public class PodTemplate extends AbstractDescribableImpl<PodTemplate> implements

private String resourceRequestMemory;

private String resourceRequestEphemeralStorage;

private String resourceLimitCpu;

private String resourceLimitMemory;

private String resourceLimitEphemeralStorage;

private Boolean hostNetwork;

private WorkspaceVolume workspaceVolume;
Expand Down Expand Up @@ -663,7 +667,7 @@ public void setResourceLimitCpu(String resourceLimitCpu) {
getFirstContainer().ifPresent((i) -> i.setResourceLimitCpu(resourceLimitCpu));
}

@Deprecated
@Deprecated
public String getResourceLimitMemory() {
return getFirstContainer().map(ContainerTemplate::getResourceLimitMemory).orElse(null);
}
Expand Down Expand Up @@ -810,10 +814,12 @@ protected Object readResolve() throws NoSuchAlgorithmException {
containerTemplate.setRunAsGroup(getRunAsGroup());
containerTemplate.setAlwaysPullImage(alwaysPullImage);
containerTemplate.setEnvVars(envVars);
containerTemplate.setResourceRequestMemory(resourceRequestMemory);
containerTemplate.setResourceLimitCpu(resourceLimitCpu);
containerTemplate.setResourceLimitMemory(resourceLimitMemory);
containerTemplate.setResourceLimitCpu(resourceLimitCpu);
containerTemplate.setResourceLimitEphemeralStorage(resourceLimitEphemeralStorage);
containerTemplate.setResourceRequestMemory(resourceRequestMemory);
containerTemplate.setResourceRequestCpu(resourceRequestCpu);
containerTemplate.setResourceRequestEphemeralStorage(resourceRequestEphemeralStorage);
containerTemplate.setWorkingDir(remoteFs);
containers.add(containerTemplate);
}
Expand Down Expand Up @@ -894,8 +900,10 @@ private String getContainersDescriptionForLogging() {
StringBuilder optional = new StringBuilder();
optionalField(optional, "resourceRequestCpu", ct.getResourceRequestCpu());
optionalField(optional, "resourceRequestMemory", ct.getResourceRequestMemory());
optionalField(optional, "resourceRequestEphemeralStorage", ct.getResourceRequestEphemeralStorage());
optionalField(optional, "resourceLimitCpu", ct.getResourceLimitCpu());
optionalField(optional, "resourceLimitMemory", ct.getResourceLimitMemory());
optionalField(optional, "resourceLimitEphemeralStorage", ct.getResourceLimitEphemeralStorage());
if (optional.length() > 0) {
sb.append("(").append(optional).append(")");
}
Expand Down Expand Up @@ -998,8 +1006,10 @@ public String toString() {
(nodeUsageMode == null ? "" : ", nodeUsageMode=" + nodeUsageMode) +
(resourceRequestCpu == null ? "" : ", resourceRequestCpu='" + resourceRequestCpu + '\'') +
(resourceRequestMemory == null ? "" : ", resourceRequestMemory='" + resourceRequestMemory + '\'') +
(resourceRequestEphemeralStorage == null ? "" : ", resourceRequestEphemeralStorage='" + resourceRequestEphemeralStorage + '\'') +
(resourceLimitCpu == null ? "" : ", resourceLimitCpu='" + resourceLimitCpu + '\'') +
(resourceLimitMemory == null ? "" : ", resourceLimitMemory='" + resourceLimitMemory + '\'') +
(resourceLimitEphemeralStorage == null ? "" : ", resourceLimitEphemeralStorage='" + resourceLimitEphemeralStorage + '\'') +
(workspaceVolume == null ? "" : ", workspaceVolume='" + workspaceVolume + '\'') +
(podRetention == null ? "" : ", podRetention='" + podRetention + '\'') +
(volumes == null || volumes.isEmpty() ? "" : ", volumes=" + volumes) +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -476,8 +476,8 @@ private Container createContainer(ContainerTemplate containerTemplate, Collectio
.withLivenessProbe(livenessProbe)
.withTty(containerTemplate.isTtyEnabled())
.withNewResources()
.withRequests(getResourcesMap(containerTemplate.getResourceRequestMemory(), containerTemplate.getResourceRequestCpu()))
.withLimits(getResourcesMap(containerTemplate.getResourceLimitMemory(), containerTemplate.getResourceLimitCpu()))
.withRequests(getResourcesMap(containerTemplate.getResourceRequestMemory(), containerTemplate.getResourceRequestCpu(),containerTemplate.getResourceRequestEphemeralStorage()))
.withLimits(getResourcesMap(containerTemplate.getResourceLimitMemory(), containerTemplate.getResourceLimitCpu(), containerTemplate.getResourceLimitEphemeralStorage()))
.endResources()
.build();
}
Expand Down Expand Up @@ -539,10 +539,11 @@ static List<String> parseLivenessProbe(String livenessProbeExec) {
return commands;
}

private Map<String, Quantity> getResourcesMap(String memory, String cpu) {
private Map<String, Quantity> getResourcesMap(String memory, String cpu, String ephemeralStorage) {
ImmutableMap.Builder<String, Quantity> builder = ImmutableMap.<String, Quantity>builder();
String actualMemory = substituteEnv(memory);
String actualCpu = substituteEnv(cpu);
String actualEphemeralStorage = substituteEnv(ephemeralStorage);
if (StringUtils.isNotBlank(actualMemory)) {
Quantity memoryQuantity = new Quantity(actualMemory);
builder.put("memory", memoryQuantity);
Expand All @@ -551,6 +552,10 @@ private Map<String, Quantity> getResourcesMap(String memory, String cpu) {
Quantity cpuQuantity = new Quantity(actualCpu);
builder.put("cpu", cpuQuantity);
}
if (StringUtils.isNotBlank(actualEphemeralStorage)) {
Quantity ephemeralStorageQuantity = new Quantity(actualEphemeralStorage);
builder.put("ephemeral-storage", ephemeralStorageQuantity);
}
return builder.build();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,10 @@ public static ContainerTemplate combine(@CheckForNull ContainerTemplate parent,
boolean ttyEnabled = template.isTtyEnabled() ? template.isTtyEnabled() : (parent.isTtyEnabled() ? parent.isTtyEnabled() : false);
String resourceRequestCpu = Strings.isNullOrEmpty(template.getResourceRequestCpu()) ? parent.getResourceRequestCpu() : template.getResourceRequestCpu();
String resourceRequestMemory = Strings.isNullOrEmpty(template.getResourceRequestMemory()) ? parent.getResourceRequestMemory() : template.getResourceRequestMemory();
String resourceRequestEphemeralStorage = Strings.isNullOrEmpty(template.getResourceRequestEphemeralStorage()) ? parent.getResourceRequestEphemeralStorage() : template.getResourceRequestEphemeralStorage();
String resourceLimitCpu = Strings.isNullOrEmpty(template.getResourceLimitCpu()) ? parent.getResourceLimitCpu() : template.getResourceLimitCpu();
String resourceLimitMemory = Strings.isNullOrEmpty(template.getResourceLimitMemory()) ? parent.getResourceLimitMemory() : template.getResourceLimitMemory();
String resourceLimitEphemeralStorage = Strings.isNullOrEmpty(template.getResourceLimitEphemeralStorage()) ? parent.getResourceLimitEphemeralStorage() : template.getResourceLimitEphemeralStorage();
Map<String, PortMapping> ports = parent.getPorts().stream()
.collect(Collectors.toMap(PortMapping::getName, Function.identity()));
template.getPorts().stream().forEach(p -> ports.put(p.getName(), p));
Expand All @@ -119,8 +121,10 @@ public static ContainerTemplate combine(@CheckForNull ContainerTemplate parent,
combined.setTtyEnabled(ttyEnabled);
combined.setResourceLimitCpu(resourceLimitCpu);
combined.setResourceLimitMemory(resourceLimitMemory);
combined.setResourceLimitEphemeralStorage(resourceLimitEphemeralStorage);
combined.setResourceRequestCpu(resourceRequestCpu);
combined.setResourceRequestMemory(resourceRequestMemory);
combined.setResourceRequestEphemeralStorage(resourceRequestEphemeralStorage);
combined.setWorkingDir(workingDir);
combined.setPrivileged(privileged);
combined.setRunAsUser(runAsUser);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,10 @@
<f:textbox/>
</f:entry>

<f:entry field="resourceRequestEphemeralStorage" title="${%Request Ephemeral Storage}">
<f:textbox/>
</f:entry>

<f:entry field="resourceLimitCpu" title="${%Limit CPU}">
<f:textbox/>
</f:entry>
Expand All @@ -68,6 +72,10 @@
<f:textbox/>
</f:entry>

<f:entry field="resourceLimitEphemeralStorage" title="${%Limit Ephemeral Storage}">
<f:textbox/>
</f:entry>

<f:entry field="livenessProbe" title="${%Liveness Probe}">
<f:rowSet name="${field}">
<j:set var="descriptor" value="${attrs.propertyDescriptor ?: app.getDescriptorOrDie(descriptor.getPropertyTypeOrDie(instance,field).clazz)}" />
Expand Down

0 comments on commit a8eba67

Please sign in to comment.