在 Argo Workflows 中定义工作流之间的依赖关系

Define dependencies between workflows in Argo Workflows

我正在尝试安排一个工作流程 C,当工作流程 AB 都完成他们的每日 运行。

有没有不使用 workflow of workflows 模式的方法来做到这一点?

我假设 AB 运行 并行。

如果您可以将工作流 AB 合并到一个工作流 AB 中,同时执行 AB,那么您可以使用mutex 延迟 C 的执行,直到 AB 完成。

apiVersion: argoproj.io/v1alpha1
kind: CronWorkflow
metadata:
  name: AB
spec:
  schedule: "* * * * *"
  workflowSpec:
    entrypoint: AB
    synchronization:
      mutex:
        name: AB-C-mutex
    templates:
      - name: AB
        steps:
          - - name: A
              templateRef:
                name: A
                template: A
            - name: B
              templateRef:
                name: B
                template: B
---
apiVersion: argoproj.io/v1alpha1
kind: CronWorkflow
metadata:
  name: C
spec:
  schedule: "* * * * *"
  workflowSpec:
    entrypoint: C
    synchronization:
      mutex:
        name: AB-C-mutex   
 templates:
# The rest of the workflow.

您需要确保 CAB 之后启动足够长的时间,以便 AB 申请互斥锁。

如果 Argo 支持每个工作流使用多个 mutex/semaphore,则您可以避免将 AB 合并到一个工作流中。目前,有 no plans to support that.

另一种选择是将所有三个工作流程合并为一个工作流程(AB 运行 在 C 之前并行)。