Frequently asked questions about Helm

5 minute read
What is a Helm chart?

A Helm chart is a package that defines a Kubernetes application and its dependencies.

The chart is a combination of YAML templates for Kubernetes resources, such as pods, replica sets, deployments or ingresses. It also provides a values file that populates default configuration values for the templates.

Instead of manually editing files, Helm manages the process by merging the templates files and the values into a custom YAML file. It then applies and tracks the deployment of the YAML file on the Kubernetes cluster.

Using the Internet to download the Helm chart and the chart dependencies is the preferred method, but you can install a chart from a local archive that has been downloaded beforehand.

Do I have to use Tiller to install CloudBees CI?

No. Tiller is a server-side component that was required for Helm 2. The required version is Helm 3, which is a client-only solution without a requirement for a server-side component.

Which version of Helm is supported?

Helm 3 is the only supported version.

What happened to Helm 2 support?

Helm 2 is no longer supported by Helm’s maintainer. See Helm 2 and the Charts Project Are Now Unsupported

How can I install a previous version on CloudBees CI with Helm?

The CloudBees CI Helm chart started with CloudBees CI 2.164.1.2, which provided Kubernetes support. CloudBees CI Helm chart support for OpenShift started with CloudBees CI 2.176.3.2.

The CloudBees Helm chart museum has a Helm chart starting with CloudBees CI 2.164.1.2. By default, the command helm search cloudbees cloudbees-core returns the most recent chart from all the CloudBees Helm chart repositories.

You can omit the CloudBees repository name and Helm will search all of your Helm repositories. The list option helm search cloudbees-core -l displays all the chart versions in all of your repositories.

helm search -l example
$ helm search repo cloudbees/cloudbees-core -l NAME CHART VERSION APP VERSION DESCRIPTION cloudbees/cloudbees-core 3.9.0+c3d55aeaee57 2.204.2.2 The Continuous Delivery Solution for Enterprises cloudbees/cloudbees-core 3.8.0+a0d07461ae1c 2.204.1.3 The Continuous Delivery Solution for Enterprises cloudbees/cloudbees-core 3.7.0+ffcae9c08fc6 2.190.3.2 The Continuous Delivery Solution for Enterprises cloudbees/cloudbees-core 3.6.0+4d2e34de1e86 2.190.2.2 The Continuous Delivery Solution for Enterprises cloudbees/cloudbees-core 3.5.0 2.176.4.3 The Continuous Delivery Solution for Enterprises cloudbees/cloudbees-core 3.4.1 2.176.3.3 The Continuous Delivery Solution for Enterprises cloudbees/cloudbees-core 2.176.203 2.176.2.3 The Continuous Delivery Solution for Enterprises cloudbees/cloudbees-core 2.176.104 2.176.1.4 The Continuous Delivery Solution for Enterprises cloudbees/cloudbees-core 2.164.302 2.164.3.2 The Continuous Delivery Solution for Enterprises

You can install any version of a chart by using use the --version argument, where the version number is the chart version. Again, this is the Helm chart version number, not the CloudBees CI version number.

Why don’t I see the latest version of the Helm chart when I use helm search?

helm search searches a local cache of all your installation repositories. Update your cache by using helm repo update.

Why doesn’t the Helm chart version match the CloudBees CI version?

The CloudBees Helm chart follows the Helm community’s best practices of using a SemVer2 version number. Having a different Helm chart version allows CloudBees to make updates to the Helm chart between CloudBees CI releases.

For more Information, see Semantic Versioning
Why don’t I see the new CloudBees CI chart when I do a helm search cloudbees-core or when I used helm update to update CloudBees CI?

Helm doesn’t automatically update your local Helm repository cache. You should alway update your local cache in your local Helm repository before you install, update, or search.

You need to update your local cache by running the command helm repo update.

How do I add the CloudBees Helm chart museum to my Helm environment?

The command helm repo add https://public-charts.artifacts.cloudbees.com/repository/public/ adds the CloudBees Public Helm chart museum to your list of repositories.

You can view all of your Helm chart repositories with the command helm repo list.

How do I know what the Helm install command or update command will do to my environment?

Add --dry-run --debug to the Helm command to display the YAML that Helm intends to apply to your cluster. For example, if you want to see the YAML that will be applied during an update you can use helm upgrade cloudbees-core cloudbees/cloudbees-core --dry-run --debug

This will only show you the YAML that will be applied. It doesn’t provide you with the differences between what is running and what will be applied. If you want to see the changes that are being applied by the command, read the documentation for Using the Helm Diff plugin.

My environment was corrupted by my last Helm update. What can I do?

You can use the helm rollback command to roll back to a previous revision within a release.

See Common Helm commands for more information on using the helm rollback command.
Do I have to use cloudbees-core as the release name?

No, the release name can be anything you wish to use. It just has to be the only one in the cluster.

Why does the Helm chart version differ from the CloudBees CI?

Starting with CloudBees CI on modern cloud platforms 2.176.3.2, a Helm chart has been built for each release and published in the CloudBees Public Helm chart museum, public-charts.artifacts.cloudbees.com/repository/public.

In CloudBees CI on modern cloud platforms 2.176.3.2, the Helm chart includes OpenShift support. Also, the chart is published on the CloudBees public download site and the CloudBees Public Helm chart museum.

CloudBees attempted to use the CloudBees CI Release Number for the Helm chart version, but this was confusing. Starting with 2.176.3.2, the Helm chart has a chart version that is independent of the CloudBees CI release.

The chart version starts with 3.4.0; This eliminated the need for repackaging and deploying new charts for the previous releases. It also allowed the early adopters to use the standard helm upgrade process to upgrade their installation of CloudBees CI on modern cloud platforms.

What version of CloudBees CI added support for Helm?
Table 1. Helm charts and supported environments
CloudBees CI version Helm chart version Supports Kubernetes Supports OpenShift

2.164.1.2

2.164.1.2

Yes

No

2.176.1.4

2.176.104

Yes

No

2.176.2.3

2.176.203

Yes

No

2.164.3.2

2.164.302

Yes

No

2.176.3.2 and higher

3.4.0 and higher

Yes

Yes

Why did the CloudBees CI YAML file order change?

Starting with CloudBees CI on modern cloud platforms 2.176.3.2, CloudBees CI Helm chart 3.4.0, the installation YAML is created using the helm template.

How can I retrieve the values.yaml file used for my current installation?

helm get values RELEASE_NAME gives you the current values for the specified release. For example, helm get values cloudbees-core, assuming you already have an installed release named cloudbees-core in the current namespace.

helm show values CHART gives you the default values for a given chart. For example, helm show values cloudbees/cloudbees-core.

What is the difference between helm repo update and helm upgrade?

helm repo update retrieves the latest metadata from remote repositories.

helm upgrade upgrades to the latest version available for the given chart.

What are some best practices for using Helm?

Store chart coordinates (name and version) and input values.yaml under version control, and always use them when applying a change to the product.

Can I use Helm in an air-gapped environment?

When working in an air-gapped environment, the following method can be applied to download and install the Helm chart:

  1. Use helm fetch to download a Helm chart from the chart repository.

  2. Copy the Helm chart archive over to the air-gapped environment.

  3. Use helm install [NAME] [CHART] [flags] where [CHART] refers to the Helm chart archive to install the Helm chart in the air-gapped Kubernetes cluster.