kubernetes - helm chart : Include multiple lines from values. yaml 到 configmap

标签 kubernetes yaml kubernetes-helm go-templates

我想创建一个 helm chart,它会生成一个如下所示的配置映射:

apiVersion: v1
kind: ConfigMap
metadata:
  name: myconfigmap
data:
  myconfigfile1.properties: |
    property11 = value11
    property12 = value12
  myconfigfile1.properties: |
    property21 = value21
    property22 = value22

而这部分应在 values.yaml 中配置:
myconfig:
  myconfigfile1.properties: |
    property11 = value11
    property12 = value12
  myconfigfile1.properties: |
    property21 = value21
    property22 = value22

现在我想遍历 myconfig 的所有 child 在 values.yaml并将它们添加到我的 Helm 模板中。到目前为止,我对这个模板的尝试:
apiVersion: v1
kind: ConfigMap
metadata:
  name: myconfigmap
data: 
  # {{- range $key, $val := .Values.myconfig}}
  # {{ $key }}: |
  #   {{ $val }}
  # {{- end }}


导致此错误消息:
$ helm install --dry-run --debug ./mychart/ --generate-name
install.go:159: [debug] Original chart version: ""
install.go:176: [debug] CHART PATH: /home/my/helmcharts/mychart
Error: YAML parse error on mychart/templates/myconfig.yaml: error converting YAML to JSON: yaml: line 11: could not find expected ':'
helm.go:84: [debug] error converting YAML to JSON: yaml: line 11: could not find expected ':'
YAML parse error on mychart/templates/myconfig.yaml

我可以通过删除 | 来避免错误之后 myconfigfile1.properties:在我的 values.yaml ,但是然后我失去了换行符,结果不是我想要的。

非常感谢您的帮助。

亲切的问候,
马丁

最佳答案

写完这个问题几分钟后,我偶然发现了 Question #62432632 convert-a-yaml-to-string-in-helm这并不能完全回答我的问题,但在它的帮助下我可以找到正确的语法。
values.yaml :

myconfig:
  myconfigfile1.properties: |-
    property11 = value11
    property12 = value12

  myconfigfile2.properties: |-
    property21 = value21
    property22 = value22

模板:
apiVersion: v1
kind: ConfigMap
metadata:
  name: myconfigmap
data: 
{{- range $name, $config := .Values.myconfig }}
  {{ $name }}: |-
{{ tpl $config $ | indent 4 }}
  {{- end }}

关于kubernetes - helm chart : Include multiple lines from values. yaml 到 configmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62438243/

相关文章:

kubernetes - 如何使用 Helm 将自定义仪表板导入grafana

docker - 如何在 Kubernetes 上部署 Elasticsearch?

ruby-on-rails - Ruby on Rails :serialize UTF8 problem

rust - 如何将 yaml-rust 枚举存储到结构的实例中?

kubernetes - 如何显示 helm 修订版的完整描述?

kubernetes - Helm升级遇到失败似乎是因为configmap限制​​超过

kubernetes - k8s:服务未更改但未列出

kubernetes - 如何使用 Terraform 在 AWS EKS 上为 kubernetes 设置 letencrypt 证书颁发者

kubernetes - 从 pod 内部列出 pod 禁止

javascript - 在中间人中使用全局变量?即网站标题