runtime: resource limits (kubernetes implementation) (#1931)
* runtime: add resource limit CreateOptions * util/kubernetes/client: implement support for resource limits * runtime/kubernetes: set resource limits for k8s deployments * util/kubernetes: remove template check for ints * util/kubernetes: fix incorrect yaml syntax * runtime/kubernetes: fix incorrect units * runtime: update create options to use Resources struct
This commit is contained in:
@@ -2,6 +2,7 @@ package kubernetes
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@@ -102,6 +103,22 @@ func newService(s *runtime.Service, c runtime.CreateOptions) *service {
|
||||
kdeploy.Spec.Template.PodSpec.Containers[0].Args = c.Args
|
||||
}
|
||||
|
||||
// apply resource limits
|
||||
if c.Resources != nil {
|
||||
resLimits := &client.ResourceLimits{}
|
||||
if c.Resources.CPU > 0 {
|
||||
resLimits.CPU = fmt.Sprintf("%vm", c.Resources.CPU)
|
||||
}
|
||||
if c.Resources.Mem > 0 {
|
||||
resLimits.Memory = fmt.Sprintf("%vMi", c.Resources.Mem)
|
||||
}
|
||||
if c.Resources.Disk > 0 {
|
||||
resLimits.EphemeralStorage = fmt.Sprintf("%vMi", c.Resources.Disk)
|
||||
}
|
||||
|
||||
kdeploy.Spec.Template.PodSpec.Containers[0].Resources = &client.ResourceRequirements{Limits: resLimits}
|
||||
}
|
||||
|
||||
return &service{
|
||||
Service: s,
|
||||
kservice: kservice,
|
||||
|
Reference in New Issue
Block a user