Difference between revisions of "Helm Chart requirements.yaml"

From NovaOrdis Knowledge Base
Jump to: navigation, search
(Overview)
(Overview)
(3 intermediate revisions by the same user not shown)
Line 10: Line 10:
 
=Overview=
 
=Overview=
  
requirements.yaml is an '''optional''' metadata file that contains the immediate dependencies for the chart, expressed as a list of name, version and repository URL tuples. Note that the immediate dependencies might have dependencies on their own, which are not expressed in the chart's requirements.yaml file.  
+
requirements.yaml is an '''optional''' metadata file that contains the immediate dependencies for the chart, expressed as a list of chart "coordinates": [[#name|name]], [[#version|version]] and [[#repository|repository URL]]. Note that the immediate dependencies might have dependencies on their own, which are not explicitly specified in the chart's requirements.yaml file, but implied. Helm manages the transitive dependencies as well, and after they are discovered, they are written in [[Helm_Dependencies#Transitive_Dependencies_and_requirements.lock_File|requirements.lock]] file.  
  
Helm manages those as well, and after they are discovered, they are written in [[Helm_Dependencies#Transitive_Dependencies_and_requirements.lock_File|requirements.lock]] file. For a general discussion on chart dependencies, see [[Helm_Concepts#Dependencies|Helm Dependencies]].
+
For an in-depth discussion on how Helm dependencies work, see: {{Internal|Helm_Dependencies#How_Helm_Dependencies_Work|How Helm Dependencies Work}}
  
 
=Structure=
 
=Structure=

Revision as of 00:11, 14 September 2019

External

Internal

Overview

requirements.yaml is an optional metadata file that contains the immediate dependencies for the chart, expressed as a list of chart "coordinates": name, version and repository URL. Note that the immediate dependencies might have dependencies on their own, which are not explicitly specified in the chart's requirements.yaml file, but implied. Helm manages the transitive dependencies as well, and after they are discovered, they are written in requirements.lock file.

For an in-depth discussion on how Helm dependencies work, see:
How Helm Dependencies Work

Structure

dependencies:
- name: blue
  version: 1.2.3
  repository: http://example.com/charts
  alias: something
  condition: something.enabled, global. something.enabled
  tags:
  - front-end
  - big    
- name: green
  version 3.2.1
  repository: http://another.example.com/charts

Example

dependencies:
  - name: postgresql
    version: 6.3.2
    repository: https://kubernetes-charts.storage.googleapis.com

requirements.lock

Transitive Dependencies and requirements.lock File

Fields

name

The dependency chart name.

version

The dependency chart version.

repository

The dependency chart repository full URL.

The most common case is to specify an on-line repository, as such:

- name: postgresql
    version: 6.3.2
    repository: https://kubernetes-charts.storage.googleapis.com

In this case, helm repo add must be used to add the repository locally before using the dependent chart.

However, we can refer to dependencies that exist on the local filesystem, using an absolute path file URL or a relative path URL, as such:

- name: my-chart
    version: 1.0.0
    repository: file:///tmp/charts/my-chart
- name: my-chart
    version: 1.0.0
    repository: file://../my-chart

Note that when a relative path is used, it is considered relative to the dependent chart root directory.

In case the dependency chart is not archived, but exist as an exploded directory on the file system, the file:// URL must point to the root directory of the chart - the one that contains Chart.yaml.

alias

TODO: https://helm.sh/docs/developing_charts/#alias-field-in-requirements-yaml

condition

TODO:https://helm.sh/docs/developing_charts/#tags-and-condition-fields-in-requirements-yaml

tags

TODO: https://helm.sh/docs/developing_charts/#tags-and-condition-fields-in-requirements-yaml