helmfile template built-in objects

  • Environment: The information about the environment. This is set by the
    --environment flag. It has several objects inside of it:
  • Environment.Name: The name of the environment
  • Environment.KubeContext: The kube context to be used by default for releases in the environment.
  • Values: Values passed into the environment.
  • StateValues: alias for Values.
  • Namespace: The namespace to be released into

release template built-in objects

it be used for the below two cases:

  1. release definition
templates:
  default:
    chart: stable/{{`{{ .Release.Name }}`}}
    namespace: kube-system
    values:
    - config/{{`{{ .Release.Name }}`}}/values.yaml
    - config/{{`{{ .Release.Name }}`}}/{{`{{ .Environment.Name }}`}}.yaml
    secrets:
    - config/{{`{{ .Release.Name }}`}}/secrets.yaml
    - config/{{`{{ .Release.Name }}`}}/{{`{{ .Environment.Name }}`}}-secrets.yaml
releases:
- name: heapster
  version: 0.3.2
  inherit:
  - template: default
- name: kubernetes-dashboard
  version: 0.10.0
  inherit:
  - template: default
  1. release values template
releases:
- name: some-release
  chart: my-chart
  values:
    # This is a template file can use the built-in objects
    - path/to/values.gotmpl
  • 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
  • Release.Labels: The labels to be applied to the release
  • Release.Chart: The chart name of the release
  • Release.KubeContext: The kube context to be used for the release
  • Values: Values passed into the environment.
  • StateValues: alias for Values.
  • Environment: The information about the environment. This is set by the
    --environment flag. It has several objects inside of it:
  • Environment.Name: The name of the environment
  • Environment.KubeContext: The kube context to be used by default for releases in the environment.
  • Chart: The chart name for the release.
  • KubeContext: The kube context to be used for the release
  • Namespace: The namespace to be released into

The built-in values always begin with a capital letter. This is in keeping with
Go’s naming convention. When you define your own values and template variables, you are free to use a
convention that suits your team.