【问题标题】:Helm Config-Map with yaml file带有 yaml 文件的 Helm Config-Map
【发布时间】:2019-05-24 18:57:44
【问题描述】:

我正在尝试以配置映射的形式访问 helm 模板中的文件,如下所示。我收到如下错误。

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

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”* 

【问题讨论】:

  • 感谢 Rico 的格式更新。
  • 所以,我能够修复它。问题是缩进错误,通过添加 '{{ .Files.Get "application.yml" | nindent 4}}'
  • 太好了,我用你指定的相同文件添加了我看到的内容

标签: kubernetes kubernetes-helm


【解决方案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

【讨论】:

    【解决方案2】:

    根据documentation

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

    最后应该是这样的:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-25
      • 1970-01-01
      • 2021-10-06
      • 1970-01-01
      • 2020-12-10
      • 2020-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多