-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: Only apply execution control to nodes that are not part of exit handler. #13016
fix: Only apply execution control to nodes that are not part of exit handler. #13016
Conversation
1399849
to
6cba1c9
Compare
5d5c40c
to
21de6e7
Compare
This comment was marked as spam.
This comment was marked as spam.
make some comments in pr(#13185) about
|
I think we can do it this way: keep the existing logic of |
01f47cc
to
ccbc50d
Compare
A for loop or recursion is needed here. Here's a modification of my code based on yours // IsPartOfExitHandler returns whether node is part of exit handler.
func (woc *wfOperationCtx) IsPartOfExitHandler(node wfv1.NodeStatus) (bool, error) {
tmpNode := node
for !tmpNode.IsExitNode() {
if tmpNode.BoundaryID == "" {
return false, nil
}
// get boundary node
boundaryNode, err := woc.wf.Status.Nodes.Get(tmpNode.BoundaryID)
if err != nil {
return false, err
}
tmpNode = *boundaryNode
}
return true, nil
} |
cb2397a
to
ac8af9a
Compare
797cdaf
to
c86a807
Compare
@jswxstw can you split the agent delete into a separate PR? it's independent of the other changes here and supersedes #12679, which we both already reviewed, so that one I can review and merge almost immediately. (It's also a lot simpler/has a lot less edge cases to review than the rest) |
Thanks! Approved. Should merge once tests succeed.
Ah right. For future reference, I think you can "Request a Review" which will at least send me a notification |
c86a807
to
dbf5f8b
Compare
Signed-off-by: jswxstw <[email protected]>
Signed-off-by: oninowang <[email protected]>
…#13060 argoproj#13252 Signed-off-by: oninowang <[email protected]>
dbf5f8b
to
77ddf46
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
…handler. (argoproj#13016) Signed-off-by: jswxstw <[email protected]> Signed-off-by: oninowang <[email protected]>
…handler. (#13016) Signed-off-by: jswxstw <[email protected]> Signed-off-by: oninowang <[email protected]>
Fixes #13060
Fixes #13252
Motivation
This PR feat: Support argo plugin stop. Fixes #12333 #12441 has support plugin nodes shutdown, but HTTP node still not.
Fixes _ controller sending many pod delete requests that result in 404 response #12659Split to PR: fix: Only cleanup agent pod if exists. Fixes #12659 #13294Fixes onExit steps executed after deadline exceeded are stopped if an onExit pod spends >=10 seconds in Pending state #13060 Fixes workflow deadline is not ignored for exit handler #13252
Modifications
Modification 1
Execution control has been applied to the nodes with created pods after pod reconciliation. However, pending and suspended nodes do not have created pods, and taskset nodes use the agent pod. Mark these nodes failed when shutting down or exceeding deadline since pod reconciliation does not take effect on them.
Modification 2
Agent pod will only be created when taskset nodes exist, so do not delete it if it does not exist.Split to PR: #13294
Modification 3
Only apply execution control for nodes that are not part of exit handler:
failNodesWithoutCreatedPodsAfterDeadlineOrShutdown
:Pending
nodes will not be failed if they are part of exit handler.createWorkflowPod
: Do not setARGO_DEADLINE
if it is onExitPod.Verification
local test and e2e tests