yaml - 空对象不会在合并中覆盖?
问题描述
我在常用图表中使用以下部署:
{{- 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 -}}
它应该使用它来合并图表的值,如果值存在则覆盖。到目前为止,它工作正常,除了这种情况,when common/values.yaml
has :
resources:
requests:
cpu: 20m
memory: 120Mi
使用它的图表values.yaml
有:
resources: {}
因此,指定空对象,我希望删除资源块,但看起来合并不起作用,并且仍然优先考虑公共值。为什么会这样以及如何解决?
我发现合并功能在后台使用 mergo/merge 并且它不会合并空值。这里有什么解决方法?
解决方案
推荐阅读
- powershell - 连接应用程序 id 和密码时使用 powershell 处理 o365 邮箱中的电子邮件
- flutter - Flutter:如何显示来自同一个函数的多条数据
- android - R8 在构建时静默崩溃
- javascript - 使用类类型定义创建普通对象
- html - 你能帮我用这个简单的html代码吗?
- excel - 如何使用 Excel VBA 将另存为 HTML 电子邮件?
- ruby-on-rails - 如何以编程方式获取 Ruby 的标准库(或系统 gem)路径?
- xamarin - Xamarin:使用 Community TabView 显示两个页面实际上并没有正确初始化页面
- button - 选项道具中缺少材料表导出按钮
- python - python请求json参数未转换为URL参数