Skip to content

Helm built in objects

Deekshith SN edited this page Apr 8, 2021 · 1 revision

Objects are runtime created values and methods passed on to template from the template engine.

an object can have one value or it can have many more objects in itself, below are few in built objects which are provided by helm

Release

This object describes the release itself. It has several objects inside of it:

  • Release.Name: The release name
  • Release.Namespace: The namespace to be released into (if the manifest doesn’t override)
  • Release.IsUpgrade: This is set to true if the current operation is an upgrade or rollback.
  • Release.IsInstall: This is set to true if the current operation is an install.
  • Release.Revision: The revision number for this release. On install, this is 1, and it is incremented with each upgrade and rollback.
  • Release.Service: The service that is rendering the present template. On Helm, this is always Helm.

Values

Values passed into the template from the values.yaml file and from user-supplied files. By default, Values is empty.

Chart

The contents of the Chart.yaml file. Any data in Chart.yaml will be accessible here. For example {{ .Chart.Name }}-{{ .Chart.Version }} will print out the mychart-0.1.0.

The available fields are listed in the Charts Guide

Files

This provides access to all non-special files in a chart. While you cannot use it to access templates, you can use it to access other files in the chart.

  • Files.Get is a function for getting a file by name (.Files.Get config.ini)
  • Files.GetBytes is a function for getting the contents of a file as an array of bytes instead of as a string. This is useful for things like images.
  • Files.Glob is a function that returns a list of files whose names match the given shell glob pattern.
  • Files.Lines is a function that reads a file line-by-line. This is useful for iterating over each line in a file.
  • Files.AsSecrets is a function that returns the file bodies as Base 64 encoded strings.
  • Files.AsConfig is a function that returns file bodies as a YAML map.

Capabilities

This provides information about what capabilities the Kubernetes cluster supports.

  • Capabilities.APIVersions is a set of versions.
  • Capabilities.APIVersions.Has $version indicates whether a version (e.g., batch/v1) or resource (e.g., apps/v1/Deployment) is available on the cluster.
  • Capabilities.KubeVersion and Capabilities.KubeVersion.Version is the Kubernetes version.
  • Capabilities.KubeVersion.Major is the Kubernetes major version.
  • Capabilities.KubeVersion.Minor is the Kubernetes minor version.

Template

Contains information about the current template that is being executed

  • Template.Name: A namespaced file path to the current template (e.g. mychart/templates/mytemplate.yaml)
  • Template.BasePath: The namespaced path to the templates directory of the current chart (e.g. mychart/templates).

The built-in values always begin with a capital letter. This is in keeping with Go's naming convention. When you create your own names, you are free to use a convention that suits your team.

There are even a few ways to create new objects within your templates, like with the tuple.