Sud*_*kar 7 kubernetes-helm argoproj argo-workflows
是否可以使用 Helm 来部署 Argo 工作流程?当我执行以下操作时,我收到如下错误helm install
错误:升级失败:(workflows/templates/my_dag.yaml:47)处解析错误:函数“workflow”未定义
yaml 本身具有 Argo 和 Helm 插值{{..}}。我明白为什么会失败。有没有解决的办法?
我已经看过这个,但它看起来不像我想做的事情,因为它改变了语法。
Mic*_*haw 13
有可能的。我所在的团队定期部署 Helm 模板化的 WorkflowTemplates。
有两种方法可以解决 Helm/Argo 模板标签冲突问题。(如您所知,问题在于 Helm 的 Go 模板语言和 Argo 的模板语言都用来{{}}表示模板化区域。)
第一种方法是仔细嵌套标签。例如,如果我想用作{{steps.hello-world.result}}Argo 模板,我可以将其写为{{`{{steps.hello-world.result}}`}}. 外部{{告诉 Helm 开始解释模板化代码。反引号告诉 Helm 按字面意思解释反引号分隔的内容。最后,内部{{作为工作流的纯文本部分安装在集群中,并最终被 Argo 解释为模板。
下面是经过修改的参数-参数示例的修改版本,以便使用 Helm 进行部署。
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: arguments-parameters-
spec:
entrypoint: whalesay
arguments:
parameters:
- name: message
value: hello world
templates:
- name: whalesay
inputs:
parameters:
- name: message
container:
image: docker/whalesay:latest
command: [cowsay]
args: ["{{`{{inputs.parameters.message}}`}}"]
Run Code Online (Sandbox Code Playgroud)
您链接的博客文章中描述了第二种解决方法。这种方法确实改变了语法。第一种方法使用了一种看起来很有趣的语法,但从技术上讲它仍然只是 Helm 和 Argo 的默认语法。
如果{{`{{yikes}}`}}解决方法无法解决您的错误消息,请发布整个工作流程(或经过编辑/简化的版本),我很乐意查看。
有关的:
以上适用于 Argo-in-Helm (Jinja2-in-Go) 模板。如果您需要 somethingelse-in-Argo (somethingelse-in-Jinja2) 模板,其中 Somethingelse 也使用{{,请查看此答案:How to escape "{{" and "}}" in argoworkflow
| 归档时间: |
|
| 查看次数: |
5305 次 |
| 最近记录: |