1. QuickStart guides

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.


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.


  • Prepare a Kubernetes cluster (v1.16 <= Kubernetes version < v1.26).
  • Install kubectl (v1.16 or above), compatible with your cluster (+/- 1 minor release from your cluster).
  • Install Helm (v3.0.2 or above).

Install the Pulsar Operators

  1. Add the StreamNative chart repository.

    helm repo add streamnative https://charts.streamnative.io
    helm repo update
  2. Create a Kubernetes namespace where the Pulsar Operators will be installed later.

    kubectl create namespace <k8s-namespace>
  3. Deploy the Pulsar Operators using the pulsar-operator Helm chart in the created Kubernetes namespace.

    helm install <release-name> -n <k8s-namespace> streamnative/pulsar-operator
  4. Verify that the Pulsar Operators are installed successfully.

    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.

    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.

    kubectl get crds | grep streamnative

    You should see the following output:

    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.

Understand StreamNative Operators for Apache Pulsar