Skip to content

Helm Package Manager for Kubernetes

Helm is the package manager for Kubernetes, functioning as a tool to streamline the installation and management of applications.^[600-developer__Kubernetes_and_Helm.md] It utilizes a packaging format called Charts^[600-developer__Kubernetes_and_Helm.md].

Charts

A Chart is a collection of files that describe a related set of Kubernetes resources^[600-developer__Kubernetes_and_Helm.md]. A single chart might be used to deploy something as simple as a Deployment and Service, or something as complex as a full web application stack including HTTP servers, databases, and caches^[600-developer__Kubernetes_and_Helm.md].

Charts adhere to a specific file structure: * Chart.yaml: Contains metadata about the chart, such as its name, version, and description^[600-developer__Kubernetes_and_Helm.md]. * values.yaml: Stores the default configuration values for the chart^[600-developer__Kubernetes_and_Helm.md]. * templates/: A directory containing the template files, which are combined with values to generate valid Kubernetes manifest files^[600-developer__Kubernetes_and_Helm.md].

Core Concepts

Helm manages the complexity of Kubernetes deployments through several key abstractions^[600-developer__Kubernetes_and_Helm.md]:

  • Charts: As mentioned, these are the packages that define the application.
  • Repositories: These are the locations (often HTTP servers) where charts are stored and shared.
  • Releases: A specific instance of a chart running in a Kubernetes cluster. A single chart can be installed multiple times into the same cluster, creating multiple distinct releases (e.g., different versions of a database or separate instances for different environments)^[600-developer__Kubernetes_and_Helm.md].
  • Kubernetes
  • [[Containerization]]
  • [[Infrastructure as Code]]

Sources

  • 600-developer__Kubernetes_and_Helm.md