llama139
llama139

Reputation: 1

Use variable in HELM template define function

Is it possible to use a variable inside the template define function? I attempted to wrap the variable in brackets but it seems to fail. Example

{{- define {{ .Chart.Name }}.deployment -}}

Upvotes: 0

Views: 2331

Answers (2)

David Maze
David Maze

Reputation: 159830

The names of template functions are always fixed strings. (This is common with almost all programming languages.) Since these names don't appear anywhere in the rendered YAML, it doesn't really matter what they're called. The only place there's a potential conflict is if your chart includes other subcharts as dependencies, or is included as a subchart; in that case all template functions share the same function namespace.

A common convention is to name templates following the current chart name; that is, matching the fixed string in the Chart.yaml file

{{- define "mychart.deployment" -}}

Using the Helm include function you can call templates with a dynamic name, but this is a somewhat unusual use.

Upvotes: 1

redzack
redzack

Reputation: 1721

values.yaml

global:
  key: {}
  deployment: appdeployv1

If you were to expand the name of the chart, you would do it like this

_helpers.tpl

{{- define "key.name" -}}
{{- default .Chart.Name .Values.deployment | trunc 63 | trimSuffix "-" -}}
{{- end -}}

That's all I can understand from your question. I hope this helps. You can try exploring docs and check Declaring and using templates with define and template heading for detailed info.

Upvotes: 0

Related Questions