10 Helm Chart Examples for Kubernetes Deployments

Discover 10 real-world Helm chart examples that every Kubernetes user should know in 2025. From simple Nginx deployments to full-stack applications with databases, monitoring, and ingress – complete with ready-to-use values.yaml snippets and best practices for production.

Dec 8, 2025 - 17:21
 0  1

Introduction

Helm is the package manager for Kubernetes – think of it like apt, yum, or npm, but for your entire application stack. A Helm chart packages all the YAML manifests (Deployments, Services, ConfigMaps, etc.) into one reusable, versioned template with customizable values. Whether you're deploying a simple web server or a complex microservices platform, Helm makes it repeatable, upgradeable, and shareable.

In this guide, we walk through 10 practical, production-ready Helm chart examples with real code snippets you can copy and adapt today. Perfect for beginners and experienced users alike.

Example 1: Basic Nginx Web Server

The classic "Hello World" of Helm. This chart deploys a scalable Nginx with custom index.html, resource limits, and optional HTTPS.

Key features: autoscaling, custom config via ConfigMap, ingress ready.

# values.yaml
replicaCount: 3
image:
  repository: nginx
  tag: stable
resources:
  limits:
    cpu: 200m
    memory: 256Mi
service:
  type: ClusterIP
  port: 80
ingress:
  enabled: true
  hosts:
    - host: nginx.example.com
      paths:
        - path: /
          pathType: Prefix

Example 2: PostgreSQL with Persistent Storage

Deploy a highly available PostgreSQL instance using the official Bitnami chart – perfect for stateful applications.

Includes volume permissions init container, automatic backups to S3, and metrics exporter.

# values.yaml
auth:
  postgresPassword: "supersecret"
  database: myappdb
primary:
  persistence:
    enabled: true
    size: 20Gi
  resources:
    requests:
      memory: 1Gi
      cpu: 1000m
metrics:
  enabled: true

Example 3: Redis Cluster (StatefulSet)

Production-grade Redis with sentinel for high availability, persistence, and password authentication.

# values.yaml
auth:
  password: "redis123"
cluster:
  enabled: true
  slaveCount: 2
persistence:
  enabled: true
  size: 10Gi
resources:
  limits:
    memory: 2Gi

Example 4: Prometheus + Grafana Monitoring Stack

Full observability stack using the kube-prometheus-stack chart from Prometheus Operator.

Includes Alertmanager, Node Exporter, and pre-built Grafana dashboards.

prometheus:
  prometheusSpec:
    storageSpec:
      volumeClaimTemplate:
        spec:
          accessModes: ["ReadWriteOnce"]
          resources:
            requests:
              storage: 50Gi
grafana:
  adminPassword: "prom-operator"
  persistence:
    enabled: true
    size: 10Gi

Example 5: WordPress with MySQL (Full-Stack App)

Deploy a complete WordPress blog with separate MySQL database using Bitnami’s battle-tested charts.

Perfect example of Helm dependency management with subcharts.

# Chart.yaml dependencies
dependencies:
  - name: mysql
    version: 9.x.x
    repository: https://charts.bitnami.com/bitnami
    condition: mysql.enabled

# values.yaml
wordpressUsername: admin
wordpressPassword: "wordpress123"
mariadb:
  enabled: false
externalDatabase:
  host: mysql-prod.cluster.local
  port: 3306
  database: wordpress
  user: wpuser
  password: "secret"

Example 6: Jenkins Master with Persistent Volume

Deploy Jenkins CI/CD server with persistent Jenkins home, custom plugins, and RBAC.

persistence:
  enabled: true
  size: 20Gi
agent:
  enabled: true
rbac:
  create: true
serviceType: LoadBalancer
adminUser: admin
adminPassword: "jenkins2025"

Example 7: HashiCorp Vault (Secrets Management)

Secure secrets storage with auto-unseal using AWS KMS or GCP KMS.

Production-ready with HA and UI access.

server:
  ha:
    enabled: true
    replicas: 3
  dataStorage:
    size: 20Gi
injector:
  enabled: true
ui:
  enabled: true
  serviceType: LoadBalancer

Example 8: Cert-Manager for Automatic TLS

Automatically provision Let’s Encrypt certificates using cert-manager.

installCRDs: true
prometheus:
  enabled: true
ingressShim:
  defaultIssuerName: letsencrypt-prod
  defaultIssuerKind: ClusterIssuer
extraArgs:
  - --dns01-recursive-nameservers=8.8.8.8:53

Example 9: GitLab Runner (CI/CD Agents)

Register runners with your GitLab instance for fast parallel jobs.

gitlabUrl: "https://gitlab.com/"
runnerRegistrationToken: "glrt-xxxxxx"
runners:
  cache:
    cacheType: s3
    s3BucketName: gitlab-runner-cache
  config: |
    [[runners]]
      executor = "kubernetes"
      [runners.kubernetes]
        namespace = "{{ .Release.Namespace }}"
        image = "ubuntu:22.04"

Example 10: Custom Application with Multiple Microservices

Real-world example: a voting app with frontend, backend API, Redis, and PostgreSQL all defined in one parent chart with subcharts.

Shows how to use Helm dependencies, share values between services, and manage complex deployments.

Example Chart Name / Source Best For
Nginx bitnami/nginx Web servers, reverse proxy
PostgreSQL bitnami/postgresql Databases, stateful apps
Prometheus Stack prometheus-community/kube-prometheus-stack Monitoring & alerting
WordPress bitnami/wordpress Full-stack CMS apps
Vault hashicorp/vault Secrets management

Conclusion

Helm transforms complex Kubernetes deployments into simple, repeatable packages. These 10 examples cover the most common real-world use cases—from stateless web apps to stateful databases, monitoring, CI/CD, and security. Start with the official Bitnami and community charts, then build your own custom charts as you grow. Mastering Helm is one of the highest-ROI skills in modern DevOps tooling. Happy helming!

Frequently Asked Questions

What is a Helm chart?

A Helm chart is a package containing Kubernetes YAML templates and a values.yaml file for configuration.

Where are official Helm charts stored?

Main repositories: Artifact Hub, Bitnami, Helm Hub, and individual project repos.

How do I install a Helm chart?

Use: helm install my-release bitnami/nginx --values my-values.yaml

What is the difference between helm install and helm upgrade?

install creates new release; upgrade updates existing one (great for CI/CD).

Can I create my own Helm chart?

Yes! helm create mychart generates a full template to customize.

Are Helm charts secure?

Use trusted sources and scan charts with tools like Trivy or ChartSecurity.

How do I version Helm charts?

Use semantic versioning in Chart.yaml (version: 1.5.0) and appVersion for your app.

What are Helm hooks?

Pre/post-install/upgrade/delete hooks to run jobs (database migrations, backups).

Can I use Helm with GitOps?

Yes – tools like ArgoCD and Flux manage Helm releases declaratively from Git.

How to override values in production?

Use separate values files: values-prod.yaml, values-staging.yaml, or Helm secrets plugins.

What's Your Reaction?

Like Like 0
Dislike Dislike 0
Love Love 0
Funny Funny 0
Angry Angry 0
Sad Sad 0
Wow Wow 0
Mridul I am a passionate technology enthusiast with a strong focus on DevOps, Cloud Computing, and Cybersecurity. Through my blogs at DevOps Training Institute, I aim to simplify complex concepts and share practical insights for learners and professionals. My goal is to empower readers with knowledge, hands-on tips, and industry best practices to stay ahead in the ever-evolving world of DevOps.