Sac*_*hra 4 kubernetes kubernetes-helm
我试图使用 Helm Chart 来实现 Helm Kubernetes 部署。我想使用 helm 发布名称动态给出部署、应用程序和服务名称。
我已经实现了以下方法,它可以帮助我根据 helm 文件创建动态名称。
在_helper.tpl中编写以下方法
{{- define "sample-chart-getServiceName" -}}
{{- $arg1 := index . "arg1" -}}
{{- $fullName := include "sample-chart.fullname" . -}}
{{- printf "%s-%s" $fullName $arg1 -}}
{{- end -}}
Run Code Online (Sandbox Code Playgroud)
以及以下调用 yaml 文件中函数的方法
name: {{ include "sample-chart-getServiceName" (dict "arg1" "service") }}
Run Code Online (Sandbox Code Playgroud)
Helm 模板采用单个参数,并将其分配给特殊变量.。在您的示例中,您尝试用作.保存服务名称的参数以及传递给下游模板的顶级上下文sample-chart.fullname。
要解决此问题,您可以将两个参数打包到一个列表中:
{{ include "sample-chart-getServiceName" (list . (dict "arg1" "service")) }}
Run Code Online (Sandbox Code Playgroud)
{{- define "sample-chart-getServiceName" -}}
{{- $top := index . 0 -}}
{{- $arg1 := index . 1 "arg1" -}}
{{- $fullName := include "sample-chart.fullname" $top -}}
...
Run Code Online (Sandbox Code Playgroud)
或者,如果您打算按名称传递多个值,请将顶级上下文作为这些参数之一包含在内
{{ include "sample-chart-getServiceName" (dict "top" . "arg1" "service") }}
Run Code Online (Sandbox Code Playgroud)
{{- $top := index . "top" -}}
{{- $arg1 := index . "arg1" -}}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15458 次 |
| 最近记录: |