Deploy Kubernetes Helm Charts in Minutes
Tags: helm, kubernetes, tutorial, devops
Published: 2023-05-11 04:38:02

With the ever-increasing popularity of Kubernetes, the cloud-native landscape is gaining attention in developer communities. Helm, on the other hand, came as a saviour to help developers with Kubernetes-related deployments by making them super simple with the so-called 'Helm Charts'. 

A Helm chart consists of all the necessary YAML manifests and templates that are needed to describe Kubernetes resources (Deployments, Secrets, CRDs, etc.) and other configurations needed for the Kubernetes application. Every application can now be packaged as a Helm chart and deployed wherever you want. 

Today, in this tutorial, I'll show you how you can deploy any [publicly available Helm chart](https://github.com/bitnami/charts/tree/main/bitnami) in minutes using Harness CD.

## Prerequisites
- Free [Harness CD](https://app.harness.io/auth/#/signup/?module=cd&utm_source=internal&utm_medium=social&utm_campaign=devadvocacy&utm_content=pavan_helm_tutorial&utm_term=get-started) account with free builds to deploy our helm chart.
- A Kubernetes cluster access from any cloud provider.

## Tutorial
Login to your [Harness CD](https://app.harness.io/auth/#/signup/?module=cd&utm_source=internal&utm_medium=social&utm_campaign=devadvocacy&utm_content=pavan_helm_tutorial&utm_term=get-started) module and start your free plan where you get free builds.
![Harness CD module](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v4d1ly3e4kzay2yw3pms.png)

In this tutorial, we will take Grafana Helm chart as an example to deploy. The Grafana chart is available here - https://github.com/bitnami/charts/tree/main/bitnami/grafana

Create a project to start with and name it.
![create project](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s2y3n7mrumkcecr71s7w.png)

Invite collaborators to your project if you want
![Invite collaborators](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ohzubtb11r9s2csd88uy.png)

Select 'Continuous Delivery' from the modules available.
![cd module](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y62520fm0rpc2dtsf6ys.png)

For this deployment pipeline, we need Harness Delegate to be up and running. Let's create the Harness Delegate.
![Harness delegate setup](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s9z88pese9r1nlqxu32u.png)

**So, what is Harness Delegate?**
Delegate is a service that runs on your infrastructure to execute tasks on behalf of the Harness platform.

Now, you need to install this Harness Delegate on your Kubernetes cluster.

Make sure you have a cluster access from any cloud provider.
You can also use Minikube or Kind.
![Installing delegate](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kyo32luot8vb2g4pcmro.png)

Follow the step-by-step guide as shown and install the Delegate.
![delegate installation](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6xtdpy4k2hu2j8yg2row.png)

Once done, verify if the Delegate has been installed successfully.
![delegate successful](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gs4e08czahdddlemglyk.png)

Once the Harness Delegate is installed, go back to the pipeline dashboard and create a pipeline.
![create pipepine now](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q5hhxh4yai4rqhgwolc9.png)

Name the pipeline and make sure to select 'Inline' setup for your pipeline.
![Inline setup](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2bisr55d5oov9n2zokxh.png)

Next, select the 'Deploy' stage and continue.
![deploy stage](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4ngwnzph0esbj4159ble.png)

Name the stage and deployment type as 'Native Helm'.
![native helm](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0xbf32ebbkrz5mz34kl9.png)

Continue to create a service and add the manifest details.
![add manifest details](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fvni6cm7h41jbj4jxff4.png)

Add manifest type as 'Helm Chart'
![details of manifest](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zavpe0ydljto1rec46rh.png)

Specify Helm chart store as 'HTTP Helm'
![http helm store](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qm0p2q2ze8cxmh2jlrw3.png)

Add the Helm store details
![helm store details](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4n7i2ikydubxedzzoxs9.png)

Create a new HTTP Helm repo connector.
![helm repo connector](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aucq2ga5g689m5b4e35v.png)

Add all the required details
![helm http details](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3bntvjk2e4jvkgexdxar.png)

Finally connect your manifest details with the Delegate running. 
![connect with delegate](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g1znfdtgwc6azaqul7w2.png)

Make sure the connection to the Delegate is successful. 

Add the final manifest details 
![mani details](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/34m1su3e0mb9763p8d9t.png)

Save everything and you can see the manifest details added for the service.
![manifest service details](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8x96p0d97o6bs56x91hx.png)

Next, specify the environment and the infrastructure.
Create a pre-prod environment and select 'Kubernetes' as the infrastructure.
![env and infra](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rq44aontrduyn41ihicv.png)

Select the execution strategy as 'Rolling'
![select the deployment type](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n69fp1e845yyzkv307r5.png)

Finally, this is how your pipeline should look like.
![Helm deployment](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q8rbr4n63xvsp5n9dxn2.png)

Save everything and run the pipeline. You should see a successful Grafana Helm chart deployment.
![grafana chart](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xkmwvbgiig1a9x0mhlb5.png)

You can access the service from the logs shared in the console.
![access the service](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/geewft8dnchcv81ce54m.png)

![handle the connection](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ueeour1h12ykgwp5kiw4.png)

Get the Grafana credentials. 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uwgcu8xa0bmn9c8rm70n.png)

Open the http://localhost:8080/ on your machine and you should see the Grafana login page.
![grafana login](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vsq1wroinfszndhkf1gq.jpeg)

Login with the credentials and you should see the Grafana dashboard.
![Grafana dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tkbr2ku6ue4rr14yuoye.png)

This way, we can easily deploy any publicly available Helm chart using Harness CD. 

This way, you can easily deploy any Helm charts from this public repo - https://github.com/bitnami/charts/tree/main/bitnami in just minutes. 

Try [Harness CD](https://app.harness.io/auth/#/signup/?module=cd&utm_source=internal&utm_medium=social&utm_campaign=devadvocacy&utm_content=pavan_helm_tutorial&utm_term=get-started), the most advanced and trusted continuous delivery platform.