GKE Helm Error: no available release name found

Today I was testing helm deployment in GKE. I create the tiller rbac and init helm from the cloud shell in GCP.

I was able to create helm chart by using:

helm create nginx-demo

However, I was not able to install the helm chart.

nick_kou@cloudshell:~$ helm install nginx-demo
Error: no available release name found

I tried to change directory and give a name, but I was giving another error:

nick_kou@cloudshell:~/nginx-demo$ helm install nginx-demo
Error: failed to download "nginx-demo" (hint: running `helm repo update` may help)

I did upgrade the repo, but it still doesn’t work:

nick_kou@cloudshell:~/nginx-demo$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Skip local chart repository
...Successfully got an update from the "jfelten" chart repository
...Successfully got an update from the "jetstack" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete.
nick_kou@cloudshell:~/nginx-demo$ helm install nginx-demo
Error: failed to download "nginx-demo" (hint: running `helm repo update` may help)

After a few minutes investigation on tiller’s log. I found it doesn’t init properly. So I did init by using the proper service account.

helm init --service-account tiller --upgrade

And then I’m able to install the helm chart:

nick_kou@cloudshell:~$ helm install nginx-demo
NAME:   foppish-jellyfish
LAST DEPLOYED: Thu Sep  5 10:56:48 2019
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==> v1/Deployment
NAME                          READY  UP-TO-DATE  AVAILABLE  AGE
foppish-jellyfish-nginx-demo  0/1    1           0          0s

==> v1/Pod(related)
NAME                                           READY  STATUS             RESTARTS  AGE
foppish-jellyfish-nginx-demo-757fcbcd97-9kpv5  0/1    ContainerCreating  0         0s

==> v1/Service
NAME                          TYPE       CLUSTER-IP   EXTERNAL-IP  PORT(S)  AGE
foppish-jellyfish-nginx-demo  ClusterIP  10.12.9.208         80/TCP   0s


NOTES:
1. Get the application URL by running these commands:
  export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=nginx-demo,app.kubernetes.io/instance=foppish-jellyfish" -o jsonpath="{.items[0].metadata.name}")
  echo "Visit http://127.0.0.1:8080 to use your application"
  kubectl port-forward $POD_NAME 8080:80