Feedback

Chat Icon

Cloud-Native Microservices With Kubernetes - 2nd Edition

A Comprehensive Guide to Building, Scaling, Deploying, Observing, and Managing Highly-Available Microservices in Kubernetes

Everything You Need to Know to Start Using Helm
88%

Charts, Releases, and Repositories

A chart is a collection of files that describe a related set of Kubernetes resources. A single chart can define a simple application, like a Redis instance, or a complex one, like a complete web application stack with a application server, a database, and a caching layer.

When you install a chart in a Kubernetes cluster, this creates a new release of that chart. A release is a specific instance of a chart running in a Kubernetes cluster. You can have multiple releases of the same chart in a cluster, each with its own configuration and state. The name of the release is specified during the installation process and should be unique within the target namespace of the cluster.

A repository, on the other hand, is a place where charts are stored, versioned, and shared. A repository can contain multiple charts, and as a user, you can add repositories to your Helm client to access and install charts from them. One of the most popular public repositories is the Artifact Hub, which hosts a wide variety of charts for different applications and services.

A chart is a collection of files that is organized as follows (an example from a WordPress chart):

wordpress/
  # A YAML file containing information
  # about the chart
  Chart.yaml
  # OPTIONAL: A plain text file containing
  # the license for the chart
  LICENSE
  # OPTIONAL: A human-readable README file
  README.md
  # The default configuration values for this chart
  values.yaml
  # OPTIONAL: A JSON Schema for imposing a
  # structure on the values.yaml file
  values.schema.json
  # A directory containing any charts
  # upon which this chart depends.
  charts/
  # Custom Resource Definitions
  crds/
  # A directory of templates that,
  # when combined with values,
  # will generate valid Kubernetes manifest files.
  templates/
  # OPTIONAL: A plain text file containing
  # short usage notes
  templates/NOTES.txt

This is a quick description of each file and directory:

  • Chart.yaml: A YAML file containing information and metadata about the chart, such as its name, version, description, and dependencies

  • LICENSE: A plain text file containing the license for the chart like MIT, Apache 2.0, or GPL.

  • README.md: A human-readable README file.

Cloud-Native Microservices With Kubernetes - 2nd Edition

A Comprehensive Guide to Building, Scaling, Deploying, Observing, and Managing Highly-Available Microservices in Kubernetes

Enroll now to unlock all content and receive all future updates for free.