Skip to content

Helm Introduction

Sandeep Rawat edited this page Dec 10, 2020 · 2 revisions

Welcome to the Working-with-Helm wiki!

Helm Introduction


Helm helps you manage Kubernetes applications — Helm Charts help you define, install, and upgrade even the most complex Kubernetes application.


Charts are easy to create, version, share, and publish — so start using Helm and stop the copy-and-paste.

Purpose

The purpose of creating this application is to provide an individual, a holistic idea of helm, helm charts, architecture, it's working, and its setup.

Preliminary

Architecture

Helm Components


Helm is an executable which is implemented into two distinct parts:

The Helm Client is a command-line client for end users. The client is responsible for the following:

  • Local chart development
  • Managing repositories
  • Managing releases
  • Interfacing with the Helm library
  • Sending charts to be installed
  • Requesting upgrading or uninstalling of existing releases

The Helm Library provides the logic for executing all Helm operations. It interfaces with the Kubernetes API server and provides the following capability:

  • Combining a chart and configuration to build a release
  • Installing charts into Kubernetes, and providing the subsequent release object
  • Upgrading and uninstalling charts by interacting with Kubernetes
  • The standalone Helm library encapsulates the Helm logic so that it can be leveraged by different clients.

Implementation


The Helm client and library is written in the Go programming language.

The library uses the Kubernetes client library to communicate with Kubernetes. Currently, that library uses REST+JSON. It stores information in Secrets located inside of Kubernetes. It does not need its own database.

Configuration files are, when possible, written in YAML.