rkt: If resource's limit is empty, populate it with request,and vice versa.

This commit is contained in:
Yifan Gu 2016-01-29 10:43:00 -08:00
parent eb2c2d1af4
commit 1b34e2c314
2 changed files with 11 additions and 10 deletions

View File

@ -262,17 +262,18 @@ func setIsolators(app *appctypes.App, c *api.Container, ctx *api.SecurityContext
request string request string
} }
resources := make(map[api.ResourceName]resource) // If limit is empty, populate it with request and vice versa.
resources := make(map[api.ResourceName]*resource)
for name, quantity := range c.Resources.Limits { for name, quantity := range c.Resources.Limits {
resources[name] = resource{limit: quantity.String()} resources[name] = &resource{limit: quantity.String(), request: quantity.String()}
} }
for name, quantity := range c.Resources.Requests { for name, quantity := range c.Resources.Requests {
r, ok := resources[name] r, ok := resources[name]
if !ok { if ok {
r = resource{}
}
r.request = quantity.String() r.request = quantity.String()
resources[name] = r continue
}
resources[name] = &resource{limit: quantity.String(), request: quantity.String()}
} }
for name, res := range resources { for name, res := range resources {

View File

@ -867,8 +867,8 @@ func TestSetApp(t *testing.T) {
Args: []string{"hello", "world"}, Args: []string{"hello", "world"},
WorkingDir: tmpDir, WorkingDir: tmpDir,
Resources: api.ResourceRequirements{ Resources: api.ResourceRequirements{
Limits: api.ResourceList{"cpu": resource.MustParse("50m"), "memory": resource.MustParse("50M")}, Limits: api.ResourceList{"cpu": resource.MustParse("50m")},
Requests: api.ResourceList{"cpu": resource.MustParse("5m"), "memory": resource.MustParse("5M")}, Requests: api.ResourceList{"memory": resource.MustParse("5M")},
}, },
}, },
opts: &kubecontainer.RunContainerOptions{ opts: &kubecontainer.RunContainerOptions{
@ -912,8 +912,8 @@ func TestSetApp(t *testing.T) {
Isolators: []appctypes.Isolator{ Isolators: []appctypes.Isolator{
generateCapRetainIsolator(t, "CAP_SYS_CHROOT", "CAP_SYS_BOOT"), generateCapRetainIsolator(t, "CAP_SYS_CHROOT", "CAP_SYS_BOOT"),
generateCapRevokeIsolator(t, "CAP_SETUID", "CAP_SETGID"), generateCapRevokeIsolator(t, "CAP_SETUID", "CAP_SETGID"),
generateCPUIsolator(t, "5m", "50m"), generateCPUIsolator(t, "50m", "50m"),
generateMemoryIsolator(t, "5M", "50M"), generateMemoryIsolator(t, "5M", "5M"),
}, },
}, },
}, },