Skip to content

Commit

Permalink
Merge pull request containerd#7946 from mqasimsarfraz/fix-swap-tests
Browse files Browse the repository at this point in the history
cri: Fix TestUpdateOCILinuxResource for host w/o swap controller
  • Loading branch information
AkihiroSuda committed Jan 11, 2023
2 parents 54ec191 + 9c8c450 commit 6161721
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 10 deletions.
5 changes: 3 additions & 2 deletions pkg/cri/opts/spec_linux.go
Expand Up @@ -411,7 +411,8 @@ var (
swapControllerAvailabilityOnce sync.Once
)

func swapControllerAvailable() bool {
// SwapControllerAvailable returns true if the swap controller is available
func SwapControllerAvailable() bool {
swapControllerAvailabilityOnce.Do(func() {
const warn = "Failed to detect the availability of the swap controller, assuming not available"
p := "/sys/fs/cgroup/memory/memory.memsw.limit_in_bytes"
Expand Down Expand Up @@ -481,7 +482,7 @@ func WithResources(resources *runtime.LinuxContainerResources, tolerateMissingHu
if limit != 0 {
s.Linux.Resources.Memory.Limit = &limit
// swap/memory limit should be equal to prevent container from swapping by default
if swapLimit == 0 && swapControllerAvailable() {
if swapLimit == 0 && SwapControllerAvailable() {
s.Linux.Resources.Memory.Swap = &limit
}
}
Expand Down
15 changes: 11 additions & 4 deletions pkg/cri/sbserver/container_update_resources_linux_test.go
Expand Up @@ -26,11 +26,18 @@ import (
runtime "k8s.io/cri-api/pkg/apis/runtime/v1"

criconfig "github.com/containerd/containerd/pkg/cri/config"
criopts "github.com/containerd/containerd/pkg/cri/opts"
)

func TestUpdateOCILinuxResource(t *testing.T) {
oomscoreadj := new(int)
*oomscoreadj = -500
expectedSwap := func(swap int64) *int64 {
if criopts.SwapControllerAvailable() {
return &swap
}
return nil
}
for desc, test := range map[string]struct {
spec *runtimespec.Spec
request *runtime.UpdateContainerResourcesRequest
Expand Down Expand Up @@ -72,7 +79,7 @@ func TestUpdateOCILinuxResource(t *testing.T) {
Resources: &runtimespec.LinuxResources{
Memory: &runtimespec.LinuxMemory{
Limit: proto.Int64(54321),
Swap: proto.Int64(54321),
Swap: expectedSwap(54321),
},
CPU: &runtimespec.LinuxCPU{
Shares: proto.Uint64(4444),
Expand Down Expand Up @@ -118,7 +125,7 @@ func TestUpdateOCILinuxResource(t *testing.T) {
Resources: &runtimespec.LinuxResources{
Memory: &runtimespec.LinuxMemory{
Limit: proto.Int64(54321),
Swap: proto.Int64(54321),
Swap: expectedSwap(54321),
},
CPU: &runtimespec.LinuxCPU{
Shares: proto.Uint64(4444),
Expand Down Expand Up @@ -159,7 +166,7 @@ func TestUpdateOCILinuxResource(t *testing.T) {
Resources: &runtimespec.LinuxResources{
Memory: &runtimespec.LinuxMemory{
Limit: proto.Int64(54321),
Swap: proto.Int64(54321),
Swap: expectedSwap(54321),
},
CPU: &runtimespec.LinuxCPU{
Shares: proto.Uint64(4444),
Expand Down Expand Up @@ -208,7 +215,7 @@ func TestUpdateOCILinuxResource(t *testing.T) {
Resources: &runtimespec.LinuxResources{
Memory: &runtimespec.LinuxMemory{
Limit: proto.Int64(54321),
Swap: proto.Int64(54321),
Swap: expectedSwap(54321),
},
CPU: &runtimespec.LinuxCPU{
Shares: proto.Uint64(4444),
Expand Down
15 changes: 11 additions & 4 deletions pkg/cri/server/container_update_resources_linux_test.go
Expand Up @@ -26,11 +26,18 @@ import (
runtime "k8s.io/cri-api/pkg/apis/runtime/v1"

criconfig "github.com/containerd/containerd/pkg/cri/config"
criopts "github.com/containerd/containerd/pkg/cri/opts"
)

func TestUpdateOCILinuxResource(t *testing.T) {
oomscoreadj := new(int)
*oomscoreadj = -500
expectedSwap := func(swap int64) *int64 {
if criopts.SwapControllerAvailable() {
return &swap
}
return nil
}
for desc, test := range map[string]struct {
spec *runtimespec.Spec
request *runtime.UpdateContainerResourcesRequest
Expand Down Expand Up @@ -72,7 +79,7 @@ func TestUpdateOCILinuxResource(t *testing.T) {
Resources: &runtimespec.LinuxResources{
Memory: &runtimespec.LinuxMemory{
Limit: proto.Int64(54321),
Swap: proto.Int64(54321),
Swap: expectedSwap(54321),
},
CPU: &runtimespec.LinuxCPU{
Shares: proto.Uint64(4444),
Expand Down Expand Up @@ -118,7 +125,7 @@ func TestUpdateOCILinuxResource(t *testing.T) {
Resources: &runtimespec.LinuxResources{
Memory: &runtimespec.LinuxMemory{
Limit: proto.Int64(54321),
Swap: proto.Int64(54321),
Swap: expectedSwap(54321),
},
CPU: &runtimespec.LinuxCPU{
Shares: proto.Uint64(4444),
Expand Down Expand Up @@ -159,7 +166,7 @@ func TestUpdateOCILinuxResource(t *testing.T) {
Resources: &runtimespec.LinuxResources{
Memory: &runtimespec.LinuxMemory{
Limit: proto.Int64(54321),
Swap: proto.Int64(54321),
Swap: expectedSwap(54321),
},
CPU: &runtimespec.LinuxCPU{
Shares: proto.Uint64(4444),
Expand Down Expand Up @@ -208,7 +215,7 @@ func TestUpdateOCILinuxResource(t *testing.T) {
Resources: &runtimespec.LinuxResources{
Memory: &runtimespec.LinuxMemory{
Limit: proto.Int64(54321),
Swap: proto.Int64(54321),
Swap: expectedSwap(54321),
},
CPU: &runtimespec.LinuxCPU{
Shares: proto.Uint64(4444),
Expand Down

0 comments on commit 6161721

Please sign in to comment.