Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

K8s: how to install charts from the Helm Hub

Disclaimer: I'm new to Kubernetes and Helm.

I am trying to install a Helm chart using the brand new Helm Hub and for the life of me I can't figure out how this is supposed to work.

A new version of Helm (3.0) was released only a few months ago with significant changes, one of them is that it doesn't come with any repositories configured. Helm released the Helm Hub which is supposed to be a centralized service to find charts.

I am trying to install a CloudBees Jenkins chart. This is what I get when I search the hub:

[me@localhost tmp]$ helm search hub cloudbees -o yaml
- app_version: 2.222.1.1
  description: The Continuous Delivery Solution for Enterprises
  url: https://hub.helm.sh/charts/cloudbees/cloudbees-core
  version: 3.12.0+80c17a044bc4
- app_version: 9.2.0.139827
  description: A Helm chart for CloudBees Flow
  url: https://hub.helm.sh/charts/cloudbees/cloudbees-flow
  version: 1.1.1
- app_version: 9.2.0.139827
  description: A Helm chart for CloudBees Flow Agent
  url: https://hub.helm.sh/charts/cloudbees/cloudbees-flow-agent
  version: 1.1.1
- app_version: 2.204.3.7
  description: CloudBees Jenkins Distribution provides development teams with a highly
    dependable, secure, Jenkins environment curated from the most recent supported
    Jenkins release. The distribution comes with a recommended catalog of tested plugins
    available through the CloudBees Assurance Program.
  url: https://hub.helm.sh/charts/cloudbees/cloudbees-jenkins-distribution
  version: 2.204.307
- app_version: 2.0.2
  description: Helm chart for sidecar injector webhook deployment
  url: https://hub.helm.sh/charts/cloudbees/cloudbees-sidecar-injector
  version: 2.0.2

So it looks like the chart I am looking for is available: cloudbees-jenkins-distribution.

However, I can't find any way to install from the hub or to add a repository based on the hub output. Some of the things I've tried:

[me@localhost tmp]$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "incubator" chart repository
...Successfully got an update from the "gitlab" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈ Happy Helming!⎈ 

[me@localhost tmp]$ helm install myJenkins cloudbees-jenkins-distribution
Error: failed to download "cloudbees-jenkins-distribution" (hint: running `helm repo update` may help)

[me@localhost tmp]$ helm repo add cbRepo https://hub.helm.sh/charts/cloudbees
Error: looks like "https://hub.helm.sh/charts/cloudbees" is not a valid chart repository or cannot be reached: error converting YAML to JSON: yaml: line 8: mapping values are not allowed in this context

[me@localhost tmp]$ helm repo add cbRepo https://hub.helm.sh/charts/cloudbees/cloudbees-jenkins-distribution
Error: looks like "https://hub.helm.sh/charts/cloudbees/cloudbees-jenkins-distribution" is not a valid chart repository or cannot be reached: error converting YAML to JSON: yaml: line 8: mapping values are not allowed in this context

The documentation really doesn't say much about how I'm supposed to go from the Helm Hub to an installed chart. What am I missing here?

like image 988
MisterStrickland Avatar asked Apr 02 '20 15:04

MisterStrickland


People also ask

How do I download Helm chart from artifact hub?

To install a chart from artifacthub.io via Artifactory: Navigate to the chart's page on artifacthub.io. For this demonstration we'll use the kubernetes-dashboard chart. Look for the "helm repo add" command to see the URL for the repository that stores this chart.

How do I install Helm chart on Kubernetes?

Install Helm 3 From Binary Step 1: Head over to the Github helm release page and copy the Linux amd64 link for the required version. Step 2: Download the binary using wget. Step 3: Untar the downloaded file. Step 4: Move the helm executable to the bin directory.

How do I get the chart from Helm repository?

After you've updated the repository, they can use the helm repo update command to get the latest chart information. Under the hood, the helm repo add and helm repo update commands are fetching the index. yaml file and storing them in the $XDG_CACHE_HOME/helm/repository/cache/ directory.


1 Answers

Helm Hub is NOT like a repo that you can add and install from it helm charts. It doesn't expose valid repos urls either. That's why you're getting the error message like below:

Error: looks like "https://hub.helm.sh/charts/cloudbees" is not a valid chart repository ...

when you're trying to run helm repo add on https://hub.helm.sh based urls.

I know it may seem pretty confusing but it just works like that, by its very design. Please refer to this discussion on Github. Specifically this comment explains it a bit more and I hope it also answers your question:

hub.helm.sh is not the helm repo, so it will not work the you trying, it is only meant to view and search for charts. check in there for chart repository and it that way, then you will be able to install the charts.

Unfortunatelly the official helm documentation doesn't explain it well enough. It mentions only:

helm search hub searches the Helm Hub, which comprises helm charts from dozens of different repositories.

But it shows "no explanation how to get from helm search repo which shows hub.helm.sh to helm repo add which magically shows the a new url to use." - as one user wrote in the thread mentioned above.

like image 91
mario Avatar answered Sep 21 '22 22:09

mario