Declaring a Library Chart Type
Setting type to library and what that forbids.
Declaring a Library Chart Type is a free Helm Academy lesson on CoddyKit — lesson 1 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Helm Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Two Kinds of Chart
Every Helm chart declares a type in Chart.yaml. The default is application, but a second type exists purely for sharing template logic.
# Chart.yaml
apiVersion: v2
name: my-app
type: applicationEnter the Library Chart
Set type: library and the chart stops being something you install. It becomes a toolbox of named templates for other charts to reuse.
# Chart.yaml
apiVersion: v2
name: common
version: 0.1.0
type: libraryLibrary Charts Render Nothing
A library chart produces no Kubernetes objects on its own. It only defines templates that consuming charts call when they render.
You Cannot Install One
Running helm install on a library chart fails. There is nothing to deploy, so Helm refuses the command by design.
helm install c ./common
# Error: library charts are not installableNo Top-Level templates Output
Files in a library chart's templates folder are not rendered as manifests. They must only define partials, never emit YAML directly.
The Underscore Convention
Helm skips files in templates that start with an underscore. Library template files use names like _deployment.tpl to stay non-rendering.
common/
Chart.yaml
templates/
_deployment.tplapiVersion v2 Is Required
Library charts only exist under apiVersion: v2. Helm 2 era v1 charts had no concept of a library type at all.
# Chart.yaml
apiVersion: v2
type: libraryVersioned Like Any Chart
A library still needs a version field so consumers can pin to it. Treat it as a real release artifact, not a loose folder.
# Chart.yaml
name: common
version: 1.2.0
type: libraryWhy Bother With a Library Type
Instead of copying the same Deployment YAML into ten charts, you write it once in a library and let every chart pull it in.
Bitnami Common Is the Classic Example
The widely used bitnami/common chart is a library. Hundreds of charts depend on it for shared labels, names, and image helpers.
Application vs Library, Side by Side
An application chart deploys workloads; a library chart only supplies templates. The single type field decides which one Helm treats it as.
type: application # installs resources
type: library # shares templatesQuick Check
You set type: library in Chart.yaml. What happens when you run helm install on it?
Recap: The Library Chart Type
A type: library chart renders nothing and cannot be installed. It exists only to package named templates that other charts reuse. 📦
Frequently asked questions
Is the “Declaring a Library Chart Type” lesson free?
Yes — the full text of “Declaring a Library Chart Type” is free to read here on the web, and the Helm Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Helm Academy course, upgrade to CoddyKit PRO.
What will I learn in “Declaring a Library Chart Type”?
Setting type to library and what that forbids. You practise Helm Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Helm Academy?
No prior experience is required. Helm Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 1 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Declaring a Library Chart Type” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Helm Academy lesson?
Yes. Every Helm Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Declaring a Library Chart Type
- Exporting Reusable Named Templates
- Consuming a Library as a Dependency
- Overriding Library Defaults Locally