> ## Documentation Index
> Fetch the complete documentation index at: https://docs.streamnative.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Install the Pulsar Operators using the Helm chart

This document demonstrates how to install the Pulsar Operators using the Helm chart. StreamNative develops and maintains the Helm chart, which provides a flexible way to deploy Custom Resource Definitions (CRDs) and custom controllers for Pulsar resources.

<Note title="Note">
  If you install the Pulsar Operators using the Helm chart, you must manually upgrade related CRDs when upgrading the Pulsar Operators. If you want a more automated upgrade plan, you can use the [OLM to install the Pulsar Operators](/tools/operator/quickstart-guides/pulsar-operator-install-olm).
</Note>

## Prerequisites

* Prepare a Kubernetes cluster ((v1.16 `<=` Kubernetes version `<` v1.26)..
* Install [`kubectl`](https://kubernetes.io/docs/tasks/tools/#kubectl) (v1.16 or above), compatible with your cluster (+/- 1 minor release from your cluster).
* Install [`Helm`](https://helm.sh/docs/intro/install/) (v3.0.2 or above).

## Install the Pulsar Operators

1. Add the StreamNative chart repository.

   ```bash theme={null}
   helm repo add streamnative https://charts.streamnative.io
   helm repo update
   ```

2. Create a Kubernetes namespace where the Pulsar Operators will be installed later.

   ```bash theme={null}
   kubectl create namespace <k8s-namespace>
   ```

3. Deploy the Pulsar Operators using the `pulsar-operator` Helm chart in the created Kubernetes namespace.

   ```bash theme={null}
   helm install <release-name> -n <k8s-namespace> streamnative/pulsar-operator
   ```

4. Verify that the Pulsar Operators are installed successfully.

   ```bash theme={null}
   kubectl get all -n <k8s-namespace>
   ```

   You should see the following output. The three custom controllers are running as Deployments, each having one Pod replica by default.

   ```bash theme={null}
   NAME                                                                  READY   STATUS    RESTARTS   AGE
   pod/pulsar-operators-bookkeeper-controller-manager-854765f948-lzzbw   1/1     Running   0          22s
   pod/pulsar-operators-pulsar-controller-manager-74ff6f64b5-rwl7t       1/1     Running   0          22s
   pod/pulsar-operators-zookeeper-controller-manager-5fdbc656d8-rr6pj    1/1     Running   0          22s

   NAME                                                             READY   UP-TO-DATE  AVAILABLE   AGE
   deployment.apps/pulsar-operators-bookkeeper-controller-manager   1/1     1           1           22s
   deployment.apps/pulsar-operators-pulsar-controller-manager       1/1     1           1           22s
   deployment.apps/pulsar-operators-zookeeper-controller-manager    1/1     1           1           22s

   NAME                                                                        DESIRED   CURRENT  READY   AGE
   replicaset.apps/pulsar-operators-bookkeeper-controller-manager-854765f948   1         1        1       22s
   replicaset.apps/pulsar-operators-pulsar-controller-manager-74ff6f64b5       1         1        1       22s
   replicaset.apps/pulsar-operators-zookeeper-controller-manager-5fdbc656d8    1         1        1       22s
   ```

5. View the created CRDs. You can use these CRDs to create Custom Resources (CRs) for Pulsar.

   ```bash theme={null}
   kubectl get crds | grep streamnative
   ```

   You should see the following output:

   ```bash theme={null}
   NAME                                            CREATED AT
   bookkeeperclusters.bookkeeper.streamnative.io   2023-03-02T08:52:52Z
   pulsarbrokers.pulsar.streamnative.io            2023-03-02T08:52:52Z
   pulsarproxies.pulsar.streamnative.io            2023-03-02T08:52:52Z
   zookeeperclusters.zookeeper.streamnative.io     2023-03-02T08:52:53Z
   ```

   With the Pulsar Operators installed, you can use the controllers and the CRDs to deploy a Pulsar cluster.

## Related topics

* [Install the Pulsar Operators using the Operator Lifecycle Manager](/tools/operator/quickstart-guides/pulsar-operator-install-olm).
* [Deploy a Pulsar cluster using the Pulsar Operators](/tools/operator/how-to-guides/pulsar-operator-deploy-pulsar).
