要在Argo WorkflowTemplate中使用自由形式输入参数,可以通过在WorkflowTemplate的spec.arguments字段中定义输入参数,并在WorkflowTemplate的spec.templates中使用这些参数。
下面是一个示例,展示了如何在Argo WorkflowTemplate中使用自由形式输入参数的代码示例:
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
name: my-template
spec:
arguments:
parameters:
- name: message
description: "Input message"
templates:
- name: main
steps:
- - name: generate-message
template: generate-message
inputs:
parameters:
- name: message
outputs:
parameters:
- name: generated-message
globalName: generated-message
- name: generate-message
inputs:
parameters:
- name: message
container:
image: alpine:3.13
command: [sh, -c]
args: ["echo {{inputs.parameters.message}} > /tmp/generated-message.txt"]
volumeMounts:
- name: generated-message-volume
mountPath: /tmp/generated-message.txt
outputs:
parameters:
- name: generated-message
valueFrom:
path: /tmp/generated-message.txt
volumeClaimTemplates:
- metadata:
name: generated-message-volume
spec:
accessModes: [ReadWriteOnce]
resources:
requests:
storage: 1Gi
在上面的示例中,我们定义了一个WorkflowTemplate,并在spec.arguments中定义了一个输入参数message。然后,在spec.templates的main模板中,我们使用了该输入参数。在generate-message模板中,我们使用了该输入参数来生成一个消息,并将其保存在/tmp/generated-message.txt文件中。最后,我们将生成的消息输出为generated-message参数。
这个例子中还展示了如何使用volumeClaimTemplates来创建一个持久化卷,并将生成的消息保存到该卷中。
要使用这个WorkflowTemplate,可以通过以下命令创建一个Workflow实例:
argo submit --from workflowtemplate/my-template --parameter message="Hello, Argo!"
这将创建一个名为my-template的Workflow实例,并将输入参数message设置为"Hello, Argo!"。
希望这个示例可以帮助您理解如何在Argo WorkflowTemplate中使用自由形式输入参数。