diff --git a/charts/pulsar/templates/_bookkeeper.tpl b/charts/pulsar/templates/_bookkeeper.tpl index 2e58201..e7ab4ce 100644 --- a/charts/pulsar/templates/_bookkeeper.tpl +++ b/charts/pulsar/templates/_bookkeeper.tpl @@ -97,14 +97,22 @@ Define bookie tls certs volumes Define bookie common config */}} {{- define "pulsar.bookkeeper.config.common" -}} +{{/* +Configure BookKeeper's metadata store (available since BookKeeper 4.7.0 / BP-29) +https://bookkeeper.apache.org/bps/BP-29-metadata-store-api-module/ +https://bookkeeper.apache.org/docs/deployment/manual#cluster-metadata-setup +*/}} +# Set empty values for zkServers and zkLedgersRootPath since we're using the metadataServiceUri to configure BookKeeper's metadata store +zkServers: "" +zkLedgersRootPath: "" {{- if .Values.components.zookeeper }} {{- if (and (hasKey .Values.pulsar_metadata "bookkeeper") .Values.pulsar_metadata.bookkeeper.usePulsarMetadataBookieDriver) }} # there's a bug when using PulsarMetadataBookieDriver since it always appends /ledgers to the metadataServiceUri # Possibly a bug in org.apache.pulsar.metadata.bookkeeper.AbstractMetadataDriver#resolveLedgersRootPath in Pulsar code base metadataServiceUri: "metadata-store:zk:{{ template "pulsar.zookeeper.connect" . }}{{ .Values.metadataPrefix }}" {{- else }} -zkServers: "{{ template "pulsar.zookeeper.connect" . }}" -zkLedgersRootPath: "{{ .Values.metadataPrefix }}/ledgers" +# use zk+hierarchical:// when using BookKeeper's built-in metadata driver +metadataServiceUri: "zk+hierarchical://{{ template "pulsar.zookeeper.connect" . }}{{ .Values.metadataPrefix }}/ledgers" {{- end }} {{- else if .Values.components.oxia }} metadataServiceUri: "{{ template "pulsar.oxia.metadata.url.bookkeeper" . }}"