# Helm Cheatsheet

Here is a list of commands for installing well-known charts using Helm. Most of them come from the official Bitnami repository, so you'll need to add the Bitnami repo first.

```bash
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
```

## Redis Single Node

```bash
helm install redis bitnami/redis \
    --set architecture=standalone \
    --set auth.password=STRONG-PASSWORD-12345678 \
    --set fullnameOverride=redis \
    --set master.persistence.enabled=false \
    --set master.disableCommands=false
```

## Redis Sentinel

```bash
helm install redis bitnami/redis \
    --set auth.enabled=true \
    --set auth.sentinel=true \
    --set auth.password=STRONG-PASSWORD-12345678 \
    --set fullnameOverride=redis \
    --set master.persistence.enabled=false \
    --set master.disableCommands=false \
    --set sentinel.enabled=true \
    --set sentinel.masterSet=mymaster \
    --set replica.replicaCount=3 \
    --set replica.persistence.enabled=false
```

## Redis Cluster

```bash
helm install redis bitnami/redis \
    --set architecture=replication \
    --set fullnameOverride=redis \
    --set auth.password=STRONG-PASSWORD-12345678 \
    --set master.count=3 \
    --set replica.replicaCount=3 \
    --set master.persistence.enabled=false \
    --set replica.persistence.enabled=false \
    --set serviceAccount.create=true \
    --set podSecurityPolicy.create=false \
    --set master.podSecurityContext.enabled=false \
    --set replica.podSecurityContext.enabled=false \
    --set master.podAntiAffinityPreset=hard
```

## ElasticSearch Single Node

```bash
helm install elasticsearch bitnami/elasticsearch \
    --set master.replicas=1 \
    --set fullnameOverride=elasticsearch \
    --set master.persistence.enabled=false
```

## ElasticSearch Cluster

```bash
helm install elasticsearch bitnami/elasticsearch \
    --set master.replicas=3 \
    --set data.replicaCount=3 \
    --set coordinating.replicaCount=3 \
    --set fullnameOverride=elasticsearch \
    --set master.persistence.enabled=false \
    --set data.persistence.enabled=false \
    --set coordinating.persistence.enabled=false
```

## Kafka and Zookeeper

```bash
helm install kafka bitnami/kafka \
    --set fullnameOverride=kafka \
    --set podSecurityContext.enabled=false \
    --set containerSecurityContext.enabled=false \
    --set serviceAccount.create=false \
    --set autoDiscovery.enabled=false \
    --set persistence.enabled=false \
    --set zookeeper.persistence.enabled=false
```

## RabbitMQ Single Node

```bash
helm install rabbitmq bitnami/rabbitmq \
    --set auth.username=rabbitmq \
    --set auth.password=STRONG-PASSWORD-12345678 \
    --set clustering.enabled=false \
    --set podSecurityContext.enabled=false \
    --set serviceAccount.create=false \
    --set rbac.create=false \
    --set persistence.selector=volume=rabbitmq
```

## RabbitMQ Cluster

```bash
helm install rabbitmq-rdms bitnami/rabbitmq \
    --set fullnameOverride=rabbitmq \
    --set auth.username=rdms-rabbitmq-user \
    --set auth.password=STRONG-PASSWORD-12345678 \
    --set clustering.enabled=true \
    --set replicaCount=3 \
    --set serviceAccount.create=true \
    --set podSecurityContext.enabled=false \
    --set containerSecurityContext.enabled=false \
    --set extraPlugins='rabbitmq_shovel rabbitmq_shovel_management'
```

## Traefik DaemonSet

```bash
helm repo add traefik https://traefik.github.io/charts
helm install traefik traefik/traefik \
    --set deployment.kind=DaemonSet \
    --set env[0].name=TZ \
    --set env[0].value=Asia/Dhaka \
    --set ingressRoute.dashboard.enabled=false \
    --set ports.web.port=80 \
    --set ports.websecure.port=443 \
    --set service.type=LoadBalancer
```
