53 lines
1.4 KiB
C#
53 lines
1.4 KiB
C#
using Utils;
|
|
|
|
namespace KubernetesWorkflow.Recipe
|
|
{
|
|
public class ContainerResources
|
|
{
|
|
public ContainerResourceSet Requests { get; set; } = new ContainerResourceSet();
|
|
public ContainerResourceSet Limits { get; set; } = new ContainerResourceSet();
|
|
|
|
public override string ToString()
|
|
{
|
|
return $"requests:{Requests}, limits:{Limits}";
|
|
}
|
|
}
|
|
|
|
public class ContainerResourceSet
|
|
{
|
|
public ContainerResourceSet(int milliCPUs, ByteSize memory)
|
|
{
|
|
MilliCPUs = milliCPUs;
|
|
Memory = memory;
|
|
}
|
|
|
|
public ContainerResourceSet(int milliCPUs)
|
|
: this(milliCPUs, new ByteSize(0))
|
|
{
|
|
}
|
|
|
|
public ContainerResourceSet(ByteSize memory)
|
|
: this(0, memory)
|
|
{
|
|
}
|
|
|
|
public ContainerResourceSet()
|
|
: this(0)
|
|
{
|
|
}
|
|
|
|
public int MilliCPUs { get; }
|
|
public ByteSize Memory { get; }
|
|
|
|
public override string ToString()
|
|
{
|
|
var result = new List<string>();
|
|
if (MilliCPUs == 0) result.Add("cpu: unlimited");
|
|
else result.Add($"cpu: {MilliCPUs} milliCPUs");
|
|
if (Memory.SizeInBytes == 0) result.Add("memory: unlimited");
|
|
else result.Add($"memory: {Memory}");
|
|
return string.Join(", ", result);
|
|
}
|
|
}
|
|
}
|