user674669
user674669

Reputation: 12352

helm error "Error: This command needs 2 arguments: release name, chart path"

I am getting an error in my kubernetes cluster while upgrading my install of kamus

$ helm --debug upgrade --install soluto/kamus

[debug] Created tunnel using local port: '64252'
[debug] SERVER: "127.0.0.1:64252"
Error: This command needs 2 arguments: release name, chart path

Using helm version 2.13.1

This error is also known to be cause by not correctly using --set correctly or as intended.

As an example when upgrading my ingress-nginx/ingress-nginx installing as such:

 --set "controller.service.annotations.service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=/healthz,"controller.service.annotations.service\.beta\.kubernetes\.io/azure-dns-label-name"=$DNS_LABEL

This caused the same error as listed above.

When I removed the quotations it worked as intended.

 --set controller.service.annotations.service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path=/healthz,controller.service.annotations.service\.beta\.kubernetes\.io/azure-dns-label-name=$DNS_LABEL

The error in this case had nothing to do with not correctly setting a release name and or chart. More explanation of --set issues and solutions are below.

Upvotes: 11

Views: 57895

Answers (8)

Saikiran
Saikiran

Reputation: 191

for me it was extra spaces with helm upgrade.

If you are using multi line command with backslash ( \ ), Ensure there are no spaces after the backslash.

Upvotes: 2

xbmono
xbmono

Reputation: 2316

I had similar error too. Turned out that the problem was the values that I've been passing as argument. So take this example:

helm upgrade my-release ./mychart --set mypropert.name=${MY_PROP}

If the value of ${MY_PROP} has some whitespace or dash - or some other strange characters you get that misleading error. So ensure you enclose your arguments with single-quote:

helm upgrade my-release ./mychart --set 'mypropert.name=${MY_PROP}'

Upvotes: 3

I got this error when I add first line parameters

--install --create-namespace --wait --atomic

to the end of the parameter list again. You may want to check duplicate parameters, or duplicate --install command if you are using a parameter builder.

Upvotes: 0

dz902
dz902

Reputation: 5828

I encountered this error when I do --set key value instead of --set key=value. The cause was as stupid as the error message.

Upvotes: 13

Rotem jackoby
Rotem jackoby

Reputation: 22128

I ran into this error (too) many times.

The first thing that should come to your mind is typos in the command.

For example:

  1. If you're passing location of values.yaml with -f <path-to-values.yaml> you should make sure its in the relevant order related to flags that were passed.
  2. If you're passing inline values with the --set flag you should make sure that there are no whitespace in the variable assignment like in this case: --set someVar= $SomeValue.

Run helm help upgrade or helm help install to get more information about each commands.

Upvotes: 1

Arun
Arun

Reputation: 1763

May be this detailed information will be helpful for someone new to this !

1. My helm files are here (I made changes in values.yaml to upgrade):

controlplane $ pwd
/root/existing2helm
controlplane $ ls
Chart.yaml  charts  templates  values.yaml

2. Listing current releases

controlplane $ helm list 
NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
newdeploybyhelm default         2               2021-02-01 00:39:11.596751325 +0000 UTC deployed        existing2helm-0.1.0     1.16.0     

3. Finally executing the upgrade command

controlplane $ helm upgrade newdeploybyhelm /root/existing2helm
Release "newdeploybyhelm" has been upgraded. Happy Helming!
NAME: newdeploybyhelm
LAST DEPLOYED: Mon Feb  1 00:48:30 2021
NAMESPACE: default
STATUS: deployed

Upvotes: 0

edbighead
edbighead

Reputation: 6314

Helm upgrade command requires release name and chart path. In your case, you missed release name.

helm upgrade [RELEASE] [CHART] [flags]

helm --debug upgrade --install kamus soluto/kamus should work.

Upvotes: 12

Jared Rewerts
Jared Rewerts

Reputation: 131

Helm upgrade requires both a release name and the chart it references. From the documentation:

Usage: helm upgrade [RELEASE] [CHART] [flags]

According to the documentation for the --install flag, the command you referenced seems like it should work, but it may be due to differing Helm versions.

helm install soluto/kamus works for me.

Upvotes: 2

Related Questions