# How To - Helm

![ZwpNBdmL.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1609286867591/PgmQhuhv_.jpeg)

# Helm

The package manager for Kubernetes

Website: https://helm.sh

Helm Documentation: https://helm.sh/docs/

Chart - It's a Helm package which contains all of the resource definitions necessary to run an application or service inside a Kubernetes cluster. 

Repository - It's a place where charts are stored and shared thru.

Release - It's an instance of a chart running in a Kubernetes cluster. 


### Install Helm

```
brew install helm
```

### Verify Installed Helm Version

```
helm version
```

### Helm Help

```
helm help
```

### Initialize a Helm Chart Repository

```
helm repo add stable https://charts.helm.sh/stable
```

### Search Repositories for a Keyword in Charts

```
helm search repo stable
```

### Update Information of Available Charts Locally from Chart Repositories

```
helm repo update 
```

### List Chart Repositories

```
helm repo list
```

### Show Chart Definition

```
helm show chart stable/mysql
```

### Show All Chart Information 

```
helm show all stable/mysql
```

### Search the Artifact Hub

Lists helm charts from dozens of different repositories.

```
helm search hub 
```

### Search the Added Local Repository 

This search is done over local data, and no public network connection is needed.

```
helm search repo 
```

### Install an Example Chart

```
helm install stable/mysql --generate-name
```

### View Configurable Chart Options 

```
helm show values stable/mariadb 
```

### View Affected Config Change 

```
helm get values <chart-name>  
```

### View All Deployed Releases  

```
helm list 
```

### Show All Retained Release Records  

Note: Includes record for failed or deleted items

```
helm list --all 
```

### Display Release Status

```
helm status <chart-name>
```

### Uninstall a Release

```
helm uninstall <chart-name>
```

### Upgrade a Release

```
helm upgrade
```

### Rollback Helm Chart to Previous Version

```
helm rollback [RELEASE] [REVISION]
```

### Create a New Chart

```
helm create <chart-name>
```

### Package Chart into an Archive

```
helm package <chart-name>
```

### Examine Chart for Possible Issues

```
helm lint ./<chart-name>
```

### Test Chart Release

```
helm test [RELEASE] [flags]
```

