使用Yaml文件的头盔配置映射

时间:2019-05-22 16:45:04

标签: kubernetes kubernetes-helm

我正在尝试访问头盔模板中的文件作为配置映射,如下所示。我收到如下错误。

但是,当我的application.yml没有嵌套对象(例如,名称:test)时,它可以工作。关于我可能做错了什么的任何想法?

config-map.yaml:

apiVersion: v1
kind: ConfigMap
metadata:
 name: {{ .Release.Name }}-configmap

data:
 {{.Files.Get “application.yml”}}

application.yml:

some-config:
 application:
   name: some-application-name

错误:

*ConfigMap in version “v1" cannot be handled as a ConfigMap: v1.ConfigMap.Data: ReadString: expects ” or n, but found {, error found in #10 byte of ...|ication”* 

2 个答案:

答案 0 :(得分:1)

好像您的application.yaml文件上有缩进问题。也许无效的YAML?如果我尝试使用与您完全相同的文件,则会得到以下信息:

○ → helm template ./mychart -x templates/configmap.yaml
---
# Source: mychart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
 name: release-name-configmap
data:
  some-config:
 application:
   name: some-application-name

答案 1 :(得分:0)

根据documentation

  

模板应使用两个空格缩进(不要使用制表符)。   模板指令的左括号和右括号之间应有空格。

最终它应该看起来像:

{{ .Files.Get "application.yml" | nindent 2 }}
or 
{{- .Files.Get "application.yml" | nindent 2 }}
to chomp whitespace on the left