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