manirajv06 commented on code in PR #1096:
URL: https://github.com/apache/yunikorn-core/pull/1096#discussion_r3621284176
##########
pkg/scheduler/objects/application.go:
##########
@@ -1085,8 +1085,29 @@ func (sa *Application) tryAllocate(headRoom
*resources.Resource, allowPreemption
request.setHeadroomCheckPassed(sa.queuePath)
requiredNode := request.GetRequiredNode()
+
+ // run predicates for this pod before in hand and fetch
feasible nodes
+ feasibleNodes, predicatesResult :=
request.preAllocateConditions(true)
Review Comment:
(Answering both comments for the same lines together)
Like we discussed offline, I do agree that we need to run this pod on this
node at any cost. That is the intent. But there could be chance that node might
not even fit with basic eligibility rules itself like affinity rules etc. So,
we need to run the predicate checks to do get the bare minimum checks passed in
the first place.
Inaddition, PreFilter is required as whole filter plugins works based on
`cycleState` persisted during former happens. During this PreFilter call,
`cyclestate` would be persisted and used when the filter predicate run happens
later through `tryNode` inside `tryRequiredNode`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]