@@ -2897,6 +2897,96 @@ func TestComputePodActionsForPodResize(t *testing.T) {
2897
2897
return & pa
2898
2898
},
2899
2899
},
2900
+ "Update container memory (requests only) with RestartContainer policy for memory" : {
2901
+ setupFn : func (pod * v1.Pod ) {
2902
+ c := & pod .Spec .Containers [2 ]
2903
+ c .ResizePolicy = []v1.ContainerResizePolicy {cpuPolicyRestartNotRequired , memPolicyRestartRequired }
2904
+ c .Resources = v1.ResourceRequirements {
2905
+ Limits : v1.ResourceList {v1 .ResourceCPU : cpu200m , v1 .ResourceMemory : mem200M },
2906
+ Requests : v1.ResourceList {v1 .ResourceCPU : cpu100m , v1 .ResourceMemory : mem100M },
2907
+ }
2908
+ setupActuatedResources (pod , c , v1.ResourceRequirements {
2909
+ Limits : v1.ResourceList {
2910
+ v1 .ResourceCPU : cpu200m .DeepCopy (),
2911
+ v1 .ResourceMemory : mem200M .DeepCopy (),
2912
+ },
2913
+ Requests : v1.ResourceList {
2914
+ v1 .ResourceCPU : cpu100m .DeepCopy (),
2915
+ v1 .ResourceMemory : mem200M .DeepCopy (),
2916
+ },
2917
+ })
2918
+ },
2919
+ getExpectedPodActionsFn : func (pod * v1.Pod , podStatus * kubecontainer.PodStatus ) * podActions {
2920
+ kcs := podStatus .FindContainerStatusByName (pod .Spec .Containers [2 ].Name )
2921
+ killMap := make (map [kubecontainer.ContainerID ]containerToKillInfo )
2922
+ killMap [kcs .ID ] = containerToKillInfo {
2923
+ container : & pod .Spec .Containers [2 ],
2924
+ name : pod .Spec .Containers [2 ].Name ,
2925
+ }
2926
+ pa := podActions {
2927
+ SandboxID : podStatus .SandboxStatuses [0 ].Id ,
2928
+ ContainersToStart : []int {2 },
2929
+ ContainersToKill : killMap ,
2930
+ ContainersToUpdate : map [v1.ResourceName ][]containerToUpdateInfo {},
2931
+ UpdatePodResources : true ,
2932
+ }
2933
+ return & pa
2934
+ },
2935
+ },
2936
+ "Update container memory (requests only) with RestartNotRequired policy for memory" : {
2937
+ setupFn : func (pod * v1.Pod ) {
2938
+ c := & pod .Spec .Containers [2 ]
2939
+ c .ResizePolicy = []v1.ContainerResizePolicy {cpuPolicyRestartNotRequired , memPolicyRestartNotRequired }
2940
+ c .Resources = v1.ResourceRequirements {
2941
+ Limits : v1.ResourceList {v1 .ResourceCPU : cpu200m , v1 .ResourceMemory : mem200M },
2942
+ Requests : v1.ResourceList {v1 .ResourceCPU : cpu100m , v1 .ResourceMemory : mem100M },
2943
+ }
2944
+ setupActuatedResources (pod , c , v1.ResourceRequirements {
2945
+ Limits : v1.ResourceList {
2946
+ v1 .ResourceCPU : cpu200m .DeepCopy (),
2947
+ v1 .ResourceMemory : mem200M .DeepCopy (),
2948
+ },
2949
+ Requests : v1.ResourceList {
2950
+ v1 .ResourceCPU : cpu100m .DeepCopy (),
2951
+ v1 .ResourceMemory : mem200M .DeepCopy (),
2952
+ },
2953
+ })
2954
+ },
2955
+ getExpectedPodActionsFn : func (pod * v1.Pod , podStatus * kubecontainer.PodStatus ) * podActions {
2956
+ kcs := podStatus .FindContainerStatusByName (pod .Spec .Containers [2 ].Name )
2957
+ killMap := make (map [kubecontainer.ContainerID ]containerToKillInfo )
2958
+ killMap [kcs .ID ] = containerToKillInfo {
2959
+ container : & pod .Spec .Containers [2 ],
2960
+ name : pod .Spec .Containers [2 ].Name ,
2961
+ }
2962
+ pa := podActions {
2963
+ SandboxID : podStatus .SandboxStatuses [0 ].Id ,
2964
+ ContainersToStart : []int {},
2965
+ ContainersToKill : getKillMap (pod , podStatus , []int {}),
2966
+ ContainersToUpdate : map [v1.ResourceName ][]containerToUpdateInfo {
2967
+ v1 .ResourceMemory : {
2968
+ {
2969
+ container : & pod .Spec .Containers [2 ],
2970
+ kubeContainerID : kcs .ID ,
2971
+ desiredContainerResources : containerResources {
2972
+ memoryLimit : mem200M .Value (),
2973
+ memoryRequest : mem100M .Value (),
2974
+ cpuLimit : cpu200m .MilliValue (),
2975
+ cpuRequest : cpu100m .MilliValue (),
2976
+ },
2977
+ currentContainerResources : & containerResources {
2978
+ memoryLimit : mem200M .Value (),
2979
+ memoryRequest : mem200M .Value (),
2980
+ cpuLimit : cpu200m .MilliValue (),
2981
+ cpuRequest : cpu100m .MilliValue (),
2982
+ },
2983
+ },
2984
+ },
2985
+ },
2986
+ }
2987
+ return & pa
2988
+ },
2989
+ },
2900
2990
} {
2901
2991
t .Run (desc , func (t * testing.T ) {
2902
2992
pod , status := makeBasePodAndStatus ()
0 commit comments