是否有可能以某種方式統一范圍循環?假設我們有這樣的清單:
values.yaml
////
multiple:
stage1:
key: value
stage2:
key: value
///
configmap.yaml
{{- range $application,$value := $.Values.multiple }}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ $application }}-{{ $.Release.Name }}
data:
something...
{{- end }}
因此,將創建2個配置映射。有沒有可能繞過這樣的限制:如果這個變量不存在,那么將創建一個configmap,而不是立即退出循環?
不帶循環的configmap:
apiVersion: v1
kind: ConfigMap
metadata:
name: myrelease
data:
something values...
configmap with loop:
apiVersion: v1
kind: ConfigMap
metadata:
name: stage1-myrelease
data:
something values...
---
apiVersion: v1
kind: ConfigMap
metadata:
name: stage2-myrelease
data:
something values...
還是可以通過模板解決這個問題?如果值中有多個變量,那么是否向清單中添加一個范圍循環?
可以使用默認函數。在vaules.yaml中定義默認dict,或者使用dict函數創建一個內聯dict。
你可以把它做成一個助手模板,并使用
with else
。在_helpers.tpl中定義它:
在模板中,可以包含此內容。