Deploy Grafana using Helm Chart
Grafana helm chart will help you to configure all its dependencies which makes it ready to ship instances using Kubernetes.
Download helm from here I used homebrew to install it.
brew install helm
Initialize the grafana helm chart repository
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
Pull the repo to your local system
helm pull grafana/grafana
This will download the grafana version in zip format, the next step would be to unzip the package.
Edit the values.yaml
If you want to customize the grafana config or let's say run OSS/Enterprise build with a specific version you can do it from here.
Install Helm Chart with the updated values.yaml file
To apply the changes you need to use the command below
helm install <name> ./grafana -f ./grafana/values.yaml
Note: Here ./grafana means the grafana extracted folder.
Creating the Pod & its components
The above command will generate an output similar to the below -
NAME: helmgrafanaLAST DEPLOYED: Mon Jul 4 23:11:47 2022NAMESPACE: defaultSTATUS: deployedREVISION: 1NOTES:1. Get your 'admin' user password by running:kubectl get secret --namespace default helmgrafana-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo2. The Grafana server can be accessed via port 80 on the following DNS name from within your cluster:my-release-grafana.default.svc.cluster.localGet the Grafana URL to visit by running these commands in the same shell:export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=grafana,app.kubernetes.io/instance=helmgrafana" -o jsonpath="{.items[0].metadata.name}")kubectl --namespace default port-forward $POD_NAME 30003. Login with the password from step 1 and the username: admin
Next Steps
1- Generate the password base64 token as mentioned in point 1 above
2- Finally port forward the pod & expose it to your localhost
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=grafana,app.kubernetes.io/instance=helmgrafana" -o jsonpath="{.items[0].metadata.name}")kubectl --namespace default port-forward $POD_NAME 3000
3- Use kubectl get pods to confirm the changes.
The final result
If everything is done you would see grafana running on localhost:3000