@@ -215,21 +215,26 @@ func rejectPodAdmissionBasedOnOSField(pod *v1.Pod) bool {
215
215
}
216
216
217
217
func removeMissingExtendedResources (pod * v1.Pod , nodeInfo * schedulerframework.NodeInfo ) * v1.Pod {
218
- podCopy := pod .DeepCopy ()
219
- for i , c := range pod .Spec .Containers {
220
- // We only handle requests in Requests but not Limits because the
221
- // PodFitsResources predicate, to which the result pod will be passed,
222
- // does not use Limits.
223
- podCopy .Spec .Containers [i ].Resources .Requests = make (v1.ResourceList )
224
- for rName , rQuant := range c .Resources .Requests {
225
- if v1helper .IsExtendedResourceName (rName ) {
226
- if _ , found := nodeInfo .Allocatable .ScalarResources [rName ]; ! found {
227
- continue
218
+ filterExtendedResources := func (containers []v1.Container ) {
219
+ for i , c := range containers {
220
+ // We only handle requests in Requests but not Limits because the
221
+ // PodFitsResources predicate, to which the result pod will be passed,
222
+ // does not use Limits.
223
+ filteredResources := make (v1.ResourceList )
224
+ for rName , rQuant := range c .Resources .Requests {
225
+ if v1helper .IsExtendedResourceName (rName ) {
226
+ if _ , found := nodeInfo .Allocatable .ScalarResources [rName ]; ! found {
227
+ continue
228
+ }
228
229
}
230
+ filteredResources [rName ] = rQuant
229
231
}
230
- podCopy . Spec . Containers [i ].Resources .Requests [ rName ] = rQuant
232
+ containers [i ].Resources .Requests = filteredResources
231
233
}
232
234
}
235
+ podCopy := pod .DeepCopy ()
236
+ filterExtendedResources (podCopy .Spec .Containers )
237
+ filterExtendedResources (podCopy .Spec .InitContainers )
233
238
return podCopy
234
239
}
235
240
0 commit comments