如何解决头盔包括来自values.yml的格式化地图
我的舵图有一个简单的values.yml
文件:
DbMigration:
Resources:
requests:
memory: 256Mi
limits:
memory: 512Mi
在我的数据库迁移工作的定义中,我有这个:
spec:
activeDeadlineSeconds: 120
template:
spec:
restartPolicy: Never
containers:
- name: myMigrate
image: myRepo/myService:0.0.1
imagePullPolicy: Always
resources:
requests:
{{- range $key,$value := $.Values.DbMigration.Resources.requests }}
{{ $key }}: {{ $value }}
{{- end }}
limits:
{{- range $key,$value := $.Values.DbMigration.Resources.limits }}
{{ $key }}: {{ $value }}
{{- end }}
是否有任何方法可以简化resources
区域,以便仅包含$.Values.DbMigration.Resources
中的所有数据?我所拥有的作品,但是必须有一种更简洁的方法。我尝试以类似以下方式使用toYaml
函数:
{{- toYaml $.Values.DbMigration.Resources }}
但是,结果是:
错误:升级失败:myTemplate.yaml上的YAML解析错误:将YAML转换为JSON时发生错误:yaml:第30行:在此上下文中不允许映射值
解决方法
有多种方法可以实现这一目标。其中之一是,无需使用range
,只需将values.yaml更改为
DbMigration: |
resources:
requests:
memory: 256Mi
limits:
memory: 512Mi
,然后将迁移模板更改为
resources:
{{- .Values.DbMigration | indent 12 }}
请相应地更改缩进。
另一种方法是使用range
和toYaml
DbMigration:
Resources:
requests:
memory: 256Mi
limits:
memory: 512M
迁移模板
resources:
{{- range $key,$value := $.Values.DbMigration.Resources }}
{{ $key }}:
{{ toYaml $value }}
{{- end }}
,
如果您想按原样呈现来自values.yaml的块,那么toYaml几乎就是您所需要的。
spec:
activeDeadlineSeconds: 120
template:
spec:
restartPolicy: Never
containers:
- name: myMigrate
image: myRepo/myService:0.0.1
imagePullPolicy: Always
resources:
{{- toYaml $.Values.DbMigration.Resources | nindent 12 }}
如果您仍然遇到转换为JSON错误的情况,请尝试使用缩进功能,这就是全部。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。