Hello and welcome to this presentation on an Introduction to Helm.
For our objectives today, after viewing this video, you should be able to:
Describe the purpose of Helm Describe Helm components
List Helm features Describe Helm charts
Explain chart repositories Describe Helm plugins
Helm is a package manager for Kubernetes which helps manage the creation of complex, multi-container
applications and web services in a Kubernetes cluster.
The two components of Helm are the Helm client and Tiller server.
The Helm client provides a CLI for user interaction with Helm.
The Tiller server creates releases, which are specific running applications deployed
from installed Helm charts. Tiller interacts with the Kubernetes API server
and responds to Helm client requests. It runs in the tiller container in the tiller-deploy
pod in a Kubernetes cluster in the kube-system namespace.
Both Helm components are written in the Go language.
Helm allows you to create charts and chart archives as well as to work with chart repositories.
With Helm you can install charts, which are specific running applications, each of which
is called a release. You can install software and dependencies
as well as perform upgrades. A Helm chart is like an RPM file and consists
of the files in a directory structure, the top level of which is the chart name.
The chart is a specification for deploying Kubernetes applications.
Charts are stored and made available in repositories, from which they can be easily installed, creating
running applications. Configuration information is used with charts
as part of the application deployment process. A specific application that has been started
from the installation of a chart with its configuration is called a release.
A release is an instance of a chart installation and there can be multiple releases from installations
of a given chart. The chart files and directory structure are
shown on the slide. Under the top level directory, which is the
chart name, there must be a Chart.yaml file. This file provides basic information about
the chart. In the charts directory are any charts that
this chart depends on. The requirements.yaml file lists chart dependencies
that are dynamically linked and considered a better way of handling dependencies than
the manual method involved in placing charts in the /charts directory.
The templates directory contains template files that incorporate configuration values
to create Kubernetes manifest files. The Go template is the format used for these
files. Configuration values can be provided from
the values.yaml file or on the command line when the Kubernetes manifests are created.
Any values specified on the command line override those in values.yaml.
The templates directory can contain an optional NOTES.txt file containing information about
the use of the chart. There can be optional LICENSE and README.md
files. A chart can be contained in a .tgz zip file
and obtained from a chart repository. Chart repositories are used to store charts
and make them available. By default, Helm is set up with a default
repository called "stable." These charts are located at the URL shown
on the slide and meet the requirements for stable repositories.
You can use the helm search command to view charts in this repository.
The incubator chart repository consists of charts that do not meet the requirements of
stable charts. Requirements for stable charts can be found
at the URL shown on the slide. The incubator repositories is not part of
the Helm configuration by default and must be added if you wish to use it.
The command to do this is shown on the slide. To view these charts the incubator parameter
must be added to the helm search command for example, helm search incubator.
Also, once the incubator repo has been added to Helm, if the stable chart list is desired,
the stable parameter must be added to the helm search command, for example, helm search
stable. Plugins can be used with Helm to provide additional
functionality. These are not part of the main Helm product
and there is no restriction on the language used to develop them.
Plugins are located in HELM_HOME/plugins and are installed with the helm plugin install
command as shown on the slide. Plugins can be located in a local directory
or remotely from given URLs. $HOME/.helm/plugins contains directories with
names related to plugin names. For example, the env plugin resides in $HOME/.helm/plugins/helm-env.
Within this directory is a required plugin.yaml file and inside this file is the name of the
plugin. Other files can be present in this directory
path, such as an executable script. To run a plugin you issue the helm command
with the plugin name. For example, to invoke the env plugin, run
helm env. This plugin lists the Helm environment.
For further information about Helm, you can visit the Helm project site and github site
shown on this slide. Oracle also provides an extensive number of
resources which you can use to learn more about this subject and others.
This concludes this presentation. Thank you for watching.