- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以使用 Helm 部署 Argo 工作流程?当我执行 helm install
Error: UPGRADE FAILED: parse error at(workflows/templates/my_dag.yaml:47): function "workflow" not defined
yaml 本身具有带有 {{..}}
的 Argo 和 Helm 插值。我明白为什么会失败。有没有办法解决这个问题?
我看过 this但它看起来不像我想做的事情,因为它会改变语法。
最佳答案
这是可能的。我一直在一个定期部署 Helm 模板化工作流模板的团队中。
有两种方法可以解决 Helm/Argo 模板标签冲突。 (如您所知,问题在于 Helm 的 Go 模板语言和 Argo 的模板语言都使用 {{}}
来表示模板区域。)
第一种方法是小心地嵌套标签。例如,如果我想使用 {{steps.hello-world.result}}
作为 Argo-template,我可以将其写为 {{`{{steps.hello-world .result}}`}}
。外部 {{
告诉 Helm 开始解释模板化代码。反引号告诉 Helm 从字面上解释反引号分隔的内容。最后,内部的 {{
作为工作流的纯文本部分安装在集群中,并最终被 Argo 解释为模板。
这里是 arguments-parameters example 的修改版本修改为与 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}}`}}"]
您链接的博客文章中描述了第二种解决方法。这种方法确实改变了语法。第一种方法使用看起来很有趣的语法,但从技术上讲,它仍然只是 Helm 和 Argo 的默认语法。
如果 {{`{{yikes}}`}}
解决方法不能解决您的错误消息,请发布整个工作流程(或编辑/简化版本),我很乐意看看。
相关:
以上内容适用于 Argo-in-Helm (Jinja2-in-Go) 模板。如果您需要 somethingelse-in-Argo (somethingelse-in-Jinja2) 模板,其中 somethingelse 也使用 {{
,请查看此答案:How to escape "{{" and "}}" in argo workflow
关于kubernetes-helm - 如何在 Helm 中使用 Argo Workflows 模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64802290/
我遵循 Argo 工作流程的 Getting Started文档。一切都很顺利,直到我运行第一个示例工作流程,如 4. Run Sample Workflows 中所述.工作流只是停留在挂起状态: v
我正在尝试删除(并重新创建)Argo 命名空间,但它不会完全删除,因为我尝试在那里启动事件源和事件总线。现在这些不会删除。 我试图通过 yaml 和单独删除它们 - 还没有成功。 令人沮丧的结果是我无
当我使用 argo cron delete 删除 Argo cron 工作流时,根据我的观察,所有以前的工作流(已完成以及仍在运行的)似乎也将被删除。不过我不太确定,而且我还没有找到比 https:/
我正在尝试从 argo/argo-events 中的发布请求触发预先存在的 ClusterWorkflowTemplate。 我一直在关注示例 here ,但我不想在传感器中定义工作流程-我想将其分开
我有下面提到的示例 Argo DAG。如下所示,我对每个任务的参数值进行了硬编码。每个任务使用不同的参数值。我知道 Argo 提供了一种以 JSON 或 YAML 格式提交参数文件以动态传递参数值的方
我正在关注 Argo GitHub 上的示例,但是当我将模板移动到步骤中时,我无法更改消息的参数。 apiVersion: argoproj.io/v1alpha1 kind: Workflow me
我安装了 Argo Workflow 的默认 Helm chart ,仅将 init.serviceAccount 配置为我创建的 argo-sa。 (具有足够授权的ServiceAccount) 但
我的 Argo 工作流程有两个步骤,第一个在 Linux 上运行,第二个在 Windows 上运行 apiVersion: argoproj.io/v1alpha1 kind: WorkflowTem
我尝试掌握 Argo 进行 json 解码。在文档中有解码功能的例子 extension User: Decodable { static func decode(j: JSON) -> Deco
本文整理了Java中com.argo.yaml.YamlTemplate类的一些代码示例,展示了YamlTemplate类的具体用法。这些代码示例主要来源于Github/Stackoverflow/M
本文整理了Java中com.argo.yaml.YamlMap类的一些代码示例,展示了YamlMap类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从
我正在尝试访问作为输入工件传递给脚本模板的文件的内容(json 数据)。它失败并出现以下错误 NameError: name 'inputs' is not defined。您是说:“输入”吗? 我的
我创建了一个集群工作流模板,它将执行一些任务。我将使用最后一步的输出作为当前的工作流程参数。当我引用此模板时,我不知道如何从集群工作流任务/步骤中获取 output。 集群工作流模板 apiVersi
我正在尝试 Argo 工作流程并想了解如何卡住步骤。假设我有 3 步工作流程,而工作流程在第 2 步失败。所以我想使用成功的第 1 步工件重新提交第 2 步中的工作流。我怎样才能做到这一点?我在文档的
我正在使用 Argo 并且对工作流示例的工作流程有疑问。 ( https://github.com/argoproj/argo-workflows/blob/master/examples/workf
我有一个遍历 JSON 数组的 Argo 工作流。当列表变得太大时,我会收到如下错误: time="some-time" level=fatal msg="Pod \"some-pod-name\"
如果字符串以特定子字符串开头,我想在 Argo 工作流中执行任务。例如,我的字符串是 tests/dev-or.yaml 如果我的字符串以 tasks/ 开头,我想执行任务 这是我的工作流程,但条件未
Argo 允许基于先前步骤的输出动态生成并行工作流步骤。 此处提供了此动态工作流生成的示例:https://github.com/argoproj/argo-workflows/blob/master
如果字符串以特定子字符串开头,我想在 Argo 工作流中执行任务。例如,我的字符串是 tests/dev-or.yaml 如果我的字符串以 tasks/ 开头,我想执行任务 这是我的工作流程,但条件未
我正在尝试使用 Argo ( https://github.com/thoughtbot/Argo ) 将 JSON 中的数据解码为非常通用的结构: struct ValueBox { let
我是一名优秀的程序员,十分优秀!