如何将一个 WorkflowTemplate 的工件从 argo 中的工作流程传递到另一个 WorkflowTemplate

问题描述 投票:0回答:1

我有一个输出工件的工作流模板,该工件必须作为输入传递到另一个工作流模板。我们怎样才能做到这一点?我按照下面的方法不起作用

这里是

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}}"

我在这里做错了什么?

kubernetes argocd argo-workflows argo
1个回答
2
投票

我想我发现了问题。我需要在输出代码块中的

artifacts
中使用
parameters
而不是
WorkflowTemplate1.yaml

这是修复方法

outputs:
  artifacts:
    - name: arfile
      path: "{{inputs.parameters.Odir}}/arfile"
© www.soinside.com 2019 - 2024. All rights reserved.