Skip to content

Commit d4553a2

Browse files
committed
add test for resize overcommit function
1 parent 51a018c commit d4553a2

1 file changed

Lines changed: 46 additions & 1 deletion

File tree

pkg/overcommit/make_overcommit_test.go

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ import (
1717

1818
var _ = Describe("Overcommit", func() {
1919
var (
20-
pod *corev1.Pod
20+
pod *corev1.Pod
21+
2122
expectedRequests = corev1.ResourceList{
2223
corev1.ResourceCPU: *resource.NewMilliQuantity(500, resource.DecimalSI),
2324
corev1.ResourceMemory: *resource.NewQuantity(536870912, resource.BinarySI),
@@ -51,6 +52,7 @@ var _ = Describe("Overcommit", func() {
5152
})
5253

5354
Describe("mutateContainers", func() {
55+
5456
It("should mutate container requests based on overcommit values", func() {
5557
mutateContainers(pod.Spec.Containers, pod, 0.5, 0.5)
5658

@@ -59,10 +61,32 @@ var _ = Describe("Overcommit", func() {
5961

6062
It("should not mutate containers if limits are nil", func() {
6163
pod.Spec.Containers[0].Resources.Limits = nil
64+
6265
mutateContainers(pod.Spec.Containers, pod, 0.5, 0.5)
6366

6467
Expect(pod.Spec.Containers[0].Resources.Requests).To(BeEmpty())
6568
})
69+
70+
It("should initialize requests if requests is nil", func() {
71+
pod.Spec.Containers[0].Resources.Requests = nil
72+
73+
mutateContainers(pod.Spec.Containers, pod, 0.5, 0.5)
74+
75+
Expect(pod.Spec.Containers[0].Resources.Requests).To(Equal(expectedRequests))
76+
})
77+
78+
It("should be idempotent when applied multiple times", func() {
79+
mutateContainers(pod.Spec.Containers, pod, 0.5, 0.5)
80+
81+
first := pod.Spec.Containers[0].Resources.Requests.Cpu().MilliValue()
82+
83+
mutateContainers(pod.Spec.Containers, pod, 0.5, 0.5)
84+
85+
second := pod.Spec.Containers[0].Resources.Requests.Cpu().MilliValue()
86+
87+
Expect(first).To(Equal(second))
88+
})
89+
6690
})
6791

6892
Describe("makeOvercommit", func() {
@@ -74,6 +98,7 @@ var _ = Describe("Overcommit", func() {
7498
})
7599

76100
Describe("Overcommit", func() {
101+
77102
BeforeEach(func() {
78103
os.Setenv("OVERCOMMIT_CLASS_NAME", "test-class")
79104
})
@@ -86,7 +111,27 @@ var _ = Describe("Overcommit", func() {
86111
Overcommit(pod, recorder, k8sClient)
87112

88113
Expect(pod.Spec.Containers[0].Resources.Requests).To(Equal(expectedRequests))
114+
})
115+
116+
})
117+
118+
Describe("Resize behaviour", func() {
119+
120+
It("should recompute requests when limits change", func() {
121+
122+
mutateContainers(pod.Spec.Containers, pod, 0.5, 0.5)
123+
124+
Expect(pod.Spec.Containers[0].Resources.Requests).To(Equal(expectedRequests))
125+
126+
pod.Spec.Containers[0].Resources.Limits[corev1.ResourceCPU] = resource.MustParse("2")
89127

128+
mutateContainers(pod.Spec.Containers, pod, 0.5, 0.5)
129+
130+
Expect(
131+
pod.Spec.Containers[0].Resources.Requests.Cpu().MilliValue(),
132+
).To(Equal(int64(1000)))
90133
})
134+
91135
})
136+
92137
})

0 commit comments

Comments
 (0)