[[2021-06-18_Fri]] #argo [[Argo Workflow ループ]] をネストしてループを組めるのかどうか。 [argo-workflows/parallelism-nested.yaml at master · argoproj/argo-workflows · GitHub](https://github.com/argoproj/argo-workflows/blob/master/examples/parallelism-nested.yaml) の例を参考にすると、nested loopを組めそう。 1. 外側のループで、parallel-listを展開しながら、seq-listをseq-workerへまとめて渡す。 2. 内側のループで、seq-workerは、seq-listを展開しながら、parallel-id をone-jobへ渡す。 3. one-jobを実行する。 ```yaml apiVersion: argoproj.io/v1alpha1 kind: Workflow metadata: generateName: parallelism-nested- spec: arguments: parameters: - name: seq-list value: | ["a","b","c","d"] - name: parallel-list value: | [1,2,3,4] entrypoint: parallel-worker templates: - name: parallel-worker inputs: parameters: - name: seq-list - name: parallel-list steps: - - name: parallel-worker template: seq-worker arguments: parameters: - name: seq-list value: "{{inputs.parameters.seq-list}}" - name: parallel-id value: "{{item}}" withParam: "{{inputs.parameters.parallel-list}}" - name: seq-worker parallelism: 1 inputs: parameters: - name: seq-list - name: parallel-id steps: - - name: seq-step template: one-job arguments: parameters: - name: parallel-id value: "{{inputs.parameters.parallel-id}}" - name: seq-id value: "{{item}}" withParam: "{{inputs.parameters.seq-list}}" - name: one-job inputs: parameters: - name: seq-id - name: parallel-id container: image: alpine command: ['/bin/sh', '-c'] args: ["echo {{inputs.parameters.parallel-id}} {{inputs.parameters.seq-id}}; sleep 10"] ```