首页 > 解决方案 > 在 azure 管道任务 HelmDeploy@0 中引用 helm 集的值

问题描述

我正在尝试部署一个位于 repo 中的掌舵图。

- task: HelmDeploy@0Chart"
  inputs:
    ...
    overrideValues: |
      foo.bar="$(VAL_A)"
      fiz.faz="$(VAL_B)"

它放在一起的命令如下所示。

helm upgrade \
  --install 
  --set foo.bar=baz,fiz.faz=with space \ # this whitespace is the culprint
  --wait \
  myapp ./helm-chart/

我得到的错误是这个。

Error: "helm upgrade" requires 2 arguments

Usage:  helm upgrade [RELEASE] [CHART] [flags]

我发现我在本地得到了同样的错误,当我没有在--set flag.

--set foo.bar=baz,fiz.faz=with space

我从一个注入管道的秘密中获取这些信息。我如何确保它们被引用?

请注意,更改这些顺序并没有帮助。我也尝试过双引号

fiz.faz=""$(VAL_B)""

但似乎所有引号都被删除了。

标签: azureazure-devopsazure-pipelineskubernetes-helmazure-pipelines-yaml

解决方案


  • Helm 升级需要发布名称和它引用的图表。希望你已经检查过了。
  • 有时可能是由于不同的 Helm 版本,甚至是在 --set 标志中没有正确引用变量(检查分配的变量的拼写)。
  • overrideValues字段可能不接受多行覆盖变量。

根据 文档,多个值应该用逗号分隔 key1=val1,key2=val2。

前任:

overrideValues : 'foo.bar=$(VAL_A),fiz.faz=$(VAL_B)’

对于单值

前任:

overrideValues: 'foo.bar=$(value)'

您可以尝试使用 arguments 字段并将变量作为参考 2 传递。

arguments: >
          --set foo=bar
          --set foo1=bar1
          --set foo2=bar2

另请参阅设置的格式和限制

参考:

  1. 文件-azure-pipelines-github
  2. multiline-overridevalues-helm-SO 参考

推荐阅读