Helm is a tool that streamlines installing and managing Kubernetes applications. It is kind of a OS package manager like apt/yum/homebrew. In Helm we have term of Charts which are packages of pre-configured Kubernetes resources. Using these charts we can easily deploy the applications to our Kubernetes cluster.
Helm also maintains a list of stable charts on their Github repository. We can deploy them with a single command
helm install stable/<chart-name>.
I was working on the deployment of Loki stack few days ago. Grafana is one of the component that I needed. I used the following
helm install command as usual to deploy Grafana to my cluster.
helm install stable/grafana -n loki-grafana
The above command ran successfully. However, the deployment READY status kept stucking at
kubectl get deployment loki-grafana
By looking at its pod information, I found the pod’s Event recorded several errors related to the image pulling.
kubectl describe pod loki-grafana-5b9fdc85b8-rj9rt
grafana/grafana:6.2.3 image was not found. But it should be. This is stable chart release which will fetch the exact Grafana image and tag from Docker Hub repository.
So I tried to pull that image manually on my local machine to verify.
docker pull grafana/grafana:6.2.3
The same issue. It wasn’t available for my local Docker instance as well. Ok, final check, I went to the Grafana image tags on Docker Hub and recognized that the tag
6.2.3 was really missing.
So the tag was missing on the Docker Hub although Grafana Labs had made a release for their software and updated the Helm Chart. So the solution was to use the older version of Grafana (older tag) instead of
Back to the Grafana helm chart repository on Github, I found the config value need to be added, it is
image.tag which help to specify the Docker image tag we want to use during the Helm Chart installation.
helm install stable/grafana -n loki-grafana --set "image.tag=6.2.2"
Double check the pod’s event log, it is working now!