Working with Built-in Objects
1. Accessing Release Object (.Release.Name)
Field Value
.Release.NameRelease name
.Release.NamespaceTarget namespace
.Release.RevisionInteger revision (1 on install)
.Release.ServiceAlways Helm
.Release.IsInstallBoolean
.Release.IsUpgradeBoolean
2. Using Chart Object (.Chart.Name)
Field Source
.Chart.NameChart.yaml: name
.Chart.VersionChart SemVer
.Chart.AppVersionApplication version
.Chart.Typeapplication / library
.Chart.AnnotationsMap of metadata annotations
.Chart.MaintainersList of maintainer objects
3. Accessing Files Object (.Files.Get)
Method Result
.Files.Get "conf/app.conf"String contents
.Files.GetBytes "logo.png"Byte slice (use with b64enc)
.Files.Glob "configs/*.yaml"Map of path → bytes
.Files.Lines "list.txt"List of lines
.Files.AsConfig / .Files.AsSecretsRender glob result as ConfigMap/Secret data
4. Using Capabilities Object (.Capabilities.KubeVersion)
Field Use
.Capabilities.KubeVersion.VersionFull version (v1.29.0)
.Capabilities.KubeVersion.MajorMajor (string)
.Capabilities.KubeVersion.MinorMinor (string)
.Capabilities.HelmVersion.VersionHelm CLI version
5. Working with Template Object (.Template.Name)
Field Value
.Template.NameCurrent template path (e.g. myapp/templates/deployment.yaml)
.Template.BasePathTemplates root for current chart
6. Accessing Release Service (.Release.Service)
Example: Standard managed-by label
labels :
app.kubernetes.io/managed-by : {{ .Release.Service }} # always "Helm"
7. Getting Release Namespace (.Release.Namespace)
Source Resolution
-n / --namespace flagHighest priority
$HELM_NAMESPACEEnv var fallback
kubeconfig context Final fallback (default default)
8. Checking Release IsUpgrade (.Release.IsUpgrade)
Example: Upgrade-only hook logic
{{- if .Release.IsUpgrade }}
job : run-migrations
{{- end }}
9. Checking Release IsInstall (.Release.IsInstall)
Condition Use case
.Release.IsInstallSeed initial data on first install
.Release.IsUpgradeRun migrations on subsequent revisions
Both false Never (template runs only for install/upgrade)
10. Using Chart Version (.Chart.Version)
Example: Chart version label
labels :
helm.sh/chart : {{ printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
11. Accessing Capabilities APIVersions (.Capabilities.APIVersions)
Example: Detect API availability
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
apiVersion : networking.k8s.io/v1
{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1/Ingress" }}
apiVersion : networking.k8s.io/v1beta1
{{- end }}
kind : Ingress
Warning: When using helm template without a cluster, APIVersions only contains a hardcoded built-in list. Use --api-versions flag to inject additional API versions for offline rendering.