【问题标题】:Pass JSON config variable to helm using --set [duplicate]使用 --set [重复] 将 JSON 配置变量传递给 helm
【发布时间】:2021-07-31 20:32:50
【问题描述】:
apiVersion: v1
kind: ConfigMap
metadata:
  name: app-configmap
data:
  {{- range $key, $value := .Values.envVars }}
  {{ $key }}: {{ $value | quote }}
  {{- end }}

跑步
helm upgrade my-app --install --set envVars.CREDS='{"key":"val"}'
使用上述configmap 会产生如下配置图:

CREDS = ["key":"val"]

所以它不是 JSON,而是一个数组。

我需要进行什么配置才能将其作为 JSON 传递?

【问题讨论】:

  • 我认为helm --set 不能将键设置为对象值,并且转义有点棘手。我建议编写一个单独的 YAML 文件并使用 helm install -f 传递它。

标签: kubernetes kubernetes-helm configmap


【解决方案1】:

这看起来不错,基于这个关于 yamls 中 json 对象表示的答案:https://stackoverflow.com/a/33989696/11874278

如果你想实现另一件事 - 这个键作为 json 字符串你可以这样做:

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-configmap
data:
  {{- range $key, $value := .Values.envVars }}
  {{ $key }}: >
    {{ $value }}
  {{- end }}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    • 2023-01-24
    • 2014-01-11
    • 1970-01-01
    • 2016-02-23
    • 2013-01-28
    相关资源
    最近更新 更多