yaml - 如何删除 .toYaml 在 helm 中添加的新行?
问题描述
我在舵图的 values.yaml 中添加了以下部分:
extraEnv:
- name: APPSERVER_RETURN_CLIENT_ERRORS
value: true
并在 deployment.yaml 中使用这些值作为:
env:
- name: DYNA_GATEWAY_HOST
value: "$(DYNAGATEWAY_SERVICE_HOST)"
{{- with .Values.extraEnv }}
{{- toYaml . | nindent 12 }}
{{- end }}
但是当它读取时,它会在 env 部分之后附加一个新行:
imagePullPolicy: Always
env:
- name: DYNA_GATEWAY_HOST
value: "$(DYNAGATEWAY_SERVICE_HOST)"
- name: APPSERVER_RETURN_CLIENT_ERRORS
value: true
ports:
我该如何解决这个问题?
解决方案
Sprigtrim
函数将删除前导和尾随空格。就管道而言,您希望在nindent
将前导换行符放在其前面之前执行此操作。
{{- toYaml . | trim | nindent 12 }}
如果您知道toYaml
将始终包含尾随换行符(它会在.Values.extraEnv
非空列表或字典时出现),您的另一个选择是尝试抑制它周围的空格
{{- with .Values.extraEnv }}
{{- toYaml . | nindent 12 }}
{{/* vvv add this hyphen */}}
{{- end -}}
但这可能会干扰下一行的缩进。
推荐阅读
- microsoft-graph-api - OneNote Graph API:获取部分的顺序
- c# - 将不可预测的 JSON 属性反序列化为字符串
- python - IndexError:无法从空轴执行非空操作
- jquery - 如何在表格单元格中添加弹出框?
- c - How would I avoid using a goto statement here?
- sql-server - 对标签进行分组并将数据从 Python 导出回 SQL Server
- c# - 如何在 C# WPF 应用程序中播放同步的多通道音频和视频?
- c - 切割顶点(或)关节点
- azure - Migration From ASM to ARM Load Balancer
- sql - 如何在 SQL 中找到字符串数据的最小值