我有一个5步argo工作流程:步骤1:在云上创建虚拟机第二步:做一些工作第三步:做更多的工作第四步:做一些进一步的工作第五:删除虚拟机
以上步骤都很耗时。无论出于何种原因,运行中的工作流都可以通过发出stop/terminate命令来停止或终止。
我想做的是,如果在step4开始之前的任何阶段发出停止/终止命令,我想直接跳转到step4,这样我就可以清理在step1创建的VM。
有办法做到这一点吗?我想象它可能发生:
- 当停止/终止信号发出时,假设我在step2。
- 在step2上运行的pod得到一个工作流将要停止的信号。
- pods停止当前的工作并输出一个特殊的字符串,告诉下一步跳过
- 因此,step3看到step2的输出,跳过它的工作并将其传递给step4,依此类推。
- step5不考虑输入而运行并删除VM。
请告诉我这样的事情是否可以实现。
听起来好像需要不顾一切地运行第5步,这就是退出处理程序的作用。这里有一个例子。退出处理程序将在您在任何步骤"停止"时执行,但如果您终止整个工作流将被跳过。