Added unit test for sidecar containers in TestValidatePodResize

This commit is contained in:
vivzbansal 2024-11-08 04:40:08 +00:00
parent a0d3cb0a2c
commit 1eb966cb45

View File

@ -25601,6 +25601,24 @@ func TestValidatePodResize(t *testing.T) {
),
)...)
}
mkPodWithInitCtrs := func(req, lim core.ResourceList, tweaks ...podtest.TweakContainer) *core.Pod {
tweaks = append(tweaks, podtest.SetContainerRestartPolicy(containerRestartPolicyAlways))
return podtest.MakePod("pod",
podtest.SetInitContainers(
podtest.MakeContainer(
"restartable-init",
append(tweaks,
podtest.SetContainerResources(
core.ResourceRequirements{
Requests: req,
Limits: lim,
},
),
)...,
),
),
)
}
mkPodWithInitContainers := func(req, lim core.ResourceList, restartPolicy core.ContainerRestartPolicy, tweaks ...podtest.Tweak) *core.Pod {
return podtest.MakePod("pod", append(tweaks,
@ -25620,10 +25638,11 @@ func TestValidatePodResize(t *testing.T) {
}
tests := []struct {
test string
old *core.Pod
new *core.Pod
err string
test string
old *core.Pod
new *core.Pod
isSideCarCtr bool
err string
}{
{
test: "pod-level resources with container cpu limit change",
@ -25981,9 +26000,47 @@ func TestValidatePodResize(t *testing.T) {
new: mkPod(core.ResourceList{}, getResources("200m", "0", "1Gi", "")),
err: "",
},
{
test: "cpu limit change for sidecar containers",
old: mkPodWithInitCtrs(core.ResourceList{}, getResources("100m", "0", "1Gi", "")),
new: mkPodWithInitCtrs(core.ResourceList{}, getResources("200m", "0", "1Gi", "")),
isSideCarCtr: true,
err: "",
}, {
test: "memory limit change for sidecar containers",
old: mkPodWithInitCtrs(core.ResourceList{}, getResources("100m", "200Mi", "", "")),
new: mkPodWithInitCtrs(core.ResourceList{}, getResources("100m", "100Mi", "", "")),
isSideCarCtr: true,
err: "",
}, {
test: "storage limit change for sidecar containers",
old: mkPodWithInitCtrs(core.ResourceList{}, getResources("100m", "100Mi", "2Gi", "")),
new: mkPodWithInitCtrs(core.ResourceList{}, getResources("100m", "100Mi", "1Gi", "")),
isSideCarCtr: true,
err: "spec: Forbidden: cpu and memory resources for only sidecar containers are mutable",
}, {
test: "cpu request change for sidecar containers",
old: mkPodWithInitCtrs(getResources("200m", "0", "", ""), core.ResourceList{}),
new: mkPodWithInitCtrs(getResources("100m", "0", "", ""), core.ResourceList{}),
isSideCarCtr: true,
err: "",
}, {
test: "memory request change for sidecar containers",
old: mkPodWithInitCtrs(getResources("0", "100Mi", "", ""), core.ResourceList{}),
new: mkPodWithInitCtrs(getResources("0", "200Mi", "", ""), core.ResourceList{}),
isSideCarCtr: true,
err: "",
}, {
test: "storage request change for sidecar containers",
old: mkPodWithInitCtrs(getResources("100m", "0", "1Gi", ""), core.ResourceList{}),
new: mkPodWithInitCtrs(getResources("100m", "0", "2Gi", ""), core.ResourceList{}),
isSideCarCtr: true,
err: "spec: Forbidden: cpu and memory resources for only sidecar containers are mutable",
},
}
for _, test := range tests {
featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.SidecarContainers, test.isSideCarCtr)
test.new.ObjectMeta.ResourceVersion = "1"
test.old.ObjectMeta.ResourceVersion = "1"
@ -25996,6 +26053,12 @@ func TestValidatePodResize(t *testing.T) {
test.new.Namespace = "namespace"
test.old.Namespace = "namespace"
}
if test.isSideCarCtr {
if test.new.Spec.InitContainers == nil && test.old.Spec.InitContainers == nil {
test.new.Spec.InitContainers = []core.Container{{Name: "autoadded", Image: "image", TerminationMessagePolicy: "File", ImagePullPolicy: "Always"}}
test.old.Spec.InitContainers = []core.Container{{Name: "autoadded", Image: "image", TerminationMessagePolicy: "File", ImagePullPolicy: "Always"}}
}
}
if test.new.Spec.Containers == nil && test.old.Spec.Containers == nil {
test.new.Spec.Containers = []core.Container{{Name: "autoadded", Image: "image", TerminationMessagePolicy: "File", ImagePullPolicy: "Always"}}
test.old.Spec.Containers = []core.Container{{Name: "autoadded", Image: "image", TerminationMessagePolicy: "File", ImagePullPolicy: "Always"}}