Skip to main content
Skip table of contents

Zookeeper Operator in a Workspace

These pages refer to DKP Enterprise and DKP Gov Advanced products.

ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. The ZooKeeper operator is a Kubernetes operator that handles the provisioning and management of ZooKeeper clusters. It works by watching custom resources, such as ZookeeperClusters, to provision the underlying Kubernetes resources (StatefulSets) required for a production-ready ZooKeeper Cluster.

Install Zookeeper

Follow these steps to install the ZooKeeper operator in a workspace. This procedure results in a ZooKeeper operator running in a workspace namespace, ready to manage and create ZooKeeper clusters in any project namespaces. See the ZooKeeper in a Project custom resource documentation for more information on creating ZooKeeper clusters.

Only install the ZooKeeper operator once per workspace.

  1. Follow the generic installation instructions for workspace catalog applications on the Application Deployment page.

  2. Within the AppDeployment, update the appRef to specify the correct zookeeper-operator App. You can find the appRef.name by listing the available Apps in the workspace namespace:

    CODE
    kubectl get apps -n ${WORKSPACE_NAMESPACE}

For details on custom configuration for the operator, refer to the ZooKeeper operator Helm Chart documentation.

Using a image for a zookeeper cluster

To avoid the critical CVEs associated with the official zookeeper image in version v0.2.15, a custom image must be specified when creating a zookeeper cluster.

YAML
apiVersion: "zookeeper.pravega.io/v1beta1"
kind: "ZookeeperCluster"
# ...
spec:
  image:
    repository: ghcr.io/mesosphere/zookeeper
    tag: v0.2.15-d2iq

For more information about custom images go to Enterprise: Upgrade images used by Catalog Applications | Upgrading-a-Zookeeper-image-reference-in-a-ZookeeperCluster-resource.

Uninstall via the CLI

Uninstalling the ZooKeeper operator will not directly affect any running ZookeeperClusters. By default, the operator waits for any ZookeeperClusters to be deleted before it will fully uninstall (you can set hooks.delete: true in the application configuration to disable this behavior). After uninstalling the operator, you need to manually clean up any leftover Custom Resource Definitions (CRDs).

  1. Delete all ZookeeperClusters, see Deleting ZooKeeper Clusters.

  2. Uninstall a ZooKeeper operator AppDeployment:

    CODE
    kubectl -n <workspace namespace> delete AppDeployment <name of AppDeployment>
  3. Remove ZooKeeper CRDs:

    WARNING: After you remove the CRDs, all deployed ZookeeperClusters will be deleted!

    CODE
    kubectl delete crds zookeeperclusters.zookeeper.pravega.io

Resources

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.