Chart Directory Layout

A chart is a directory with a fixed layout — Chart.yaml, values.yaml, a templates folder, and optionally charts and helpers.

Syntaxhelm create mychart

A 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.
Standard Helm chart directory structuremychart/Chart.yamlchart metadatavalues.yamldefault valuestemplates/manifest templatesdeployment.yamlservice.yaml_helpers.tplcharts/bundled subcharts.helmignorepackaging excludes
The files and folders Helm expects inside a chart directory.

Example

Example · bash
# Scaffold a new chart with the standard layout
helm create mychart

# Inspect it
tree mychart
# mychart/
# +- Chart.yaml
# +- values.yaml
# +- templates/
# +- charts/
# +- .helmignore

When 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.

Example · bash
helm create myapp
tree myapp

Standard chart directory

Illustrates the standard Helm chart directory tree with the role of each file and folder annotated.

Example · yaml
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.txt

Lint a chart directory

Validates the chart layout and templates; --strict treats warnings as errors, useful in CI to enforce quality gates.

Example · bash
helm lint ./myapp
helm lint ./myapp --strict

Discussion

  • Be the first to comment on this lesson.
Chart Directory Layout — Helm | SoundsCode