假设我有这样的秘密 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[])
的警告
有什么建议吗?
...玩了一些之后,我发现“。”可以很容易地逃脱,现在可以了:
--set 'configs.secret.extra.oidc\.keycloak\.clientSecret=xxx