首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >helm -错误将YAML转换为JSON: yaml:第29行:在此上下文中不允许映射值

helm -错误将YAML转换为JSON: yaml:第29行:在此上下文中不允许映射值
EN

Stack Overflow用户
提问于 2021-06-29 12:00:04
回答 1查看 5.9K关注 0票数 1

用同一个deployment.yml文件的顶部在temp中定义标签-

代码语言:javascript
运行
复制
{{- define "chart.labels" }} 
  version: v1.0
  method: http
  internet: enabled
{{- end }}

我在模板文件夹里有deployment.yml文件-

代码语言:javascript
运行
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: app1-deployment
  namespace: {{ .Values.global.namespace }}
  labels:
    app: app1
    type: microservice1
spec:
  replicas: 3
  selector:
    matchLabels:
      app: app1
      type: microservice1
  strategy:
    type: {{ .Values.global.strategytype }}
  template:
    metadata:
      labels:
        app: app1
        type: microservice1
        {{- template "chart.labels" }}

这两种方法-一种来自关键字模板(下面代码的最后一行)

和第二个包含关键字,我试图调用模板。

代码语言:javascript
运行
复制
{{include "chart.labels" . | indent 8 }}

  • 我得到的是错误(当我使用关键字模板调用模板时)。

YAML错误: YAML解析图表/模板/部署. YAML上的错误:将YAML转换为JSON的错误: yaml:第27行:未找到预期键helm.go:81:调试错误将YAML转换为JSON: yaml:第27行:未在图表/模板/部署.YAML

helm.sh /helm/v3/pkg/Relaseutil.SortManifest helm.sh上找到预期的密钥YAML解析错误/helm/v3/pkg/releaseutil/manifest_sorter.go:106 helm.sh/helm/v3/pkg/action.(*Configuration).renderResources helm.sh/helm/v3/pkg/action/action.go:165 helm.sh/helm/v3/pkg/action。(*安装).Run helm.sh/helm/v3/pkg/action/install.go:247

  • 获得另一个错误(当我使用关键字调用模板时)

YAML错误: YAML解析图表/模板/部署. YAML上的错误:将YAML转换为JSON: yaml:第29行:在此上下文中不允许映射值-- helm.go:81:调试错误,将YAML转换为JSON: yaml:第29行:在此上下文中不允许YAML解析值,YAML解析图表/模板/部署.YAML

helm.sh/helm/v3/pkg/helm.sh/helm/v3/pkg/releaseutil/manifest_sorter.go:106 helm.sh/helm/v3/pkg/action.(*Configuration).renderResources helm.sh/helm/v3/pkg/action/action.go:165 helm.sh/helm/v3/pkg/action。(*安装).Run helm.sh/helm/v3/pkg/action/install.go:247 main.runInstall

我在这里错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-29 12:14:09

你需要跟随理智的缩进。你有:

代码语言:javascript
运行
复制
{{- define "chart.labels" }} 
  version: v1.0
  method: http
  internet: enabled
{{- end }}

注意,在下面的chart.labels定义中没有双重空间。

以下工作如下:

代码语言:javascript
运行
复制
{{- define "chart.labels" }} 
version: v1.0
method: http
internet: enabled
{{- end }}

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ include "test.fullname" . }}
  labels:
    {{- include "test.labels" . | nindent 4 }}
spec:
{{- if not .Values.autoscaling.enabled }}
  replicas: {{ .Values.replicaCount }}
{{- end }}
  selector:
    matchLabels:
      {{- include "test.selectorLabels" . | nindent 6 }}
  template:
    metadata:
    {{- with .Values.podAnnotations }}
      annotations:
        {{- toYaml . | nindent 8 }}
    {{- end }}
      labels:
      {{- include "test.selectorLabels" . | nindent 8 }}
      {{include "chart.labels" . | nindent 8 }}

编辑:或者只更改9,以匹配模板元中的chart.labels,如下所示:

代码语言:javascript
运行
复制
{{include "chart.labels" . | nindent 6 }}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68178304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档