I created a cluster workflow template, which will do some tasks. And I will use last step output as current workflow parameters. When I ref this template, I don't know how can I get the output from cluster workflow task/step.
Cluster Workflow Template
apiVersion: argoproj.io/v1alpha1
kind: ClusterWorkflowTemplate
metadata:
  name: gen-params
spec:
  templates:
  - name: tasks
    steps:
    - - name: prepare
        template: prepare
    - - name: gen-params
        template: gen-params
...     
Workflow
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  name: demo
spec:
  entrypoint: main
  templates:
  - name: main
    steps:
    - - name: gen-params
        templateRef:
          name: gen-params
          template: tasks
          clusterScope: true
    - - name: calculate
        template: calculate
        arguments:
          parameters:
          - name: params
            value: "{{steps.gen-params.steps.gen-params.outputs.result}}"  # not work
...
                Your issue is likely less about the usage of a WorkflowTemplate/ClusterWorkflowTemplate and more to do with the fact that you are attempting to access output from a "nested" workflow step.
You can achieve this by defining an output parameter of the top-level tasks template in your ClusterWorkflowTemplate which takes its value from the output result of the last step in that tasks template.
Your WorkflowTemplate would look like this:
apiVersion: argoproj.io/v1alpha1
kind: ClusterWorkflowTemplate
metadata:
  name: gen-params
spec:
  templates:
  - name: tasks
    steps:
    - - name: prepare
        template: prepare
    - - name: gen-params
        template: gen-params
    outputs:
        parameters:
          - name: "nested-gen-params-result"
            valueFrom:
              parameter: "{{steps.gen-params.outputs.result}}"
After making that change, you'll be able reference the output of the ClusterWorkflowTemplate-defined step of your top-level Workflow using {{steps.gen-params.outputs.parameters.nested-gen-params-result}}
Argo's nested-workflow example shows some other similar patterns.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With