Параметры агрегированного шага доступны через steps.STEP-NAME.outputs.parameters
. Невозможно получить доступ к агрегированному набору выходных данных для одного параметра по имени.
Это небольшое изменение в вашем рабочем процессе должно дать вам то, что вам нужно:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: loops-param-result-
spec:
entrypoint: loop-param-result-example
templates:
- name: loop-param-result-example
steps:
- - name: generate
template: gen-number-list
- - name: write
template: output-number
arguments:
parameters:
- name: number
value: "{{item}}"
withParam: "{{steps.generate.outputs.result}}"
- - name: fan-in
template: fan-in
arguments:
parameters:
- name: numbers
value: "{{steps.write.outputs.parameters}}"
- name: gen-number-list
script:
image: python:alpine3.6
command: [python]
source: |
import json
import sys
json.dump([i for i in range(20, 31)], sys.stdout)
- name: output-number
inputs:
parameters:
- name: number
container:
image: alpine:latest
command: [sh, -c]
args: ["echo {{inputs.parameters.number}} > /tmp/number.txt"]
outputs:
parameters:
- name: number
valueFrom:
path: /tmp/number.txt
- name: fan-in
inputs:
parameters:
- name: numbers
container:
image: alpine:latest
command: [sh, -c]
args: ["echo received {{inputs.parameters.numbers}}"]
Единственное изменение состояло в том, чтобы удалить .number
из {{steps.write.outputs.parameters.number}}
.
Это новый вывод:
received [{number:20},{number:21},{number:22},{number:23},{number:24},{number:25},{number:26},{number:27},{number:28},{number:29},{number:30}]
Вот проблема GitHub, где обсуждалась / создавалась агрегация выходных параметров .
Я включил предложение по улучшению для доступа к агрегированным выходным параметрам по имени.