DevLearn
Architecture

Helm Architecture

Understand how Helm works, chart structure, and the release lifecycle.

Helm Architecture Overview

┌─────────────────────────────────────────────────────────────────────────────┐
│                         HELM ARCHITECTURE                                    │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  ┌────────────────┐                                                        │
│  │  User Commands  │   helm install, upgrade, rollback, uninstall...        │
│  └───────┬────────┘                                                        │
│          │                                                                  │
│          ▼                                                                  │
│  ┌────────────────┐        ┌────────────────┐      ┌────────────────────┐ │
│  │  Helm Client    │───────►│ Chart Archive  │─────►│  K8s API Server    │ │
│  │  (helm CLI)     │        │ (templates)    │      │  (deployment)       │ │
│  └────────────────┘        └────────────────┘      └────────────────────┘ │
│          │                                              │                   │
│          │                                              │                   │
│          ▼                                              ▼                   │
│  ┌────────────────┐                            ┌────────────────────┐    │
│  │ Chart Repo     │                            │  K8s Cluster       │    │
│  │ (bitnami, etc) │                            │  ┌──────────────┐  │    │
│  └────────────────┘                            │  │ Secrets      │  │    │
│                                                 │  │ (release v1) │  │    │
│  ┌────────────────┐                            │  ├──────────────┤  │    │
│  │ Local Charts   │                            │  │ Secrets      │  │    │
│  │ ./mychart      │                            │  │ (release v2) │  │    │
│  └────────────────┘                            │  └──────────────┘  │    │
│                                                 └────────────────────┘    │
│                                                                             │
│                                             Helm stores release info in      │
│                                             Kubernetes Secrets               │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

Chart Structure

Anatomy of a Helm chart

mychart/
├── Chart.yaml      # Metadata
├── values.yaml     # Default values
├── charts/         # Dependencies
├── templates/
│   ├── deployment.yaml
│   ├── service.yaml
│   ├── ingress.yaml
│   ├── configmap.yaml
│   ├── _helpers.tpl
│   └── notes.txt
├── .helmignore     # Exclude files
├── LICENSE
└── README.md

Chart.yaml

Chart name, version, dependencies, maintainers

values.yaml

Default configuration values

templates/

Go templates generating K8s manifests

charts/

Packed dependency charts