@@ -25601,6 +25601,24 @@ func TestValidatePodResize(t *testing.T) {
25601
25601
),
25602
25602
)...)
25603
25603
}
25604
+ mkPodWithInitCtrs := func(req, lim core.ResourceList, tweaks ...podtest.TweakContainer) *core.Pod {
25605
+ tweaks = append(tweaks, podtest.SetContainerRestartPolicy(containerRestartPolicyAlways))
25606
+ return podtest.MakePod("pod",
25607
+ podtest.SetInitContainers(
25608
+ podtest.MakeContainer(
25609
+ "restartable-init",
25610
+ append(tweaks,
25611
+ podtest.SetContainerResources(
25612
+ core.ResourceRequirements{
25613
+ Requests: req,
25614
+ Limits: lim,
25615
+ },
25616
+ ),
25617
+ )...,
25618
+ ),
25619
+ ),
25620
+ )
25621
+ }
25604
25622
25605
25623
mkPodWithInitContainers := func(req, lim core.ResourceList, restartPolicy core.ContainerRestartPolicy, tweaks ...podtest.Tweak) *core.Pod {
25606
25624
return podtest.MakePod("pod", append(tweaks,
@@ -25620,10 +25638,11 @@ func TestValidatePodResize(t *testing.T) {
25620
25638
}
25621
25639
25622
25640
tests := []struct {
25623
- test string
25624
- old *core.Pod
25625
- new *core.Pod
25626
- err string
25641
+ test string
25642
+ old *core.Pod
25643
+ new *core.Pod
25644
+ isSideCarCtr bool
25645
+ err string
25627
25646
}{
25628
25647
{
25629
25648
test: "pod-level resources with container cpu limit change",
@@ -25981,9 +26000,47 @@ func TestValidatePodResize(t *testing.T) {
25981
26000
new: mkPod(core.ResourceList{}, getResources("200m", "0", "1Gi", "")),
25982
26001
err: "",
25983
26002
},
26003
+ {
26004
+ test: "cpu limit change for sidecar containers",
26005
+ old: mkPodWithInitCtrs(core.ResourceList{}, getResources("100m", "0", "1Gi", "")),
26006
+ new: mkPodWithInitCtrs(core.ResourceList{}, getResources("200m", "0", "1Gi", "")),
26007
+ isSideCarCtr: true,
26008
+ err: "",
26009
+ }, {
26010
+ test: "memory limit change for sidecar containers",
26011
+ old: mkPodWithInitCtrs(core.ResourceList{}, getResources("100m", "200Mi", "", "")),
26012
+ new: mkPodWithInitCtrs(core.ResourceList{}, getResources("100m", "100Mi", "", "")),
26013
+ isSideCarCtr: true,
26014
+ err: "",
26015
+ }, {
26016
+ test: "storage limit change for sidecar containers",
26017
+ old: mkPodWithInitCtrs(core.ResourceList{}, getResources("100m", "100Mi", "2Gi", "")),
26018
+ new: mkPodWithInitCtrs(core.ResourceList{}, getResources("100m", "100Mi", "1Gi", "")),
26019
+ isSideCarCtr: true,
26020
+ err: "spec: Forbidden: cpu and memory resources for only sidecar containers are mutable",
26021
+ }, {
26022
+ test: "cpu request change for sidecar containers",
26023
+ old: mkPodWithInitCtrs(getResources("200m", "0", "", ""), core.ResourceList{}),
26024
+ new: mkPodWithInitCtrs(getResources("100m", "0", "", ""), core.ResourceList{}),
26025
+ isSideCarCtr: true,
26026
+ err: "",
26027
+ }, {
26028
+ test: "memory request change for sidecar containers",
26029
+ old: mkPodWithInitCtrs(getResources("0", "100Mi", "", ""), core.ResourceList{}),
26030
+ new: mkPodWithInitCtrs(getResources("0", "200Mi", "", ""), core.ResourceList{}),
26031
+ isSideCarCtr: true,
26032
+ err: "",
26033
+ }, {
26034
+ test: "storage request change for sidecar containers",
26035
+ old: mkPodWithInitCtrs(getResources("100m", "0", "1Gi", ""), core.ResourceList{}),
26036
+ new: mkPodWithInitCtrs(getResources("100m", "0", "2Gi", ""), core.ResourceList{}),
26037
+ isSideCarCtr: true,
26038
+ err: "spec: Forbidden: cpu and memory resources for only sidecar containers are mutable",
26039
+ },
25984
26040
}
25985
26041
25986
26042
for _, test := range tests {
26043
+ featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.SidecarContainers, test.isSideCarCtr)
25987
26044
test.new.ObjectMeta.ResourceVersion = "1"
25988
26045
test.old.ObjectMeta.ResourceVersion = "1"
25989
26046
@@ -25996,6 +26053,12 @@ func TestValidatePodResize(t *testing.T) {
25996
26053
test.new.Namespace = "namespace"
25997
26054
test.old.Namespace = "namespace"
25998
26055
}
26056
+ if test.isSideCarCtr {
26057
+ if test.new.Spec.InitContainers == nil && test.old.Spec.InitContainers == nil {
26058
+ test.new.Spec.InitContainers = []core.Container{{Name: "autoadded", Image: "image", TerminationMessagePolicy: "File", ImagePullPolicy: "Always"}}
26059
+ test.old.Spec.InitContainers = []core.Container{{Name: "autoadded", Image: "image", TerminationMessagePolicy: "File", ImagePullPolicy: "Always"}}
26060
+ }
26061
+ }
25999
26062
if test.new.Spec.Containers == nil && test.old.Spec.Containers == nil {
26000
26063
test.new.Spec.Containers = []core.Container{{Name: "autoadded", Image: "image", TerminationMessagePolicy: "File", ImagePullPolicy: "Always"}}
26001
26064
test.old.Spec.Containers = []core.Container{{Name: "autoadded", Image: "image", TerminationMessagePolicy: "File", ImagePullPolicy: "Always"}}
0 commit comments