Merge pull request #5627 from payall4u/payall4u/cri-support-cgroup-v2

This commit is contained in:
Fu Wei 2021-09-09 23:10:33 +08:00 committed by GitHub
commit d58542a9d1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 62 additions and 0 deletions

View File

@ -488,6 +488,15 @@ func WithResources(resources *runtime.LinuxContainerResources, tolerateMissingHu
logrus.Warn("hugetlb cgroup controller is absent. skipping huge pages limits") logrus.Warn("hugetlb cgroup controller is absent. skipping huge pages limits")
} }
} }
if unified := resources.GetUnified(); unified != nil {
if s.Linux.Resources.Unified == nil {
s.Linux.Resources.Unified = make(map[string]string)
}
for k, v := range unified {
s.Linux.Resources.Unified[k] = v
}
}
return nil return nil
} }
} }

View File

@ -90,6 +90,7 @@ func getCreateContainerTestData() (*runtime.ContainerConfig, *runtime.PodSandbox
OomScoreAdj: 500, OomScoreAdj: 500,
CpusetCpus: "0-1", CpusetCpus: "0-1",
CpusetMems: "2-3", CpusetMems: "2-3",
Unified: map[string]string{"memory.min": "65536", "memory.swap.max": "1024"},
}, },
SecurityContext: &runtime.LinuxContainerSecurityContext{ SecurityContext: &runtime.LinuxContainerSecurityContext{
SupplementalGroups: []int64{1111, 2222}, SupplementalGroups: []int64{1111, 2222},
@ -136,6 +137,7 @@ func getCreateContainerTestData() (*runtime.ContainerConfig, *runtime.PodSandbox
assert.EqualValues(t, *spec.Linux.Resources.CPU.Shares, 300) assert.EqualValues(t, *spec.Linux.Resources.CPU.Shares, 300)
assert.EqualValues(t, spec.Linux.Resources.CPU.Cpus, "0-1") assert.EqualValues(t, spec.Linux.Resources.CPU.Cpus, "0-1")
assert.EqualValues(t, spec.Linux.Resources.CPU.Mems, "2-3") assert.EqualValues(t, spec.Linux.Resources.CPU.Mems, "2-3")
assert.EqualValues(t, spec.Linux.Resources.Unified, map[string]string{"memory.min": "65536", "memory.swap.max": "1024"})
assert.EqualValues(t, *spec.Linux.Resources.Memory.Limit, 400) assert.EqualValues(t, *spec.Linux.Resources.Memory.Limit, 400)
assert.EqualValues(t, *spec.Process.OOMScoreAdj, 500) assert.EqualValues(t, *spec.Process.OOMScoreAdj, 500)

View File

@ -48,6 +48,7 @@ func TestUpdateOCILinuxResource(t *testing.T) {
Cpus: "0-1", Cpus: "0-1",
Mems: "2-3", Mems: "2-3",
}, },
Unified: map[string]string{"memory.min": "65536", "memory.swap.max": "1024"},
}, },
}, },
}, },
@ -59,6 +60,7 @@ func TestUpdateOCILinuxResource(t *testing.T) {
OomScoreAdj: 500, OomScoreAdj: 500,
CpusetCpus: "4-5", CpusetCpus: "4-5",
CpusetMems: "6-7", CpusetMems: "6-7",
Unified: map[string]string{"memory.min": "1507328", "memory.swap.max": "0"},
}, },
expected: &runtimespec.Spec{ expected: &runtimespec.Spec{
Process: &runtimespec.Process{OOMScoreAdj: oomscoreadj}, Process: &runtimespec.Process{OOMScoreAdj: oomscoreadj},
@ -72,6 +74,7 @@ func TestUpdateOCILinuxResource(t *testing.T) {
Cpus: "4-5", Cpus: "4-5",
Mems: "6-7", Mems: "6-7",
}, },
Unified: map[string]string{"memory.min": "1507328", "memory.swap.max": "0"},
}, },
}, },
}, },
@ -89,6 +92,7 @@ func TestUpdateOCILinuxResource(t *testing.T) {
Cpus: "0-1", Cpus: "0-1",
Mems: "2-3", Mems: "2-3",
}, },
Unified: map[string]string{"memory.min": "65536", "memory.swap.max": "1024"},
}, },
}, },
}, },
@ -111,6 +115,7 @@ func TestUpdateOCILinuxResource(t *testing.T) {
Cpus: "0-1", Cpus: "0-1",
Mems: "6-7", Mems: "6-7",
}, },
Unified: map[string]string{"memory.min": "65536", "memory.swap.max": "1024"},
}, },
}, },
}, },
@ -132,6 +137,7 @@ func TestUpdateOCILinuxResource(t *testing.T) {
OomScoreAdj: 500, OomScoreAdj: 500,
CpusetCpus: "4-5", CpusetCpus: "4-5",
CpusetMems: "6-7", CpusetMems: "6-7",
Unified: map[string]string{"memory.min": "65536", "memory.swap.max": "1024"},
}, },
expected: &runtimespec.Spec{ expected: &runtimespec.Spec{
Process: &runtimespec.Process{OOMScoreAdj: oomscoreadj}, Process: &runtimespec.Process{OOMScoreAdj: oomscoreadj},
@ -145,6 +151,51 @@ func TestUpdateOCILinuxResource(t *testing.T) {
Cpus: "4-5", Cpus: "4-5",
Mems: "6-7", Mems: "6-7",
}, },
Unified: map[string]string{"memory.min": "65536", "memory.swap.max": "1024"},
},
},
},
},
"should be able to patch the unified map": {
spec: &runtimespec.Spec{
Process: &runtimespec.Process{OOMScoreAdj: oomscoreadj},
Linux: &runtimespec.Linux{
Resources: &runtimespec.LinuxResources{
Memory: &runtimespec.LinuxMemory{Limit: proto.Int64(12345)},
CPU: &runtimespec.LinuxCPU{
Shares: proto.Uint64(1111),
Quota: proto.Int64(2222),
Period: proto.Uint64(3333),
Cpus: "0-1",
Mems: "2-3",
},
Unified: map[string]string{"memory.min": "65536", "memory.max": "1507328"},
},
},
},
resources: &runtime.LinuxContainerResources{
CpuPeriod: 6666,
CpuQuota: 5555,
CpuShares: 4444,
MemoryLimitInBytes: 54321,
OomScoreAdj: 500,
CpusetCpus: "4-5",
CpusetMems: "6-7",
Unified: map[string]string{"memory.min": "1507328", "memory.swap.max": "1024"},
},
expected: &runtimespec.Spec{
Process: &runtimespec.Process{OOMScoreAdj: oomscoreadj},
Linux: &runtimespec.Linux{
Resources: &runtimespec.LinuxResources{
Memory: &runtimespec.LinuxMemory{Limit: proto.Int64(54321)},
CPU: &runtimespec.LinuxCPU{
Shares: proto.Uint64(4444),
Quota: proto.Int64(5555),
Period: proto.Uint64(6666),
Cpus: "4-5",
Mems: "6-7",
},
Unified: map[string]string{"memory.min": "1507328", "memory.max": "1507328", "memory.swap.max": "1024"},
}, },
}, },
}, },