Dependencies

This section of the guide covers best practices for dependencies declared inChart.yaml.

Versions

Where possible, use version ranges instead of pinning to an exact version. Thesuggested default is to use a patch-level version match:

  1. version: ~1.2.3

This will match version 1.2.3 and any patches to that release. In otherwords, ~1.2.3 is equivalent to >= 1.2.3, < 1.3.0

For the complete version matching syntax, please see the semverdocumentation

Repository URLs

Where possible, use https:// repository URLs, followed by http:// URLs.

If the repository has been added to the repository index file, the repositoryname can be used as an alias of URL. Use alias: or @ followed by repositorynames.

File URLs (file://…) are considered a “special case” for charts that areassembled by a fixed deployment pipeline. Charts that use file:// are notallowed in the official Helm repository.

Conditions and Tags

Conditions or tags should be added to any dependencies that are optional.

The preferred form of a condition is:

  1. condition: somechart.enabled

Where somechart is the chart name of the dependency.

When multiple subcharts (dependencies) together provide an optional or swappablefeature, those charts should share the same tags.

For example, if both nginx and memcached together provided performanceoptimizations for the main app in the chart, and were required to both bepresent when that feature is enabled, then they might both have a tags sectionlike this:

  1. tags:
  2. - webaccelerator

This allows a user to turn that feature on and off with one tag.