Sam*_*afa 5 argo argo-workflows
在 Argo 工作流程中,我有一个循环,如果尚未提供上一步的输出,我需要继续运行循环。到目前为止,我找不到任何方法来执行这个简单的空/空检查。以下“当”表达式:
当:“'{{steps.wait-completion.outputs.parameters.result}}'==''”
永远不会按预期计算,因为如果尚未提供值,Argo 将按原样返回标签名称(不被替换),然后我得到:
'{{steps.wait-completion.outputs.parameters.result}}' == ''' 评估为 false
这是一个错误还是一个功能?我有什么想法可以从“when”表达式中执行这样的检查吗?我还尝试使用“默认”标签来设置默认值,但它似乎被挂起步骤忽略(另一个错误或另一个功能?)
我真的很感激这里的一些想法。提前致谢!
我尝试过的:
当:“'{{steps.wait-completion.outputs.parameters.result}}'==''”
我所期望的:
如果尚未提供输出参数“result”,则上述表达式的计算结果为 true。
我得到了什么:
'{{steps.wait-completion.outputs.parameters.result}}' == ''' 评估为 false
下面是一个简单的示例,演示如何检查子句中when以及三元表达式中的空参数。
显然,由于该子句,该"blank"值永远不会显示在,中,但我想展示它是如何完成的,因为它在过去给我带来了悲伤。whalesaywhen
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
generateName: example-
namespace: <your_namespace>
spec:
entrypoint: main
serviceAccountName: <your_service_account>
arguments:
parameters:
- name: name
default: ""
templates:
- name: main
inputs:
parameters:
- name: name
steps:
- - name: say
arguments:
parameters:
- name: name
value: "{{inputs.parameters.name}}"
template: whalesay
when: >-
{{= workflow.parameters.name != "" }}
- name: whalesay
inputs:
parameters:
- name: "name"
container:
image: docker/whalesay
command: [cowsay]
args:
- >-
{{= inputs.parameters.name == "" ? "blank" : inputs.parameters.name }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1308 次 |
| 最近记录: |