Argo工作流将大量标准输出输出到输入文件



我正在尝试使用一个步骤中的stdout作为另一个步骤的文件输入。

由于输出相当大,我得到了错误argument list too long

...
spec:
templates:
- name: main
steps:
- - name: big-output
...
- - name: print
template: head-query
arguments:
parameters:
- name: query-result
raw:
data: "{{steps.big-output.outputs.result}}"
- name: head-query
inputs:
parameters:
- name: query-result
path: /input/query.txt
raw:
data: "{{inputs.parameters.query-result}}"
container:
image: alpine
command: [head]
args:
- /input/query.txt

stdout放入文件的正确方法是什么?是否有一些方法可以避免修改具有大输出的步骤?

只要输出不超过输出参数的256kb限制,您的方法就应该有效。

编写的工作流是无效的,因为raw用于工件而不是参数。

如果你运行argo lint,你会得到这样的错误:

✖ in "big-parameter-" (Workflow): json: unknown field "path"
✖ 1 linting errors found!

修改工作流清单以使用工件而不是参数应该允许它工作。

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: big-parameter-
spec:
entrypoint: main
templates:
- name: main
steps:
- - name: big-output
template: big-output
- - name: print
template: head-query
arguments:
artifacts:
- name: query-result
raw:
data: "{{steps.big-output.outputs.result}}"
- name: big-output
script:
image: alpine
command:
- sh
source: |
echo "pretend this is really big"
- name: head-query
inputs:
artifacts:
- name: query-result
path: /input/query.txt
container:
image: alpine
command: [head]
args:
- /input/query.txt

最新更新