亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Helm 配置映射錯誤。預期的字符串;得到布爾值

Helm 配置映射錯誤。預期的字符串;得到布爾值

Go
喵喵時光機 2022-12-19 20:56:29
我有一個包含多個模板的 Helm 圖表。一個是運行良好的 configmap。但是當我想添加啟用的部分時,我收到了錯誤消息。executing "base-helm-chart/templates/configmap.yaml" at <$config>: wrong type for value; expected string; got bool這是我使用的文件:{{- if .Values.configMap.enabled }}apiVersion: v1kind: ConfigMapmetadata:  namespace: {{ .Release.Namespace }}  name: {{include "chart.fullname" .}}  labels: {{ include "chart.labels" . | nindent 4 }}data:{{- range $name, $config := .Values.configMap }}  {{ $name }}: |{{ tpl $config $ | indent 4 }}  {{- end }}  {{- end -}}值.yamlconfigMap:  enabled: true  config.json: |    food = pizza    drink = soda如果用戶想從 values.yaml 中添加配置映射,我希望用戶啟用/禁用
查看完整描述

2 回答

?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

tpl您可以添加條件以跳過另一種類型的值,然后在函數中傳遞字符串


{{- range $name, $config := .Values.configMap -}}

{{ if typeOf $config | eq "string" }}

{{ $name }}: |

{{- tpl $config $ | nindent 12 }}

{{ end }}

{{ end }}

{{ end }}

如果您還想在輸出中打印另一個鍵值,則可以使用、print或任何其他打印選項。printfprintln


{{- range $name, $config := .Values.configMap -}}

{{ if typeOf $config | eq "string" }}

{{ $name }}: |

{{- tpl $config $ | nindent 12 }}

{{- else -}}

{{ printf "%v: %v" $name $config }}

{{ end }}

{{ end }}

{{ end }}


查看完整回答
反對 回復 2022-12-19
?
森林海

TA貢獻2011條經驗 獲得超2個贊

如果用戶想從 values.yaml 中添加配置映射,我希望用戶啟用/禁用


這是否意味著默認情況下為configMap空?如果是這種情況,您可以檢查空值


{{- if .Values.configMap }}

apiVersion: v1

kind: ConfigMap

metadata:

  namespace: {{ .Release.Namespace }}

  name: {{include "chart.fullname" .}}

  labels: {{ include "chart.labels" . | nindent 4 }}

data:

{{- range $name, $config := .Values.configMap }}

  {{ $name }}: |

{{ tpl $config $ | indent 4 }}

  {{- end }}


{{- end -}}

默認情況values.yaml下是一個空字典:


configMap: {}

這樣,只有當用戶填寫時configMap,才會生成manifest。


除了這個可選的激活之外,您似乎在對值進行迭代時遇到問題,因為它們的類型不同。


您可以使用更簡單的toYaml過濾器(參見此處)


最終結果可能是這樣的:


{{- if .Values.configMap }}

apiVersion: v1

kind: ConfigMap

metadata:

  namespace: {{ .Release.Namespace }}

  name: {{include "chart.fullname" .}}

  labels: {{ include "chart.labels" . | nindent 4 }}

data:

{{- toYaml .Values.configMap | nindent 2 -}}

{{- end -}}


查看完整回答
反對 回復 2022-12-19
  • 2 回答
  • 0 關注
  • 115 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號