Chart structure
Chart.yaml, templates, values.
A chart is a directory with a required layout. Chart.yaml holds metadata (name, version, appVersion, dependencies). templates/ contains the templated Kubernetes manifests. values.yaml holds the default configuration. Optional pieces: charts/ for bundled subcharts, templates/_helpers.tpl for reusable template snippets, and values.schema.json to validate values. helm create scaffolds the whole thing.
mychart/Chart.yaml # name, version, appVersion, dependenciesvalues.yaml # default configurationvalues.schema.json # (optional) validate valuestemplates/deployment.yaml # templated manifestsservice.yaml_helpers.tpl # named template helpersNOTES.txt # post-install messagecharts/ # subcharts (dependencies)
Two versions in Chart.yaml
A frequent point of confusion: Chart.yaml has both version (the chart’s own version — bump it when you change the chart) and appVersion (the version of the application it deploys, e.g. the container image tag). They move independently: you might release chart version 1.4.0 that still deploys app 2.1.0. Semantic versioning the chart is what lets consumers pin and upgrade predictably.
apiVersion: v2name: payments-apiversion: 1.4.0 # the chart version (bump on chart changes)appVersion: "2.1.0" # the app/image version it deploysdescription: The payments API servicetype: application