如何使用 --set 为 helm 中的数组传递名称中带点的键? [重复]

问题描述 投票:0回答:1

假设我有这样的秘密 yaml helm 模板:

data:
  {{- range $key, $value := .Values.configs.secret.extra }}
  {{ $key }}: {{ $value | b64enc }}
  {{- end }}

当我用

--set
传递一个值时,这会起作用:

--set 'configs.secret.extra.test=testvalue'

这将生成具有预期值的关键测试。但是如何定义名称中带有点(“.”)的键,例如

oidc.keycloak.clientSecret

--set 'configs.secret.extra.oidc.keycloak.clientSecret=123'

--set 'configs.secret.extra[0].oidc.keycloak.clientSecret=123'

...都会产生

wrong type for value; expected string; got map[string]interface {}

像这样:

--set 'configs.secret.extra={oidc.keycloak.clientSecret=123}'

它将生成一个带有键

0
和值
oidc.keycloak.clientSecret=123
的条目,后跟类似
cannot overwrite table with non table for configs.secret.extra (map[])

的警告

有什么建议吗?

kubernetes-helm
1个回答
0
投票

...玩了一些之后,我发现“。”可以很容易地逃脱,现在可以了:

--set 'configs.secret.extra.oidc\.keycloak\.clientSecret=xxx

© www.soinside.com 2019 - 2024. All rights reserved.