_CORE
AI & Agentic Systems Core Information Systems Cloud & Platform Engineering Data Platform & Integration Security & Compliance QA, Testing & Observability IoT, Automation & Robotics Mobile & Digital Banking & Finance Insurance Public Administration Defense & Security Healthcare Energy & Utilities Telco & Media Manufacturing Logistics & E-commerce Retail & Loyalty
References Technologies Blog Know-how Tools
About Collaboration Careers
CS EN
Let's talk

Helm Charts: Package Manager for Kubernetes

08. 11. 2016 2 min read CORE SYSTEMScloud

Helm simplifies application deployment to Kubernetes — parameterised templates, versioning, and sharing via chart repositories. From manual YAML files to reproducible deployments.

YAML Hell in Kubernetes

Deploying an application to Kubernetes requires dozens of YAML files — Deployment, Service, ConfigMap, Secret, Ingress, PVC. Values differ per environment (dev, staging, prod) but the structure is the same.

Helm solves this problem — it is a package manager for Kubernetes. A chart is a package of parameterised templates; a Values file defines the configuration for a specific environment.

Anatomy of a Helm Chart

Helm chart structure:

  Chart.yaml          # Chart metadata
  values.yaml         # Default values
  templates/
    deployment.yaml   # Kubernetes Deployment template
    service.yaml      # Service template
    ingress.yaml      # Ingress template
    _helpers.tpl      # Shared template functions

A template with Go template syntax:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Release.Name }}-{{ .Chart.Name }}
spec:
  replicas: {{ .Values.replicaCount }}
  template:
    spec:
      containers:
      - name: {{ .Chart.Name }}
        image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
        resources:
          limits:
            cpu: {{ .Values.resources.limits.cpu }}
            memory: {{ .Values.resources.limits.memory }}

Helm Workflow

Basic Helm commands:

# Install a chart
helm install my-release ./my-app \
  --set image.tag=v1.2.3 \
  --values production-values.yaml

# Upgrade
helm upgrade my-release ./my-app \
  --set image.tag=v1.3.0

# Rollback
helm rollback my-release 1

# List releases
helm list

Helm maintains a release history — rolling back to a previous version is a single command. A release is an instance of a chart in the cluster.

Chart Repository and Sharing

Helm charts can be shared via repositories — analogous to an npm registry for Kubernetes:

  • stable/ — official community charts (nginx, PostgreSQL, Redis, Prometheus)
  • Private repository — ChartMuseum or S3-based for internal charts
  • Dependencies — a chart can depend on other charts (requirements.yaml)

The combination of Helm + CI/CD pipeline = reproducible, auditable deployments across all environments.

Conclusion: The Standard for Kubernetes Deployment

Helm is becoming the de facto standard for packaging and deploying Kubernetes applications. Parameterised templates, versioning, and rollback significantly simplify operations. We recommend Helm charts for every Kubernetes project from the start.

helmkuberneteschartsdeploymentpackagingdevops
Share:

CORE SYSTEMS

Stavíme core systémy a AI agenty, které drží provoz. 15 let zkušeností s enterprise IT.

Need help with implementation?

Our experts can help with design, implementation, and operations. From architecture to production.

Contact us