我在通用图表中使用以下部署:
{{- define "common.deployment" -}}
{{- $common := dict "Values" .Values.common -}}
{{- $noCommon := omit .Values "common" -}}
{{- $overrides := dict "Values" $noCommon -}}
{{- $noValues := omit . "Values" -}}
{{- with merge $noValues $overrides $common -}}
...
{{- if .Values.resources }}
resources:
{{ toYaml .Values.resources | indent 12 }}
...
{{- end -}}
它应该使用它来合并图表的值,并在存在值的情况下将其覆盖。到目前为止,除common/values.yaml
具有:
resources:
requests:
cpu: 20m
memory: 120Mi
并且使用它的图表values.yaml
具有:
resources: {}
因此,指定空对象时,我希望删除资源块,但是看起来合并不能那样工作,并且仍然优先使用公共值。为什么会这样以及如何解决?
我发现在后台使用mergo / merge的合并功能,它不会合并空值。有什么解决方法?