uberrebu
uberrebu

Reputation: 4349

How can I list all available charts under a helm repo?

I have a helm repo:

helm repo list

NAME URL

stable https://kubernetes-charts.storage.googleapis.com

local http://127.0.0.1:8879/charts

and I want to list all the charts available or search the charts under stable helm repo.

How do I do this?

No command so far to list available charts under a helm repo or just verify that a chart exists.

Upvotes: 75

Views: 168842

Answers (16)

Dmitry
Dmitry

Reputation: 823

With latest yq syntax:

curl -sS https://charts.helm.sh/stable/index.yaml |
    yq  '.entries[].[] | .name + " " + .version'

result:

acs-engine-autoscaler 2.2.2
acs-engine-autoscaler 2.2.1
...

Upvotes: 0

flaviut
flaviut

Reputation: 2143

You don't actually need helm at all to accomplish this.

Let's say you're trying to find the list of packages in https://charts.helm.sh/stable/.

Just add index.yaml to the URL, so you get https://charts.helm.sh/stable/index.yaml. This contains a list of everything in the repo.

Additionally, you can use yq to get this data in a more useful format:

$ curl https://charts.helm.sh/stable/index.yaml | yq --compact-output '.entries | to_entries | .[].value[] | {name, version}'
{"name":"acs-engine-autoscaler","version":"2.2.2"}
{"name":"acs-engine-autoscaler","version":"2.2.1"}
{"name":"acs-engine-autoscaler","version":"2.2.0"}
...

Upvotes: 3

civic.LiLister
civic.LiLister

Reputation: 2197

One more thing to add: If you'd like to list the develop versions (like 1.0.1-1234), you need one more parameter: --devel

For example:

helm search repo ingress-nginx --devel -l

Otherwise the develop versions will not be listed.

Upvotes: 1

Gian97
Gian97

Reputation: 1

Manual and hacky way:

  • helm repo update
  • Find the cache path for your operating system at the bottom of the docs https://helm.sh/docs/helm/helm/
  • Find the file <repository_name>-charts.txt

Upvotes: 0

Jose Armesto
Jose Armesto

Reputation: 13789

You can use helm search to search for Helm charts. There is an interesting option that you can pass to helm search that will let you use regex to search for Charts. That way, you can pass a regex that matches with any Chart name. For example

helm search repo -r ".*"

That will show all the Charts on all repositories.

You can additionaly use --devel flag with above command to show development version charts

Upvotes: 20

todd_dsm
todd_dsm

Reputation: 1076

As of Helm v3x, seems like the easiest method would be to:

helm search repo $repoName -l

Should produce a list of packages within the specified repo ($repoName); then, to further specify a package name:

helm search repo $repoName/$packageName

That should narrow results down to something manageable.

Upvotes: 9

VivekDev
VivekDev

Reputation: 25543

You can use grep as well as follows.

Get a list of all of the repos added.

helm repo list

Update your repos

helm repo update

Search for 'nginx' in all of the repos that you have

helm search repo nginx

List all the packages in bitnami

helm search repo bitnami

Finally you can use grep to filter out in a given repo

helm search repo bitnami | grep nginx

Upvotes: 4

Julien Carsique
Julien Carsique

Reputation: 3995

Helm 2: helm search -r '\vstable/.*\v' (1)

Helm 3: helm search repo -r '\vstable/.*\v' (2)

From the documentation:

To look for charts with a particular name (such as stable/mysql), try searching using vertical tabs (\v). Vertical tabs are used as the delimiter between search fields.

Upvotes: 1

Sahadat Hossain
Sahadat Hossain

Reputation: 4379

This helped me:

  • helm repo update: for updating the repos.
  • helm search repo <repo_name>: for seeing all the helm charts that are in <repo_name> repo.

Upvotes: 0

Snowcrash
Snowcrash

Reputation: 86317

Having gone through all the answers in this question, the answer seems to be:

You can't.

Upvotes: 2

rouble
rouble

Reputation: 18221

First, always update your local cache:

helm repo update

Then, you can list all charts by doing:

helm search repo

Or, you can do a case insensitive match on any part of chart name using the following:

helm search repo [your_search_string]

Lastly, if you want to list all the versions you can use the -l/--version argument:

# Lists all versions of all charts
helm search repo -l 

# Lists all versions of all chart names that contain search string
helm search repo -l [your_search_string]

Upvotes: 86

TechFriend
TechFriend

Reputation: 51

Simply helm search repo to list all the charts and helm search repo search_text to list charts based on the input search text.

For Example: helm search repo my_chart

Upvotes: 0

Sagar
Sagar

Reputation: 61

you can do a "helm search repo" . I am using helm version.BuildInfo{Version:"v3.0.1"} Hope it helps

Upvotes: 3

Thimira Dunuville
Thimira Dunuville

Reputation: 69

To list all the available charts for a specific application, you can try below command:

  • Repository - stable
  • Application - sample-app

    helm search stable/sample-app -l

Upvotes: 1

Margach Chris
Margach Chris

Reputation: 1749

Add the repo and search it:

$helm add <repo> <repo url>

$helm search --regexp <repo>/*

Replace repo with the repo you want to search, say jetstack

$ helm search --regexp jetstack/*

Upvotes: 0

harbinja
harbinja

Reputation: 958

I believe you're looking for:

helm search

In your case

helm search stable

or

helm search local

EDIT: Doc link: https://helm.sh/docs/using_helm/#helm-search-finding-charts

Upvotes: 4

Related Questions