Helm install: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 72: Line 72:
  --set colors[0].name=green,colors[0].shade=faded  
  --set colors[0].name=green,colors[0].shade=faded  


{{Warn|'''Warning 1''' If an array element contains more than on key/value mapping, replacing just one key/value mapping with --set will discard the other ones, so you will need to set all key/value pairs at the same time. For the above example, --set colors[0]}}
{{Warn|'''Warning 1''' If an array element contains more than on key/value mapping, replacing just one key/value mapping with --set will discard the other ones, so you will need to set all key/value pairs at the same time. For the above example, --set colors[0].name=green will yield an empty shade for element 0.}}
 





Revision as of 20:47, 13 September 2019

External

Internal

Overview

Install a chart archive, by discovering the transitive dependency tree of the chart, if the chart has dependencies, and creating a release in the process.

The chart may come from a repository:

helm install <chart-name>

helm install stable/mysql

or from a local directory (note that the directory name must be identical with the chart name specified in Chart.yaml):

helm install <directory-name-that-must-match-chart-name>

Dry Run

In this mode, we send the templates to the Tiller server, which renders them, but instead of installing the chart, it returns the rendered template so it can be inspected:

helm install <...> --debug --dry-run

Note that in this mode, it is not guaranteed that Kubernetes will accept the generated manifest.

Specifying a Release Name

helm install --name <release-name> ...

Overriding Default Configuration

-f|--values

Default configuration - or just some values - can be overridden in bulk with:

helm install -f|--values <configuration-overrides-file.yaml> <chart name>

The -f|--values flag can be specified multiple time on the command line, and the rightmost value will take precedence.

--set

Individual configuration options can be specified with --set, --set-string and --set-file. If both --set and --values are used, the --set-specified configuration values are merged into the configuration values specified with --values, with higher precedence. Overrides specified with --set are persisted in a ConfigMap and can be viewed for a given release with helm get value <release-name>:

helm install --set size=10 ...

A value specified values.yaml can be effectively effectively eliminated, by setting that value to null with

... --set <key>=null ...

For more details on relative precedence of different sources of configuration data, see:

Values and Chart Configuration

Overriding Array Elements

If the value file contains array structures, individual elements of the arrays can be identified from command line and overridden using the [...] syntax. If values.yaml contains:

colors:
 - name: 'blue'
   shade: 'dark'
 - nane: 'red'
   shade: 'light'

the "name" of the first element of the array can be overridden with:

--set colors[0].name=green,colors[0].shade=faded 

{{{1}}}


TODO: https://helm.sh/docs/using_helm/#the-format-and-limitations-of-set --set will discard the other ones, so you will need to set all key/value pairs at the same time. For the above example, --set colors\[0].name=green will yield an empty shade for element 0. This behavior was noticed on Helm 2.14.3.}} will discard the other ones, so you will need to set all key/value pairs at the same time. For the above example, --set colors

Overriding Tags and Conditions

Using the CLI with Tags and Conditions

Use --set to override default tag and condition values at installation time.

Installing from Different Sources

The default option for the helm install command is to install from the default repository. However, the chart may come from different sources:

Installing from a File

helm install something-0.1.1.tgz

Installing from an Unpacked Chart Directory

helm install ./something

Installing from a URL

helm install https://example.com/charts/something-1.0.0.tgz