I am starting to get my arms around using Kubernetes and Helm. Most of it makes perfect sense to me. I am missing one thing though and maybe someone can answer me. Why is there a separate Chart.yaml and values.yaml file? it seems to me that it would make better sense on a helm install command to have one file with a standard name. Asking for some DevOps wisdom.
Chart.yaml
contains metadata about the chart itself: its name, the chart version, a description, and similar details. In Helm 3 it can contain dependencies as well.
values.yaml
contains configuration settings for the chart. This typically includes things like the image repository to pull from, where you want data to be stored, and how to make the service accessible.
When you install the chart, you can use helm install -f
to supply an additional YAML file of configuration options that override things in value.yaml
, or helm install --set
to set a single specific value. You can't override things in the Chart.yaml
.
In the template code, items in Chart.yaml
and values.yaml
are available in the top-level data items .Chart
and .Values
, respectively.