保存 artifact 的路径被定义为 workflow template 中的一个参数。可以在 workflow template 中定义一个输出 artifact,然后将其路径作为参数传递给 workflow。例如,下面是一个 workflow template,它定义了一个名为 "my-artifact" 的输出 artifact:
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
name: my-template
spec:
arguments:
parameters:
- name: artifact-path
value: /var/run/argo/outputs/artifacts/my-artifact
templates:
- name: main
steps:
- - name: create-artifact
template: my-job
arguments:
parameters:
- name: artifact-path
value: "{{inputs.parameters.artifact-path}}"
- name: my-job
container:
image: alpine
command: ["/bin/ash"]
args: ["-c", "echo 'hello world' > {{inputs.parameters.artifact-path}}"]
outputs:
artifacts:
- name: my-artifact
path: "{{inputs.parameters.artifact-path}}"
在这个示例中,workflow 在 "main" 中调用了 "my-job",并将 artifact-path 作为参数传递给了 task。task 使用这个参数在容器内创建了一个文件,内容为 "hello world",并将文件保存到 /var/run/argo/outputs/artifacts/my-artifact 的位置,这个位置就是由 workflow 中定义的参数 artifact-path 指定的。