簡體   English   中英

Helm - 如何通過 values.yaml 添加標簽塊

[英]Helm - How to add a label block through values.yaml

我有簡單的掌舵圖。 我有一個labels:我需要在Deployment中引用的塊

這是我的values.yaml

labels:
    app: test-app
    group: test-group
    provider: test-provider

templates/deployment.yaml中,我需要添加上面的整個labels塊。 所以我做了;

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: {{ include "accountmasterdata.fullname" . }}
  namespace: {{ .Values.namespace }}
  labels:
  {{ .Values.labels | nindent 4 }}

  {{- include "accountmasterdata.labels" . | nindent 4 }} 

但我收到以下錯誤

價值類型錯誤; 預期的字符串; 得到地圖[字符串]接口{}

有人可以幫我做兩件事:

  1. 我該如何解決這個問題

  2. 在它說{{- include "accountmasterdata.labels". | nindent 4 }} {{- include "accountmasterdata.labels". | nindent 4 }} {{- include "accountmasterdata.labels". | nindent 4 }} ,我在哪里可以看到accountmasterdata.labels值? 以及如何覆蓋那些?

謝謝!

Variables ”文檔中介紹了迭代映射:

對於同時具有鍵和值的數據結構,我們可以使用范圍來獲取兩者。 例如,我們可以像這樣循環 through.Values.favorite:

 apiVersion: v1 kind: ConfigMap metadata: name: {{.Release.Name }}-configmap data: myvalue: "Hello World" {{- range $key, $val:=.Values.favorite }} {{ $key }}: {{ $val | quote }} {{- end }}

因此,在您的模板中,您將像這樣處理.Values.labels的值:

  labels:
{{- range $name, $value := .Values.labels }}
    {{ $name | quote }}: {{ $value | quote }}
{{- end -}}

在它說 {{- include "accountmasterdata.labels" 的行中。 | nindent 4 }},在哪里可以看到 accountmasterdata.labels 值? 以及如何覆蓋那些?

這是您正在編寫的模板嗎? 如果是這樣,您在哪里定義這些值? 大概在您的templates/目錄中存在一個包含以下內容的文件:

{{- define "accountmasterdata.labels" -}}
...
{{- end -}}

該塊的內容是將在參考點插入的內容。


最后,在您的模板中,您有:

namespace: {{ .Values.namespace }}

但是您可能想改用.Release.Namespace

namespace: {{ .Release.Namespace | quote }}

完成上述更改后,我最終得到:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: {{ include "accountmasterdata.fullname" . }}
  namespace: {{ .Release.Namespace | quote }}
  labels:
{{- range $name, $value := .Values.labels }}
    {{ $name | quote }}: {{ $value | quote }}
{{- end -}}
{{- include "accountmasterdata.labels" . | nindent 4 }} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM