user11931805
user11931805

Reputation:

Error: This command needs 1 argument: chart name

I am following Install OneAgent on Kubernetes official instructions while doing this I am getting the error mentioned in the title. when I add --name after helm install I am getting

Error: apiVersion 'v2' is not valid. The value must be "v1"

helm instructions:

helm install dynatrace-oneagent-operator \
dynatrace/dynatrace-oneagent-operator -n\
dynatrace --values values.yaml

Upvotes: 0

Views: 3487

Answers (3)

Vahe
Vahe

Reputation: 11

These errors are resolved for me! #This command needs 1 argument: chart name #apiVersion 'v2' is not valid. The value must be "v1" #release seq-charts failed: namespaces "seq" is forbidden: User "system:serviceaccount:kube-system:default" cannot get resource "namespaces" in API group "" in the namespace "seq"

I started using local PowerShell for Azure Kubernetes. These errors started when I made some changes to the Windows environment, but mine might work for you too.

PS C:\Users\{User}> Connect-AzAccount
PS C:\Users\{User}> Set-AzContext 'Subscription Name or ID'
PS C:\Users\{User}> az configure --defaults group=AKS
PS C:\Users\{User}> kubectl create namespace seq
PS C:\Users\{User}> kubectl create namespace prometheus-log
PS C:\Users\{User}> C:\ProgramData\chocolatey\choco upgrade chocolatey
PS C:\Users\{User}> C:\ProgramData\chocolatey\choco install kubernetes-helm 

After that.

 PS C:\Users\{User}> helm install --name prometheus prometheus-community/kube-prometheus-stack --namespace prometheus-log 
Error: This command needs 1 argument: chart name

After that, I tried this.

PS C:\Users\{User}> C:\Users\vahem\.azure-helm\helm install --name prometheus prometheus-community/kube-prometheus-stack --namespace prometheus-log 
Error: apiVersion 'v2' is not valid. The value must be "v1"

After that, I tried this.

PS C:\Users\{User}> helm install --name seq-charts --namespace seq --set persistence.existingClaim=seq-pvc stable/seq
Error: release seq-charts failed: namespaces "seq" is forbidden: User "system:serviceaccount:kube-system:default" cannot get resource "namespaces" in API group "" in the namespace "seq"

After much trial and error, I discovered that there are two different versions of 'helm' on the system. C:\Users{User}.azure-helm => V2.x.x
C:\ProgramData\chocolatey\lib\kubernetes-helm\tools\windows-amd64\helm =>V3.x.x

Finally I tried this and it worked great. Using 'helm v3.x.x' and no parameter name '--name'

PS C:\Users\{User}> C:\ProgramData\chocolatey\lib\kubernetes-helm\tools\windows-amd64\helm repo update
PS C:\Users\{User}> C:\ProgramData\chocolatey\lib\kubernetes-helm\tools\windows-amd64\helm install seq-charts --namespace seq --set persistence.existingClaim=seq-pvc stable/seq
PS C:\Users\{User}> C:\ProgramData\chocolatey\lib\kubernetes-helm\tools\windows-amd64\helm install prometheus prometheus-community/kube-prometheus-stack --namespace prometheus-log --set persistence.existingClaim=prometheus-pvc

It Worket Great For Me!

Upvotes: 1

mario
mario

Reputation: 11098

Well, if you're using this helm chart it's stated in its description that it requires helm 3:

The Dynatrace OneAgent Operator Helm Chart which supports the rollout and lifecycle of Dynatrace OneAgent in Kubernetes and OpenShift clusters.

This Helm Chart requires Helm 3. 👈

and you use Helm 2:

Client: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"} Server: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"}

As to your error message:

Error: apiVersion 'v2' is not valid. The value must be "v1"

it can be expected on helm 2 when running a chart that requires helm 3 as the apiVersion has been incremented from v1 to v2 only in helm 3. In fact this is one of the major differences between two releases of helm. You can read more about it here:

  1. Chart apiVersion:

Helm decides to increment the chart API version to v2 in Helm3:

# Chart.yaml
-apiVersion: v1 # Helm2
+apiVersion: v2 # Helm3
...

You can install Helm 3 easily by following this official guide.

Note that apart from using helm chart, you can also deploy OneAgent Operator on Kubernetes with kubectl and as you can read in the official dynatrace docs this is actually the recommended way of installation:

We recommend installing OneAgent Operator on Kubernetes with kubectl. If you prefer Helm, you can use the OneAgent Helm chart as a basic alternative.

Upvotes: 2

Azar
Azar

Reputation: 42

Please upgrade your helm version to 3. unless you are using a tillerless version of the helm2.

Upvotes: -1

Related Questions