如何在 values.yaml 中引用命名空间?

red*_*888 5 kubernetes kubernetes-helm

我希望能够引用当前的命名空间values.yaml以使用它来为某些值添加后缀

# in values.yaml
someParam: someval-{{ .Release.Namespace }}
Run Code Online (Sandbox Code Playgroud)

以这种方式定义它会更好,而不是进入我的所有模板并添加{{ .Release.Namespace }}. 如果我能做到,values.yaml那就更清楚了,只需要在一个地方定义。

Ami*_*pta 1

您可以使用命名模板来定义可重用的帮助程序模板。例如

templates/_helpers.tpl

{{- define "myChart.someParam" -}}someval-{{ .Release.Namespace }}{{- end -}}
Run Code Online (Sandbox Code Playgroud)

templates/configmap.yaml(例如):

apiVersion: v1
kind: ConfigMap
metadata:
  name: something
data:
  foo: {{ template "myChart.someParam" . }}
Run Code Online (Sandbox Code Playgroud)

结果:

$ helm template . --namespace=bar
---
# Source: helm/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: something
data:
  foo: someval-bar
Run Code Online (Sandbox Code Playgroud)