argoproj / argo-workflows

Workflow Engine for Kubernetes
https://argo-workflows.readthedocs.io/
Apache License 2.0
14.43k stars 3.09k forks source link

fix: Apply execution control to taskset nodes that are not part of exit handler and only delete agent pod if exists. #13016

Open jswxstw opened 3 weeks ago

jswxstw commented 3 weeks ago

Fixes #12659 Fixes #13060

Motivation

  1. This PR https://github.com/argoproj/argo-workflows/pull/12441 has support plugin nodes shutdown, but HTTP node still not.
  2. Fixes #12659
  3. Fixes #13060

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.

Modification 3

Skip execution control for exit nodes.

Verification

tooptoop4 commented 2 weeks ago

📦