Chart.yaml

This file is the metadata manifest for your Helm chart.

For example

apiVersion: v2
name: backend-app
description: A Helm chart for deploying backend of our app
version: 0.1.0
appVersion: "1.16.0"

values.yaml

This file contains default values for your chart's configuration — like image tags, replica counts, or resource limits.

For example

replicaCount: 2

image:
  repository: nginx
  tag: "1.21"
  pullPolicy: IfNotPresent

service:
  type: ClusterIP
  port: 80

templates/ folder

This is where the actual Kubernetes resource files (Deployment, Service, etc.) are defined — but written using Go templating syntax.

deployment.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Values.serviceName }}
spec:
  replicas: {{ .Values.replicaCount }}
  template:
    spec:
      containers:
        - name: my-app
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"