kubernetes - 在 helm 模板中传递多个变量
问题描述
有没有办法传递多个变量template
或使用函数include
?在我的例子中,我遍历了一个项目列表,但在模板中我还需要这个.Release.Name
变量。
有没有办法添加$client
到.Release.Name
? 我尝试了类似的东西{{ $client.Name := .Release.Name }}
,但它会引发错误..
我有以下模板:
{{- range $client := .Values.global.clients }}
{{- with $ }}
search.service-{{ $client.clientId }}.cfg: |
{{ include "rest-api.search" $client | indent 4}}
{{- end}}
{{- end}}
rest-api.search 函数:
{{- define "rest-api.search" -}}
client.id={{ .clientId }}
id={{ .clientId }}
uri=http://{{ .Release.Name }}:11666/{index}/ws/{configuration}
default.index=quicksearch
default.configuration=form
query.sort=
query.filter=
query.dsf=word
query.lower=0
query.max=10
query.locale=de
query.query=*
# Index mapping
index.COMMON=quicksearch
index.REF=quicksearch
supportObjectGroup=true
# authorization scheme
authScheme=NONE
{{- end -}}
我感谢您的帮助。谢谢
解决方案
您可以在字典中将客户端对象与发布对象一起传递
值.yaml
global:
clients:
- name: test
clientId: test-123
configmap.yaml
{{- range $client := .Values.global.clients }}
{{$data := dict "client" $client "release" $.Release }}
search.service-{{ .clientId }}.cfg: |
{{ include "mychart.search" $data | indent 4}}
{{- end}}
_helpers.tpl
{{- define "mychart.search" -}}
client.id={{ .client.clientId }}
id={{ .client.clientId }}
uri=http://{{ .release.Name }}:11666/{index}/ws/{configuration}
default.index=quicksearch
{{- end -}}
推荐阅读
- kubernetes - 在不同的 Kubernetes 命名空间中部署如何影响 Pod 到 Pod 的通信?
- python - 将参数动态传递给 xbbg 的 bhd 函数
- c# - 如何返回 FirstOrDefault
- angular - Angular e2e:自动匹配 chromedriver 和 chrome 版本?
- php - 如何在 mysql 上实现相同的功能?sprintf('%0.2f', $value)
- vba - 如何在有表格的地方引用草稿电子邮件?
- angular - 当我单击后退按钮时,ngIf false 为 true
- amazon-web-services - 如何在 AWS Amplify 中使用自定义范围和 react native
- python - 使用python自动填充Excel列和行中的公式
- uwp - 最小化UWP应用时是否可以添加挂钩功能