我有一个输出工件的工作流模板,该工件必须作为输入传递到另一个工作流模板。我们怎样才能做到这一点?我按照下面的方法不起作用
这里是
WorflowTemplate1.yaml
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
name: arfile
spec:
entrypoint: main
templates:
- name: main
volumes:
- name: vol
emptyDir: {}
inputs:
parameters:
script:
image: "ubuntu"
volumeMounts:
- name: vol
mountPath: "{{inputs.parameters.Odir}}"
command: ["bash"]
source: |
#!/usr/bin/env bash
echo "This is artifact testing" > /tmp/arfile
outputs:
parameters:
- name: arfile
path: "{{inputs.parameters.Odir}}/arfile"
这里是
WorkflowTemplate2.yaml
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
name: bfile
spec:
entrypoint: main
templates:
- name: main
volumes:
- name: vol
emptyDir: {}
inputs:
parameters:
- name: image
value: "ubuntu"
- name: Odir
value: "/tmp"
artifacts:
- name: arfile
path: /tmp/arfile
container:
image: "ubuntu"
command: ["cat"]
args:
- /tmp/arfile
这是调用上述两个工作流程模板的工作流程。我无法从此工作流程将工作流程模板1 的工件传递到工作流程模板2。
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: apr-
spec:
entrypoint: main
templates:
- name: main
outputs:
artifacts:
- name: arfile
from: "tasks['dfile'].outputs.artifacts.arfile"
dag:
tasks:
- name: dfile
templateRef:
name: arfile
template: main
arguments:
parameters:
- name: bimg
value: "ubuntu"
- name: bci
depends: dfile
templateRef:
name: bfile
template: main
arguments:
parameters:
- name: img
value: "ubuntu"
artifacts:
- name: arfile
from: "{{tasks.dfile.outputs.artifacts.arfile}}"
我在这里做错了什么?
我想我发现了问题。我需要在输出代码块中的
artifacts
中使用 parameters
而不是 WorkflowTemplate1.yaml
这是修复方法
outputs:
artifacts:
- name: arfile
path: "{{inputs.parameters.Odir}}/arfile"