在 Argo Workflow 中使用 Jinja 模板控制流
Using Jinja Template control flow with Argo Workflow
我有一个与 Argo Workflow & JINJA 模板相关的查询:
我知道 Argo 工作流支持 JINJA 模板的表达式,例如:{{ ... }},
但是 Argo 工作流是否也支持 JINJA 模板控制结构,如:{% ... %} ...... 还是不?
我正在努力处理一个用例,我需要在“单一”WorkflowTemplate 中添加以下语句
{% if inputs.parameters.resources.gpu == 1 %}
nvidia.com/gpu: {{ inputs.parameters.resources.gpu }}
{% end %}
Argo 工作流程does not currently support Jinja control structures。
如果您不介意代码重复,一种解决方法是使用 conditionals 实现 gpu == 1
和 gpu != 1
分支(作为不同的步骤)。
您也可以使用 podSpecPatch
。它是要应用于 pod 规范的补丁的 JSON 字符串表示。对于 JSON 中的简单变体,您可以使用 Jinja 字符串模板。对于更复杂的突变,您可以在一个步骤中生成 JSON,然后将其用作输出参数。
我有一个与 Argo Workflow & JINJA 模板相关的查询:
我知道 Argo 工作流支持 JINJA 模板的表达式,例如:{{ ... }}, 但是 Argo 工作流是否也支持 JINJA 模板控制结构,如:{% ... %} ...... 还是不?
我正在努力处理一个用例,我需要在“单一”WorkflowTemplate 中添加以下语句
{% if inputs.parameters.resources.gpu == 1 %}
nvidia.com/gpu: {{ inputs.parameters.resources.gpu }}
{% end %}
Argo 工作流程does not currently support Jinja control structures。
如果您不介意代码重复,一种解决方法是使用 conditionals 实现 gpu == 1
和 gpu != 1
分支(作为不同的步骤)。
您也可以使用 podSpecPatch
。它是要应用于 pod 规范的补丁的 JSON 字符串表示。对于 JSON 中的简单变体,您可以使用 Jinja 字符串模板。对于更复杂的突变,您可以在一个步骤中生成 JSON,然后将其用作输出参数。