【问题标题】:Variable number of input artifacts into a step可变数量的输入工件进入一个步骤
【发布时间】:2020-09-21 16:41:50
【问题描述】:

我有一个菱形风格的工作流程,其中一个步骤A 使用withParam: 启动可变数量的分析作业BX。作业的数量基于动态信息并且在第一步运行之前是未知的。这一切都很好,除了我还想要一个聚合器作业Y 来运行所有这些分析作业的输出:

     B  
    / \
   / C \
  / / \ \
 A-->D-->Y
  \  .  /
   \ . /
    \./
     X

B-X 的每个分析作业都会写入工件,Y 需要所有这些工件作为输入。我不知道如何为Y 指定输入。这可能吗?我尝试传入工件 keys 的 JSON 数组,但 pod 卡在 pod 初始化中。我找不到任何有关如何执行此操作的示例。

A 创建了几个由B-X 使用的工件(作为withParam: 的一部分,每个作业一个)所以我知道我的工件存储库设置正确。

B-X 的每个作业都需要大量 CPU,因此将在不同的节点上运行,所以我认为共享卷不会起作用(尽管我不太了解跨节点共享卷不同的节点)。

【问题讨论】:

    标签: argo-workflows argoproj


    【解决方案1】:

    我将问题发布为 GitHub 问题:

    https://github.com/argoproj/argo/issues/4120

    解决方案是将所有输出写入作业特定的工件路径(即相同的子目录)。然后,您将该路径指定为输入 key,并且 argo 会将所有先前的结果解压缩到一个子目录中。您可以使用{{workflow.name}} 创建唯一路径。

    这确实意味着您被限制在工件存储库中的特定目录结构中,但对我来说这是一个很小的代价。

    有关完整的工作解决方案,请参阅 sarabala1979 对 GitHub 问题的回答。

    【讨论】:

      猜你喜欢
      • 2022-01-27
      • 2022-07-26
      • 1970-01-01
      • 1970-01-01
      • 2016-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多