在 Argoworkflow 中,无法在步骤中直接调用模板的输入参数。如果需要在步骤中使用模板的输入参数,可以通过将这些参数存储在 workflow scope 或步骤 scope 中来解决。
以下是一个示例代码,展示了如何在步骤中存储模板输入参数:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
name: my-workflow
spec:
entrypoint: my-entrypoint
templates:
- name: my-template
inputs:
parameters:
- name: my-param
type: string
steps:
- name: my-step
template: my-sub-template
arguments:
parameters:
- name: my-local-param
value: "{{inputs.parameters.my-param}}"
- name: my-sub-template
inputs:
parameters:
- name: my-local-param
type: string
container:
image: busybox
command: [sh, -c]
args: ["echo 'my-param is $my-local-param'"]
arguments:
parameters:
- name: my-workflow-param
value: "hello world"
tasks:
- name: my-task
template: my-template
arguments:
parameters:
- name: my-param
value: "{{workflow.parameters.my-workflow-param}}"
在这个示例中,my-workflow 的参数 my-workflow-param 存储在 workflow 的 scope 中。然后,在 my-template 中,参数 my-workflow-param 通过 arguments 的方式传递到 my-sub-template 中,作为 my-local-param 的值。在 my-sub-template 中,使用 $my-local-param 引用 my-local-param 的值,以输出 my-workflow-param 的值。
通过这种方式,我们可以在 Argo Workflow 的步骤中使用模板的输入参数。