---
id: helm-overview
title: Apache Pulsar Helm Chart
sidebar_label: Overview
---

This is the official supported Helm chart to install Apache Pulsar on a cloud-native environment. It was enhanced based on StreamNative's [Helm Chart](https://github.com/streamnative/charts).

## Introduction

The Apache Pulsar Helm chart is one of the most convenient ways to operate Pulsar on Kubernetes. This Pulsar Helm chart contains all the required components to get started and can scale to large deployments.

This chart includes all the components for a complete experience, but each part can be configured to be installed separately.

- Pulsar core components:
    - ZooKeeper
    - Bookies
    - Brokers
    - Function workers
    - Proxies
- Control Center:
    - Pulsar Manager
    - Prometheus
    - Grafana
    - Alert Manager

It includes support for:

- Security
    - Automatically provisioned TLS certificates, using [Jetstack](https://www.jetstack.io/)'s [cert-manager](https://cert-manager.io/docs/)
        - self-signed
        - [Let's Encrypt](https://letsencrypt.org/)
    - TLS Encryption
        - Proxy
        - Broker
        - Toolset
        - Bookie
        - ZooKeeper
    - Authentication
        - JWT
    - Authorization
- Storage
    - Non-persistence storage
    - Persistence volume
    - Local persistent volumes
- Functions
    - Kubernetes Runtime
    - Process Runtime
    - Thread Runtime
- Operations
    - Independent image versions for all components, enabling controlled upgrades

## Pulsar Helm chart quick start

To get up and run with these charts as fast as possible, in a **non-production** use case, we provide a [quick start guide](getting-started-helm.md) for Proof of Concept (PoC) deployments.

This guide walks the user through deploying these charts with default values and features, but *does not* meet production ready requirements. To deploy these charts into production under sustained load, follow the complete [Installation Guide](helm-install.md).

## Troubleshooting

We have done our best to make these charts as seamless as possible. Occasionally, troubles do go outside of our control. We have collected tips and tricks for troubleshooting common issues. Please check them first before raising an [issue](https://github.com/apache/pulsar/issues/new/choose), and feel free to add to them by raising a [Pull Request](https://github.com/apache/pulsar/compare).

## Installation

The Apache Pulsar Helm chart contains all required dependencies.

If you deploy a PoC for testing, we strongly suggest you follow our [Quick Start Guide](getting-started-helm.md) for your first iteration.

1. [Preparation](helm-prepare.md)
2. [Deployment](helm-deploy.md)

## Upgrading

Once the Pulsar Helm chart is installed, use the `helm upgrade` to complete configuration changes and chart updates.

```bash
git clone https://github.com/apache/pulsar
cd deployment/kubernetes/helm
helm get values <pulsar-release-name> > pulsar.yaml
helm upgrade <pulsar-release-name> pulsar -f pulsar.yaml
```

For more detailed information, see [Upgrading](helm-upgrade.md).

## Uninstallation

To uninstall the Pulsar Helm chart, run the following command:

```bash
helm delete <pulsar-release-name>
```

For the purposes of continuity, these charts have some Kubernetes objects that cannot be removed when performing `helm delete`.
It is recommended to *conciously* remove these items, as they affect re-deployment.

* PVCs for stateful data: *consciously* remove these items.
    - ZooKeeper: This is your metadata.
    - BookKeeper: This is your data.
    - Prometheus: This is your metrics data, which can be safely removed.
* Secrets: if the secrets are generated by the [prepare release script](https://github.com/apache/pulsar/blob/master/deployment/kubernetes/helm/scripts/pulsar/prepare_helm_release.sh), they contain secret keys and tokens. You can use the [cleanup release script](https://github.com/apache/pulsar/blob/master/deployment/kubernetes/helm/scripts/pulsar/cleanup_helm_release.sh) to remove these secrets and tokens as needed.