Helm for Developers
A chaptered, hands-on tutorial for Helm 4: one Python 3.14 (3.15-ready) FastAPI shipping application taken from raw manifests to a signed, GitOps-delivered chart on minikube and OpenShift.
What this tutorial is
A chapter-based path through Helm 4 for application developers. One fixed Python 3.14 (3.15-ready) / FastAPI application, a shipping service that publishes events to a notification service through Kafka and stores its data in Postgres, goes from raw manifests to a chart, an umbrella chart, a library chart, a signed OCI artifact and an Argo CD deployment. The application image never changes between chapters; only the charts and values do, so each chapter stays focused on Helm. Everything runs on a dedicated local cluster (a minikube profile) with CloudNativePG, Strimzi and the Grafana LGTM stack. An appendix repeats the deployment on OpenShift Local. The tutorial assumes you can read Kubernetes manifests and write a Dockerfile; it does not teach Python or Kubernetes basics.
Getting started
The arc of the book, a project-local Helm 4 lab, and a tour of Helm with a public OCI chart.
From manifests to a chart
Raw manifests for the shipping service, then a first chart, values, templates, helpers and configuration.
Data and lifecycle
A Postgres subchart on CloudNativePG, CRDs and operators, migration hooks, and the Helm 4 release lifecycle.
Debugging and testing
The debug ladder, helm-unittest, chart-testing, kubeconform and a chart CI workflow.
Multi-service applications
Kafka on Strimzi, the notification service, umbrella charts, library charts and starters.
Distribution and supply chain
Packaging and SemVer, classic repositories, OCI registries, provenance files and cosign.
Extending Helm
Helm 4 plugins, including a subprocess plugin and a Wasm plugin, and post-renderer plugins.
Delivery and operations
Environment promotion, GitOps with Argo CD, and observability through the library chart.
Appendices
OpenShift Local, the Helm 3 to Helm 4 migration reference, a cheat sheet and further reading.