如何动态传递 helm 值
How to pass helm values dynamically
我正在尝试通过另一个变量动态访问 helm 值,因为我正在利用范围功能创建多个部署。以我的部署文件的这一部分为例
{{- range $teams := .Values.teams }}
.
.
.
ports:
- containerPort: {{ .Values.deployment.backend.($teams.tag).serverPort }}
protocol: {{ .Values.deployment.backend.($teams.tag).serverProtocol }}
- containerPort: {{ .Values.deployment.backend.($teams.tag).authPort }}
protocol: {{ .Values.deployment.backend.($teams.tag).authProtocol }}
.
.
.
---
{{- end }}
values.yml 个文件
teams:
- name: TeamA
tag: teamA
- name: TeamB
tag: teamB
- name: TeamC
tag: teamC
deployment:
backend:
teamA:
serverPort: 10001
serverProtocol: TCP
authPort: 10010
authProtocol: TCP
teamB:
serverPort: 9101
serverProtocol: TCP
authPort: 9110
authProtocol: TCP
teamC:
serverPort: 9001
serverProtocol: TCP
authPort: 9010
authProtocol: TCP
我无法弄清楚如何将要评估的 $teams.tag 传递给 return containerPort 的整体价值。
感谢任何帮助。
干杯
结束使用 tpl https://helm.sh/docs/howto/charts_tips_and_tricks/#using-the-tpl-function
如果有更好的方法,欢迎提出建议
Helm本身提供了很多函数供你操作值。
这是使用 get
函数处理您的用例的一种方法。
{{- $ := . -}}
{{- range $teams := .Values.teams }}
.
.
.
ports:
- containerPort: {{ (get $.Values.deployment.backend $teams.tag).serverPort }}
protocol: {{ (get $.Values.deployment.backend $teams.tag).serverProtocol }}
- containerPort: {{ (get $.Values.deployment.backend $teams.tag).authPort }}
protocol: {{ (get $.Values.deployment.backend $teams.tag).authProtocol }}
.
.
.
---
{{- end }}
请注意,range
运算符内的范围会发生变化。因此,您需要将 .
预先分配给 $
才能访问根范围。
您还可以参考此文档 https://helm.sh/docs/chart_template_guide/function_list/,以了解有关您可以使用的函数的更多信息。
我正在尝试通过另一个变量动态访问 helm 值,因为我正在利用范围功能创建多个部署。以我的部署文件的这一部分为例
{{- range $teams := .Values.teams }}
.
.
.
ports:
- containerPort: {{ .Values.deployment.backend.($teams.tag).serverPort }}
protocol: {{ .Values.deployment.backend.($teams.tag).serverProtocol }}
- containerPort: {{ .Values.deployment.backend.($teams.tag).authPort }}
protocol: {{ .Values.deployment.backend.($teams.tag).authProtocol }}
.
.
.
---
{{- end }}
values.yml 个文件
teams:
- name: TeamA
tag: teamA
- name: TeamB
tag: teamB
- name: TeamC
tag: teamC
deployment:
backend:
teamA:
serverPort: 10001
serverProtocol: TCP
authPort: 10010
authProtocol: TCP
teamB:
serverPort: 9101
serverProtocol: TCP
authPort: 9110
authProtocol: TCP
teamC:
serverPort: 9001
serverProtocol: TCP
authPort: 9010
authProtocol: TCP
我无法弄清楚如何将要评估的 $teams.tag 传递给 return containerPort 的整体价值。
感谢任何帮助。
干杯
结束使用 tpl https://helm.sh/docs/howto/charts_tips_and_tricks/#using-the-tpl-function
如果有更好的方法,欢迎提出建议
Helm本身提供了很多函数供你操作值。
这是使用 get
函数处理您的用例的一种方法。
{{- $ := . -}}
{{- range $teams := .Values.teams }}
.
.
.
ports:
- containerPort: {{ (get $.Values.deployment.backend $teams.tag).serverPort }}
protocol: {{ (get $.Values.deployment.backend $teams.tag).serverProtocol }}
- containerPort: {{ (get $.Values.deployment.backend $teams.tag).authPort }}
protocol: {{ (get $.Values.deployment.backend $teams.tag).authProtocol }}
.
.
.
---
{{- end }}
请注意,range
运算符内的范围会发生变化。因此,您需要将 .
预先分配给 $
才能访问根范围。
您还可以参考此文档 https://helm.sh/docs/chart_template_guide/function_list/,以了解有关您可以使用的函数的更多信息。