Chart Directory Layout
A chart is a directory with a fixed layout — Chart.yaml, values.yaml, a templates folder, and optionally charts and helpers.
Syntax
helm create mychartA Helm chart is just a directory that follows a convention. Run helm create mychart and Helm scaffolds it for you.
The standard layout
Chart.yaml— metadata: name, version, description.values.yaml— default configuration values.templates/— the manifest templates that get rendered.templates/_helpers.tpl— reusable named templates.templates/NOTES.txt— post-install usage notes.charts/— bundled subcharts (dependencies)..helmignore— patterns to exclude when packaging.
Example
# Scaffold a new chart with the standard layout
helm create mychart
# Inspect it
tree mychart
# mychart/
# +- Chart.yaml
# +- values.yaml
# +- templates/
# +- charts/
# +- .helmignoreWhen to use it
- A developer scaffolds a new chart with helm create myapp and immediately sees the expected directory layout before writing any templates.
- A code reviewer checks that a contributed chart follows the standard layout by confirming Chart.yaml, values.yaml, and a templates/ directory are present at the root.
- A CI linter uses helm lint to validate the chart directory structure and catch missing required files before the chart is packaged and published.
More examples
Scaffold a new chart
Generates the standard chart skeleton so you can see the complete directory layout helm expects.
helm create myapp
tree myappStandard chart directory
Illustrates the standard Helm chart directory tree with the role of each file and folder annotated.
myapp/
Chart.yaml # chart metadata (required)
values.yaml # default configuration values
.helmignore # packaging exclusions
charts/ # subcharts downloaded here
templates/ # Go-template manifest files
deployment.yaml
service.yaml
_helpers.tpl
NOTES.txtLint a chart directory
Validates the chart layout and templates; --strict treats warnings as errors, useful in CI to enforce quality gates.
helm lint ./myapp
helm lint ./myapp --strict
Discussion