DEV Community

Hassan BOLAJRAF
Hassan BOLAJRAF

Posted on

Kubernetes | Helm Commands with YAML File Examples

Note
You can check other posts on my personal website: https://hbolajraf.net

Helm Commands with YAML File Examples

Helm is a powerful package manager for Kubernetes that simplifies the deployment and management of containerized applications. In this guide, we'll explore some common Helm commands and provide detailed examples of Helm Chart YAML files.

Helm Commands

Initialize a Helm Chart

To create a new Helm chart, you can use the following command:

helm create mychart
Enter fullscreen mode Exit fullscreen mode

This command generates the necessary directory structure and files for your chart.

Installing a Chart

To install a Helm chart, you can use the following command:

helm install my-release ./mychart
Enter fullscreen mode Exit fullscreen mode

Here, my-release is the name you give to the release, and ./mychart is the path to your Helm chart.

Upgrading a Chart

To upgrade a Helm release, you can use the following command:

helm upgrade my-release ./mychart
Enter fullscreen mode Exit fullscreen mode

This command is used to apply changes to a deployed release.

Uninstalling a Chart

To uninstall a Helm release, you can use the following command:

helm uninstall my-release
Enter fullscreen mode Exit fullscreen mode

This command removes the release and associated resources.

Helm Chart YAML Examples

Chart.yaml

The Chart.yaml file provides metadata about your Helm chart. Here's an example:

apiVersion: v2
name: mychart
description: A Helm chart for my application
version: 0.1.0
appVersion: 1.0.0
Enter fullscreen mode Exit fullscreen mode

values.yaml

The values.yaml file contains configuration values for your Helm chart. Here's an example:

replicaCount: 1
image:
  repository: nginx
  tag: stable
  pullPolicy: IfNotPresent
service:
  name: mychart-service
  type: ClusterIP
  port: 80
Enter fullscreen mode Exit fullscreen mode

Deployment.yaml

The Deployment.yaml file is part of your Helm chart's templates and defines a Kubernetes Deployment. Here's an example:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ include "mychart.fullname"  }}
spec:
  replicas: {{ .Values.replicaCount }}
  template:
    spec:
      containers:
        - name: {{ .Chart.Name }}
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
          ports:
            - containerPort: 80
Enter fullscreen mode Exit fullscreen mode

Service.yaml

The Service.yaml file defines a Kubernetes Service for your application. Here's an example:

apiVersion: v1
kind: Service
metadata:
  name: {{ .Values.service.name }}
spec:
  selector:
    app: {{ include "mychart.name"  }}
  ports:
    - port: {{ .Values.service.port }}
      targetPort: 80
Enter fullscreen mode Exit fullscreen mode

What Next?

These are just a few examples of Helm commands and YAML files used in Helm charts. Helm makes it easier to package, deploy, and manage Kubernetes applications, allowing you to define and version your application configurations in a structured way.

Image of Timescale

Timescale – the developer's data platform for modern apps, built on PostgreSQL

Timescale Cloud is PostgreSQL optimized for speed, scale, and performance. Over 3 million IoT, AI, crypto, and dev tool apps are powered by Timescale. Try it free today! No credit card required.

Try free

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more