# Helm Chart

#### Section 1: Introduction and Helm Basics

##### What is Helm?

Helm is often referred to as the package manager for Kubernetes. It enables you to define, install, and manage even the most complex Kubernetes applications. Helm uses a packaging format called charts, which include all the resources needed to run an application, service, or a complete cloud-native stack inside Kubernetes.

##### How to Install helm in Ubuntu

```basic
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm
```

##### Important Helm Commands

* `helm create [CHART]`: Scaffold a new Helm chart.
    
* `helm package [CHART]`: Package the chart into a chart archive.
    
* `helm install [NAME] [CHART]`: Install a Helm chart.
    
* `helm upgrade [NAME] [CHART]`: Upgrade an installed Helm chart.
    
* `helm uninstall [NAME]`: Uninstall an installed Helm chart.
    
* `helm list`: List all installed Helm charts.
    
* `helm rollback [NAME] [REVISION]`: Roll back a release to a specific revision.
    

#### Section 2: Prerequisites

* Helm installed
    
* Kubernetes cluster set up (e.g., Minikube, kind, or any cloud-based Kubernetes)
    
* Docker installed (Optional for custom images)
    
* Basic understanding of Kubernetes resources like Pod, Service, Deployment
    

#### Section 3: Create Helm Chart Structure

Run the following command to scaffold a new Helm chart:

```basic
helm create node-app-chart
```

This will create a folder named `node-app-chart` with the initial chart structure.

#### Section 8: Deploying the Helm Chart

Use these commands to package and deploy the chart:

```basic
# Package the chart (Optional)
helm package node-app-chart

# Deploy the chart
helm install my-node-app ./node-app-chart
```

#### Section 9: List the Deployment

```basic
# list the charts (Optional)
helm list

# Check the status
helm status <chart name>
```
