Deploy Pulse Databases via Helm
This page describes how to install each database component of the helm-databases umbrella Helm chart on OpenShift.
Info
Note: All commands assume you are running from the repository root, which is the parent directory of helm-databases/.
Common Parameters
These parameters are shared across most or all database installations.
Parameter | Description |
global.openshift | Enable OpenShift-specific configurations. Set to true for OpenShift clusters. |
global.imagePullSecrets[0] | Name of the Kubernetes secret used to pull images from a private registry. |
global.imagePullPolicy | Image pull policy. Valid values are Always, IfNotPresent, and Never. |
global.storageClassName | StorageClass to use for persistent volume claims. |
global.imageCredentials.password | Base64-encoded Docker registry credentials token. |
mongodb.managedSecurityContext | Let the operator manage the security context. Required for OpenShift. |
nats.global.image.pullSecretNames[0] | Image pull secret name for the NATS sub-chart. |
1. MongoDB
Installation Command
helm install <RELEASE_NAME> ./helm-databases \
-n <NAMESPACE> --create-namespace \
-f helm-databases/values/mongo-only.yaml \
--set mongodb.cr.version="<MongoDB Version>" \
--set mongodb.cr.mongodImage="<MongoDB Image>" \
--set global.openshift=<true|false> \
--set mongodb.managedSecurityContext=<true|false> \
--set global.imagePullSecrets[0]=<Image Pull Secret Name> \
--set mongodb.registry.imagePullSecrets=<Image Pull Secret Name> \
--set global.imagePullPolicy=<Image Pull Policy> \
--set global.storageClassName='<Storage Class Name>' \
--set global.imageCredentials.password='<Base64 Encoded Registry Token>' \
--set mongodb.cr.storage.size=<Storage Size> \
--set mongodb.cr.resources.limits.cpu=<CPU Limit> \
--set mongodb.cr.resources.limits.memory=<Memory Limit> \
--set mongodb.cr.resources.requests.cpu=<CPU Request> \
--set mongodb.cr.resources.requests.memory=<Memory Request> \
--timeout <Timeout Duration>
Example Command for OpenShift
helm install pulse-mongo ./helm-databases \
-n pulse-mongo --create-namespace \
-f helm-databases/values/mongo-only.yaml \
--set mongodb.cr.version="8.0.18" \
--set mongodb.cr.mongodImage="191579300362.dkr.ecr.us-east-1.amazonaws.com/acceldata/ad-database:testBuild-k8sqe" \
--set global.openshift=true \
--set mongodb.managedSecurityContext=true \
--set global.imagePullSecrets[0]=adreg \
--set mongodb.registry.imagePullSecrets=adreg \
--set global.imagePullPolicy=IfNotPresent \
--set global.storageClassName='gp2-csi' \
--set global.imageCredentials.password='<BASE64_ENCODED_TOKEN>' \
--set mongodb.cr.storage.size=50Gi \
--set mongodb.cr.resources.limits.cpu=1 \
--set mongodb.cr.resources.limits.memory=4Gi \
--set mongodb.cr.resources.requests.cpu=500m \
--set mongodb.cr.resources.requests.memory=2Gi \
--timeout 20m
Example Command for Vanilla Kubernetes
helm install pulse-mongo ./helm-databases \
-n pulse-mongo --create-namespace \
-f helm-databases/values/mongo-only.yaml \
--set mongodb.cr.version="8.0.18" \
--set mongodb.cr.mongodImage="191579300362.dkr.ecr.us-east-1.amazonaws.com/acceldata/ad-database:testBuild-k8sqe" \
--set global.imagePullSecrets[0]=adreg \
--set mongodb.registry.imagePullSecrets=adreg \
--set global.imagePullPolicy=IfNotPresent \
--set global.storageClassName='gp2-csi' \
--set global.imageCredentials.password='<BASE64_ENCODED_TOKEN>' \
--set mongodb.cr.storage.size=50Gi \
--set mongodb.cr.resources.limits.cpu=1 \
--set mongodb.cr.resources.limits.memory=4Gi \
--set mongodb.cr.resources.requests.cpu=500m \
--set mongodb.cr.resources.requests.memory=2Gi \
--timeout 20m
Parameter Reference
Parameter | Description |
mongodb.cr.version | MongoDB server version to deploy. |
mongodb.cr.mongodImage | Full image path, in registry/repo:tag format, for the MongoDB container. |
mongodb.managedSecurityContext | Let the MongoDB operator manage the pod security context. Required for OpenShift. |
mongodb.registry.imagePullSecrets | Image pull secret name used by the MongoDB operator. |
mongodb.cr.storage.size | Persistent volume size for MongoDB data. |
mongodb.cr.resources.limits.cpu | CPU limit for the MongoDB pod. |
mongodb.cr.resources.limits.memory | Memory limit for the MongoDB pod. |
mongodb.cr.resources.requests.cpu | CPU request for the MongoDB pod. |
mongodb.cr.resources.requests.memory | Memory request for the MongoDB pod. |
--timeout | Maximum time Helm will wait for the install to complete. |
2. VictoriaMetrics
Installation Command
helm install <RELEASE_NAME> ./helm-databases \
-n <NAMESPACE> --create-namespace \
--set victoriametrics.cr.auth.username=<VM Auth Username> \
--set 'victoriametrics.cr.auth.password=<VM Auth Password>' \
--set mongodb.managedSecurityContext=<true|false> \
--set global.openshift=<true|false> \
--set nats.global.image.pullSecretNames[0]=<Image Pull Secret Name> \
--set global.storageClassName='<Storage Class Name>' \
--set global.imageCredentials.password='<Base64 Encoded Registry Token>' \
--set victoriametrics.cr.vmstorage.storage.size=<VMStorage PV Size> \
--set victoriametrics.cr.vmstorage.resources.limits.cpu=<VMStorage CPU Limit> \
--set victoriametrics.cr.vmstorage.resources.limits.memory=<VMStorage Memory Limit> \
--set victoriametrics.cr.vmstorage.resources.requests.cpu=<VMStorage CPU Request> \
--set victoriametrics.cr.vmstorage.resources.requests.memory=<VMStorage Memory Request> \
--set victoriametrics.cr.vmselect.storage.size=<VMSelect PV Size> \
--set victoriametrics.cr.vmselect.resources.limits.cpu=<VMSelect CPU Limit> \
--set victoriametrics.cr.vmselect.resources.limits.memory=<VMSelect Memory Limit> \
--set victoriametrics.cr.vmselect.resources.requests.cpu=<VMSelect CPU Request> \
--set victoriametrics.cr.vmselect.resources.requests.memory=<VMSelect Memory Request> \
--set victoriametrics.cr.vminsert.resources.limits.cpu=<VMInsert CPU Limit> \
--set victoriametrics.cr.vminsert.resources.limits.memory=<VMInsert Memory Limit> \
--set victoriametrics.cr.vminsert.resources.requests.cpu=<VMInsert CPU Request> \
--set victoriametrics.cr.vminsert.resources.requests.memory=<VMInsert Memory Request> \
-f helm-databases/values/victoriametrics-only.yaml
Post-Install Upgrade
After install, run an upgrade to reconcile values:
helm upgrade <RELEASE_NAME> ./helm-databases \
--namespace <NAMESPACE> \
--reuse-values
Example Command for OpenShift
helm install pulse-vm ./helm-databases \
-n pulse-vm --create-namespace \
--set victoriametrics.cr.auth.username=acceldata \
--set 'victoriametrics.cr.auth.password=D@t@Ops' \
--set mongodb.managedSecurityContext=true \
--set global.openshift=true \
--set nats.global.image.pullSecretNames[0]=adreg \
--set global.storageClassName='gp2-csi' \
--set global.imageCredentials.password='<BASE64_ENCODED_TOKEN>' \
--set victoriametrics.cr.vmstorage.storage.size=50Gi \
--set victoriametrics.cr.vmstorage.resources.limits.cpu=1 \
--set victoriametrics.cr.vmstorage.resources.limits.memory=4Gi \
--set victoriametrics.cr.vmstorage.resources.requests.cpu=500m \
--set victoriametrics.cr.vmstorage.resources.requests.memory=1Gi \
--set victoriametrics.cr.vmselect.storage.size=10Gi \
--set victoriametrics.cr.vmselect.resources.limits.cpu=1 \
--set victoriametrics.cr.vmselect.resources.limits.memory=2Gi \
--set victoriametrics.cr.vmselect.resources.requests.cpu=500m \
--set victoriametrics.cr.vmselect.resources.requests.memory=512Mi \
--set victoriametrics.cr.vminsert.resources.limits.cpu=1 \
--set victoriametrics.cr.vminsert.resources.limits.memory=2Gi \
--set victoriametrics.cr.vminsert.resources.requests.cpu=500m \
--set victoriametrics.cr.vminsert.resources.requests.memory=512Mi \
-f helm-databases/values/victoriametrics-only.yaml
helm upgrade pulse-vm ./helm-databases \
--namespace pulse-vm \
--reuse-values
Example Command for Vanilla Kubernetes
helm install pulse-vm ./helm-databases \
-n pulse-vm --create-namespace \
--set victoriametrics.cr.auth.username=acceldata \
--set 'victoriametrics.cr.auth.password=D@t@Ops' \
--set nats.global.image.pullSecretNames[0]=adreg \
--set global.storageClassName='gp2-csi' \
--set global.imageCredentials.password='<BASE64_ENCODED_TOKEN>' \
--set victoriametrics.cr.vmstorage.storage.size=50Gi \
--set victoriametrics.cr.vmstorage.resources.limits.cpu=1 \
--set victoriametrics.cr.vmstorage.resources.limits.memory=4Gi \
--set victoriametrics.cr.vmstorage.resources.requests.cpu=500m \
--set victoriametrics.cr.vmstorage.resources.requests.memory=1Gi \
--set victoriametrics.cr.vmselect.storage.size=10Gi \
--set victoriametrics.cr.vmselect.resources.limits.cpu=1 \
--set victoriametrics.cr.vmselect.resources.limits.memory=2Gi \
--set victoriametrics.cr.vmselect.resources.requests.cpu=500m \
--set victoriametrics.cr.vmselect.resources.requests.memory=512Mi \
--set victoriametrics.cr.vminsert.resources.limits.cpu=1 \
--set victoriametrics.cr.vminsert.resources.limits.memory=2Gi \
--set victoriametrics.cr.vminsert.resources.requests.cpu=500m \
--set victoriametrics.cr.vminsert.resources.requests.memory=512Mi \
-f helm-databases/values/victoriametrics-only.yaml
helm upgrade pulse-vm ./helm-databases \
--namespace pulse-vm \
--reuse-values
Parameter Reference
Parameter | Description |
victoriametrics.cr.auth.username | Username for VictoriaMetrics basic auth. |
victoriametrics.cr.auth.password | Password for VictoriaMetrics basic auth. |
victoriametrics.cr.vmstorage.storage.size | Persistent volume size for the VMStorage component. |
victoriametrics.cr.vmstorage.resources.limits.cpu | CPU limit for VMStorage pods. |
victoriametrics.cr.vmstorage.resources.limits.memory | Memory limit for VMStorage pods. |
victoriametrics.cr.vmstorage.resources.requests.cpu | CPU request for VMStorage pods. |
victoriametrics.cr.vmstorage.resources.requests.memory | Memory request for VMStorage pods. |
victoriametrics.cr.vmselect.storage.size | Persistent volume size for the VMSelect component. |
victoriametrics.cr.vmselect.resources.limits.cpu | CPU limit for VMSelect pods. |
victoriametrics.cr.vmselect.resources.limits.memory | Memory limit for VMSelect pods. |
victoriametrics.cr.vmselect.resources.requests.cpu | CPU request for VMSelect pods. |
victoriametrics.cr.vmselect.resources.requests.memory | Memory request for VMSelect pods. |
victoriametrics.cr.vminsert.resources.limits.cpu | CPU limit for VMInsert pods. |
victoriametrics.cr.vminsert.resources.limits.memory | Memory limit for VMInsert pods. |
victoriametrics.cr.vminsert.resources.requests.cpu | CPU request for VMInsert pods. |
victoriametrics.cr.vminsert.resources.requests.memory | Memory request for VMInsert pods. |
3. Elasticsearch
Installation Command
helm install <RELEASE_NAME> ./helm-databases \
-n <NAMESPACE> --create-namespace \
--set global.openshift=<true|false> \
--set mongodb.managedSecurityContext=<true|false> \
--set elasticsearch.cr.auth.password="<Admin Password>" \
--set elasticsearch.cr.auth.additionalUsers[0].username=<Additional Username> \
--set elasticsearch.cr.auth.additionalUsers[0].password="<Additional User Password>" \
--set elasticsearch.cr.auth.additionalUsers[0].roles[0]=<User Role> \
--set elasticsearch.cr.tls.p12.password="<PKCS12 Keystore Password>" \
--set elasticsearch.cr.httpPort=<HTTP Port> \
--set elasticsearch.cr.tls.disabled=<true|false> \
--set nats.global.image.pullSecretNames[1]=<Image Pull Secret Name> \
--set global.storageClassName='<Storage Class Name>' \
--set global.imageCredentials.password='<Base64 Encoded Registry Token>' \
--set elasticsearch.cr.nodeSets[0].name=<NodeSet Name> \
--set elasticsearch.cr.nodeSets[0].count=<Node Count> \
--set elasticsearch.cr.nodeSets[0].config.node\.store\.allow_mmap=<true|false> \
--set elasticsearch.cr.nodeSets[0].storage.size=<Storage Size> \
--set elasticsearch.cr.nodeSets[0].resources.limits.cpu=<CPU Limit> \
--set elasticsearch.cr.nodeSets[0].resources.limits.memory=<Memory Limit> \
--set elasticsearch.cr.nodeSets[0].resources.requests.cpu=<CPU Request> \
--set elasticsearch.cr.nodeSets[0].resources.requests.memory=<Memory Request> \
-f helm-databases/values/elastic-only.yaml
Post-Install Upgrade
After install, run an upgrade to reconcile values:
helm upgrade <RELEASE_NAME> ./helm-databases \
--namespace <NAMESPACE> \
--reuse-values
Example Command for OpenShift
helm install pulse-es ./helm-databases \
-n pulse-es --create-namespace \
--set global.openshift=true \
--set mongodb.managedSecurityContext=true \
--set elasticsearch.cr.auth.password="admin_password" \
--set elasticsearch.cr.auth.additionalUsers[0].username=pulse \
--set elasticsearch.cr.auth.additionalUsers[0].password="data@ops" \
--set elasticsearch.cr.auth.additionalUsers[0].roles[0]=superuser \
--set elasticsearch.cr.tls.p12.password="" \
--set elasticsearch.cr.httpPort=19013 \
--set elasticsearch.cr.tls.disabled=true \
--set nats.global.image.pullSecretNames[1]=adreg \
--set global.storageClassName='gp2-csi' \
--set global.imageCredentials.password='<BASE64_ENCODED_TOKEN>' \
--set elasticsearch.cr.nodeSets[0].name=default \
--set elasticsearch.cr.nodeSets[0].count=3 \
--set elasticsearch.cr.nodeSets[0].config.node\.store\.allow_mmap=true \
--set elasticsearch.cr.nodeSets[0].storage.size=50Gi \
--set elasticsearch.cr.nodeSets[0].resources.limits.cpu=1 \
--set elasticsearch.cr.nodeSets[0].resources.limits.memory=8Gi \
--set elasticsearch.cr.nodeSets[0].resources.requests.cpu=500m \
--set elasticsearch.cr.nodeSets[0].resources.requests.memory=4Gi \
-f helm-databases/values/elastic-only.yaml
helm upgrade pulse-es ./helm-databases \
--namespace pulse-es \
--reuse-values
Example Command for Vanilla Kubernetes
helm install pulse-es ./helm-databases \
-n pulse-es --create-namespace \
--set elasticsearch.cr.auth.password="admin_password" \
--set elasticsearch.cr.auth.additionalUsers[0].username=pulse \
--set elasticsearch.cr.auth.additionalUsers[0].password="data@ops" \
--set elasticsearch.cr.auth.additionalUsers[0].roles[0]=superuser \
--set elasticsearch.cr.tls.p12.password="" \
--set elasticsearch.cr.httpPort=19013 \
--set elasticsearch.cr.tls.disabled=true \
--set nats.global.image.pullSecretNames[1]=adreg \
--set global.storageClassName='gp2-csi' \
--set global.imageCredentials.password='<BASE64_ENCODED_TOKEN>' \
--set elasticsearch.cr.nodeSets[0].name=default \
--set elasticsearch.cr.nodeSets[0].count=3 \
--set elasticsearch.cr.nodeSets[0].config.node\.store\.allow_mmap=true \
--set elasticsearch.cr.nodeSets[0].storage.size=50Gi \
--set elasticsearch.cr.nodeSets[0].resources.limits.cpu=1 \
--set elasticsearch.cr.nodeSets[0].resources.limits.memory=8Gi \
--set elasticsearch.cr.nodeSets[0].resources.requests.cpu=500m \
--set elasticsearch.cr.nodeSets[0].resources.requests.memory=4Gi \
-f helm-databases/values/elastic-only.yaml
helm upgrade pulse-es ./helm-databases \
--namespace pulse-es \
--reuse-values
Parameter Reference
Parameter | Description |
elasticsearch.cr.auth.password | Password for the Elasticsearch admin user. |
elasticsearch.cr.auth.additionalUsers[0].username | Username for an additional Elasticsearch user. |
elasticsearch.cr.auth.additionalUsers[0].password | Password for the additional Elasticsearch user. |
elasticsearch.cr.auth.additionalUsers[0].roles[0] | Role assigned to the additional user, for example, superuser. |
elasticsearch.cr.tls.p12.password | Password for the PKCS#12 TLS keystore. Use an empty string to disable. |
elasticsearch.cr.httpPort | HTTP port Elasticsearch listens on. |
elasticsearch.cr.tls.disabled | Disable TLS for Elasticsearch HTTP endpoint. |
elasticsearch.cr.nodeSets[0].name | Name identifier for the Elasticsearch node set. |
elasticsearch.cr.nodeSets[0].count | Number of Elasticsearch nodes in the set. |
elasticsearch.cr.nodeSets[0].config.node.store.allow_mmap | Allow memory-mapped files for the Elasticsearch node store. |
elasticsearch.cr.nodeSets[0].storage.size | Persistent volume size per Elasticsearch node. |
elasticsearch.cr.nodeSets[0].resources.limits.cpu | CPU limit per Elasticsearch node. |
elasticsearch.cr.nodeSets[0].resources.limits.memory | Memory limit per Elasticsearch node. |
elasticsearch.cr.nodeSets[0].resources.requests.cpu | CPU request per Elasticsearch node. |
elasticsearch.cr.nodeSets[0].resources.requests.memory | Memory request per Elasticsearch node. |
4. PostgreSQL
Installation Command
helm install <RELEASE_NAME> ./helm-databases \
-n <NAMESPACE> --create-namespace \
-f helm-databases/values/postgres-only.yaml \
--set postgresql.useOperator=<true|false> \
--set nats.global.image.pullSecretNames[0]=<Image Pull Secret Name> \
--set global.storageClassName='<Storage Class Name>' \
--set global.imageCredentials.password='<Base64 Encoded Registry Token>' \
--set postgresql.standalone.storage.size=<Storage Size> \
--set postgresql.standalone.resources.limits.cpu=<CPU Limit> \
--set postgresql.standalone.resources.limits.memory=<Memory Limit> \
--set postgresql.standalone.resources.requests.cpu=<CPU Request> \
--set postgresql.standalone.resources.requests.memory=<Memory Request> \
-f helm-databases/values/openshift.yaml
Example Command for OpenShift
helm install pulse-pg ./helm-databases \
-n pulse-pg --create-namespace \
-f helm-databases/values/postgres-only.yaml \
--set postgresql.useOperator=false \
--set nats.global.image.pullSecretNames[0]=adreg \
--set global.storageClassName='gp2-csi' \
--set global.imageCredentials.password='<BASE64_ENCODED_TOKEN>' \
--set postgresql.standalone.storage.size=50Gi \
--set postgresql.standalone.resources.limits.cpu=1 \
--set postgresql.standalone.resources.limits.memory=4Gi \
--set postgresql.standalone.resources.requests.cpu=500m \
--set postgresql.standalone.resources.requests.memory=2Gi \
-f helm-databases/values/openshift.yaml
Example Command for Vanilla Kubernetes
helm install pulse-pg ./helm-databases \
-n pulse-pg --create-namespace \
-f helm-databases/values/postgres-only.yaml \
--set postgresql.useOperator=false \
--set nats.global.image.pullSecretNames[0]=adreg \
--set global.storageClassName='gp2-csi' \
--set global.imageCredentials.password='<BASE64_ENCODED_TOKEN>' \
--set postgresql.standalone.storage.size=50Gi \
--set postgresql.standalone.resources.limits.cpu=1 \
--set postgresql.standalone.resources.limits.memory=4Gi \
--set postgresql.standalone.resources.requests.cpu=500m \
--set postgresql.standalone.resources.requests.memory=2Gi
Parameter Reference
Parameter | Description |
postgresql.useOperator | Whether to deploy PostgreSQL via an operator. false means standalone StatefulSet. |
postgresql.standalone.storage.size | Persistent volume size for PostgreSQL data. |
postgresql.standalone.resources.limits.cpu | CPU limit for the PostgreSQL pod. |
postgresql.standalone.resources.limits.memory | Memory limit for the PostgreSQL pod. |
postgresql.standalone.resources.requests.cpu | CPU request for the PostgreSQL pod. |
postgresql.standalone.resources.requests.memory | Memory request for the PostgreSQL pod. |
Info
Note: This installation uses two values files: postgres-only.yaml and openshift.yaml. The OpenShift values file provides additional security context and SCC-related settings.
5. NATS
Installation Command
helm install <RELEASE_NAME> ./helm-databases \
-n <NAMESPACE> --create-namespace \
--set global.openshift=<true|false> \
-f helm-databases/values/nats-only.yaml \
--set nats.global.image.pullSecretNames[0]=<Image Pull Secret Name> \
--set nats.loadBalancer.enabled=<true|false> \
--set global.storageClassName='<Storage Class Name>' \
--set nats.config.jetstream.fileStore.pvc.storageClassName='<Storage Class Name>' \
--set global.imageCredentials.password='<Base64 Encoded Registry Token>' \
--set nats.config.jetstream.fileStore.pvc.size=<JetStream PV Size> \
--set nats.container.merge.resources.limits.cpu=<CPU Limit> \
--set nats.container.merge.resources.limits.memory=<Memory Limit> \
--set nats.container.merge.resources.requests.cpu=<CPU Request> \
--set nats.container.merge.resources.requests.memory=<Memory Request>
Example Command for OpenShift
helm install pulse-nats ./helm-databases \
-n pulse-nats --create-namespace \
--set global.openshift=true \
-f helm-databases/values/nats-only.yaml \
--set nats.global.image.pullSecretNames[0]=adreg \
--set nats.loadBalancer.enabled=true \
--set global.storageClassName='gp2-csi' \
--set nats.config.jetstream.fileStore.pvc.storageClassName='gp2-csi' \
--set nats.config.jetstream.fileStore.pvc.size=20Gi \
--set nats.container.merge.resources.limits.cpu=1 \
--set nats.container.merge.resources.limits.memory=4Gi \
--set nats.container.merge.resources.requests.cpu=500m \
--set nats.container.merge.resources.requests.memory=2Gi
Example Command for Vanilla Kubernetes
helm install pulse-nats ./helm-databases \
-n pulse-nats --create-namespace \
-f helm-databases/values/nats-only.yaml \
--set nats.global.image.pullSecretNames[0]=adreg \
--set nats.loadBalancer.enabled=true \
--set global.storageClassName='gp2-csi' \
--set nats.config.jetstream.fileStore.pvc.storageClassName='gp2-csi' \
--set nats.config.jetstream.fileStore.pvc.size=20Gi \
--set nats.container.merge.resources.limits.cpu=1 \
--set nats.container.merge.resources.limits.memory=4Gi \
--set nats.container.merge.resources.requests.cpu=500m \
--set nats.container.merge.resources.requests.memory=2Gi
Parameter Reference
Parameter | Description |
nats.global.image.pullSecretNames[0] | Image pull secret name for the NATS sub-chart. |
nats.loadBalancer.enabled | Expose NATS via a LoadBalancer service. |
nats.config.jetstream.fileStore.pvc.storageClassName | StorageClass for the JetStream file store PVC. |
nats.config.jetstream.fileStore.pvc.size | Persistent volume size for the JetStream file store. |
nats.container.merge.resources.limits.cpu | CPU limit for the NATS container. |
nats.container.merge.resources.limits.memory | Memory limit for the NATS container. |
nats.container.merge.resources.requests.cpu | CPU request for the NATS container. |
nats.container.merge.resources.requests.memory | Memory request for the NATS container. |
Uninstall
To remove any of the database releases:
helm uninstall <RELEASE_NAME> -n <NAMESPACE>
For example:
helm uninstall pulse-mongo -n pulse-mongo
helm uninstall pulse-vm -n pulse-vm
helm uninstall pulse-es -n pulse-es
helm uninstall pulse-pg -n pulse-pg
helm uninstall pulse-nats -n pulse-nats
