@@ -70,18 +70,61 @@ func TestResolveResourceRequests(t *testing.T) {
70
70
},
71
71
}},
72
72
want : []corev1.Container {{
73
- // All zeroed out.
74
- Resources : corev1.ResourceRequirements {Requests : allZeroQty ()},
73
+ // ResourceCPU max request
74
+ Resources : corev1.ResourceRequirements {
75
+ Requests : corev1.ResourceList {
76
+ corev1 .ResourceCPU : resource .MustParse ("10" ),
77
+ corev1 .ResourceMemory : zeroQty ,
78
+ corev1 .ResourceEphemeralStorage : zeroQty ,
79
+ },
80
+ },
75
81
}, {
76
- // Requests zeroed out, limits remain.
82
+ // ResourceMemory max request
77
83
Resources : corev1.ResourceRequirements {
78
- Requests : allZeroQty (),
84
+ Requests : corev1.ResourceList {
85
+ corev1 .ResourceCPU : zeroQty ,
86
+ corev1 .ResourceMemory : resource .MustParse ("10Gi" ),
87
+ corev1 .ResourceEphemeralStorage : zeroQty ,
88
+ },
89
+ Limits : corev1.ResourceList {
90
+ corev1 .ResourceMemory : resource .MustParse ("11Gi" ),
91
+ },
92
+ },
93
+ }, {
94
+ // ResourceEphemeralStorage max request
95
+ Resources : corev1.ResourceRequirements {
96
+ Requests : corev1.ResourceList {
97
+ corev1 .ResourceCPU : zeroQty ,
98
+ corev1 .ResourceMemory : zeroQty ,
99
+ corev1 .ResourceEphemeralStorage : resource .MustParse ("100Gi" ),
100
+ },
101
+ Limits : corev1.ResourceList {
102
+ corev1 .ResourceMemory : resource .MustParse ("100Gi" ),
103
+ },
104
+ },
105
+ }},
106
+ }, {
107
+ desc : "Max requests all with step2" ,
108
+ in : []corev1.Container {{
109
+ Resources : corev1.ResourceRequirements {
110
+ Requests : corev1.ResourceList {
111
+ corev1 .ResourceCPU : resource .MustParse ("10" ),
112
+ corev1 .ResourceMemory : resource .MustParse ("10Gi" ),
113
+ corev1 .ResourceEphemeralStorage : resource .MustParse ("100Gi" ),
114
+ },
115
+ },
116
+ }, {
117
+ Resources : corev1.ResourceRequirements {
118
+ Requests : corev1.ResourceList {
119
+ corev1 .ResourceCPU : resource .MustParse ("11" ),
120
+ corev1 .ResourceMemory : resource .MustParse ("11Gi" ),
121
+ corev1 .ResourceEphemeralStorage : resource .MustParse ("101Gi" ),
122
+ },
79
123
Limits : corev1.ResourceList {
80
124
corev1 .ResourceMemory : resource .MustParse ("11Gi" ),
81
125
},
82
126
},
83
127
}, {
84
- // Requests to the max, limits remain.
85
128
Resources : corev1.ResourceRequirements {
86
129
Requests : corev1.ResourceList {
87
130
corev1 .ResourceCPU : resource .MustParse ("10" ),
@@ -93,7 +136,75 @@ func TestResolveResourceRequests(t *testing.T) {
93
136
},
94
137
},
95
138
}},
96
- }} {
139
+ want : []corev1.Container {{
140
+ // All zeroed out since step 2 has max requests
141
+ Resources : corev1.ResourceRequirements {
142
+ Requests : allZeroQty (),
143
+ },
144
+ }, {
145
+ // All max requests
146
+ Resources : corev1.ResourceRequirements {
147
+ Requests : corev1.ResourceList {
148
+ corev1 .ResourceCPU : resource .MustParse ("11" ),
149
+ corev1 .ResourceMemory : resource .MustParse ("11Gi" ),
150
+ corev1 .ResourceEphemeralStorage : resource .MustParse ("101Gi" ),
151
+ },
152
+ Limits : corev1.ResourceList {
153
+ corev1 .ResourceMemory : resource .MustParse ("11Gi" ),
154
+ },
155
+ },
156
+ }, {
157
+ // All zeroed out since step 2 has max requests
158
+ Resources : corev1.ResourceRequirements {
159
+ Requests : allZeroQty (),
160
+ Limits : corev1.ResourceList {
161
+ corev1 .ResourceMemory : resource .MustParse ("100Gi" ),
162
+ },
163
+ },
164
+ }},
165
+ },
166
+ {
167
+ desc : "Only one step container with only memory request value filled out" ,
168
+ in : []corev1.Container {{
169
+ Resources : corev1.ResourceRequirements {
170
+ Requests : corev1.ResourceList {
171
+ corev1 .ResourceMemory : resource .MustParse ("10Gi" ),
172
+ },
173
+ },
174
+ }},
175
+ want : []corev1.Container {{
176
+ // ResourceMemory max request set. zeroQty for non set resources.
177
+ Resources : corev1.ResourceRequirements {
178
+ Requests : corev1.ResourceList {
179
+ corev1 .ResourceCPU : zeroQty ,
180
+ corev1 .ResourceMemory : resource .MustParse ("10Gi" ),
181
+ corev1 .ResourceEphemeralStorage : zeroQty ,
182
+ },
183
+ },
184
+ }},
185
+ }, {
186
+ desc : "Only one step container with all request values filled out" ,
187
+ in : []corev1.Container {{
188
+ Resources : corev1.ResourceRequirements {
189
+ Requests : corev1.ResourceList {
190
+ corev1 .ResourceCPU : resource .MustParse ("10" ),
191
+ corev1 .ResourceMemory : resource .MustParse ("10Gi" ),
192
+ corev1 .ResourceEphemeralStorage : resource .MustParse ("100Gi" ),
193
+ },
194
+ },
195
+ }},
196
+ want : []corev1.Container {{
197
+ // All max values set
198
+ Resources : corev1.ResourceRequirements {
199
+ Requests : corev1.ResourceList {
200
+ corev1 .ResourceCPU : resource .MustParse ("10" ),
201
+ corev1 .ResourceMemory : resource .MustParse ("10Gi" ),
202
+ corev1 .ResourceEphemeralStorage : resource .MustParse ("100Gi" ),
203
+ },
204
+ },
205
+ }},
206
+ },
207
+ } {
97
208
t .Run (c .desc , func (t * testing.T ) {
98
209
got := resolveResourceRequests (c .in )
99
210
if d := cmp .Diff (c .want , got , resourceQuantityCmp ); d != "" {
0 commit comments