This is an automated email from the ASF dual-hosted git repository.

lhotari pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar-helm-chart.git


The following commit(s) were added to refs/heads/master by this push:
     new 43f8dfa  Revisit solution to configure Bookkeeper RocksDB settings - 
default to individual config files (#583)
43f8dfa is described below

commit 43f8dfa04e24e27449dc1b2d6b897f8b9c39f265
Author: Lari Hotari <[email protected]>
AuthorDate: Tue Mar 4 14:04:38 2025 +0200

    Revisit solution to configure Bookkeeper RocksDB settings - default to 
individual config files (#583)
---
 charts/pulsar/templates/bookkeeper-configmap.yaml   | 14 --------------
 charts/pulsar/templates/bookkeeper-statefulset.yaml | 20 ++++++++++++++++++--
 charts/pulsar/values.yaml                           |  4 ----
 3 files changed, 18 insertions(+), 20 deletions(-)

diff --git a/charts/pulsar/templates/bookkeeper-configmap.yaml 
b/charts/pulsar/templates/bookkeeper-configmap.yaml
index 0c1a951..f133f1f 100644
--- a/charts/pulsar/templates/bookkeeper-configmap.yaml
+++ b/charts/pulsar/templates/bookkeeper-configmap.yaml
@@ -61,19 +61,5 @@ data:
   {{- end }}
   # TLS config
   {{- include "pulsar.bookkeeper.config.tls" . | nindent 2 }}
-  {{- if .Values.bookkeeper.useRocksDBConfigInConfigData }}
-  # Set RocksDB default format version to 5
-  # RocksDB format_version 5 has been supported since RocksDB 6.6 . It's 
required for certain performance optimizations.
-  PULSAR_PREFIX_dbStorage_rocksDB_format_version: "5"
-  # Specify non-existing files to avoid Bookkeeper from loading RocksDB config 
from existing files
-  PULSAR_PREFIX_defaultRocksdbConf: "conf/non_existing_default_rocksdb.conf"
-  PULSAR_PREFIX_entryLocationRocksdbConf: 
"conf/non_existing_entry_location_rocksdb.conf"
-  PULSAR_PREFIX_ledgerMetadataRocksdbConf: 
"conf/non_existing_ledger_metadata_rocksdb.conf"
-  {{- else }}
-  # Specify existing files to load RocksDB config from existing files
-  PULSAR_PREFIX_defaultRocksdbConf: "conf/default_rocksdb.conf"
-  PULSAR_PREFIX_entryLocationRocksdbConf: "conf/entry_location_rocksdb.conf"
-  PULSAR_PREFIX_ledgerMetadataRocksdbConf: "conf/ledger_metadata_rocksdb.conf"
-  {{- end }}
 {{ toYaml .Values.bookkeeper.configData | indent 2 }}
 {{- end }}
\ No newline at end of file
diff --git a/charts/pulsar/templates/bookkeeper-statefulset.yaml 
b/charts/pulsar/templates/bookkeeper-statefulset.yaml
index b2ce827..1fe85f2 100644
--- a/charts/pulsar/templates/bookkeeper-statefulset.yaml
+++ b/charts/pulsar/templates/bookkeeper-statefulset.yaml
@@ -177,9 +177,25 @@ spec:
         command: ["sh", "-c"]
         args:
         - |
-        {{- if .Values.bookkeeper.additionalCommand }}
+          # set required environment variables to use rocksdb config files 
provided in the Pulsar image
+          export 
PULSAR_PREFIX_defaultRocksdbConf=${PULSAR_PREFIX_defaultRocksdbConf:-conf/default_rocksdb.conf}
+          export 
PULSAR_PREFIX_entryLocationRocksdbConf=${PULSAR_PREFIX_entryLocationRocksdbConf:-conf/entry_location_rocksdb.conf}
+          export 
PULSAR_PREFIX_ledgerMetadataRocksdbConf=${PULSAR_PREFIX_ledgerMetadataRocksdbConf:-conf/ledger_metadata_rocksdb.conf}
+          if [ -x bin/update-rocksdb-conf-from-env.py ] && [ -f 
"${PULSAR_PREFIX_entryLocationRocksdbConf}" ]; then
+            echo "Updating ${PULSAR_PREFIX_entryLocationRocksdbConf} from 
environment variables starting with dbStorage_rocksDB_*"
+            bin/update-rocksdb-conf-from-env.py 
"${PULSAR_PREFIX_entryLocationRocksdbConf}"
+          else
+            # Ensure that Bookkeeper will not load RocksDB config from 
existing files and fallback to use default RocksDB config
+            # See https://github.com/apache/bookkeeper/pull/3523 as reference
+            export 
PULSAR_PREFIX_defaultRocksdbConf=conf/non_existing_default_rocksdb.conf
+            export 
PULSAR_PREFIX_entryLocationRocksdbConf=conf/non_existing_entry_location_rocksdb.conf
+            export 
PULSAR_PREFIX_ledgerMetadataRocksdbConf=conf/non_existing_ledger_metadata_rocksdb.conf
+            # Ensure that Bookkeeper will use RocksDB format_version 5 (this 
currently applies only to the entry location rocksdb due to a bug in Bookkeeper)
+            export 
PULSAR_PREFIX_dbStorage_rocksDB_format_version=${PULSAR_PREFIX_dbStorage_rocksDB_format_version:-5}
+          fi
+          {{- if .Values.bookkeeper.additionalCommand }}
           {{ .Values.bookkeeper.additionalCommand }}
-        {{- end }}
+          {{- end }}
           bin/apply-config-from-env.py conf/bookkeeper.conf;
           {{- include "pulsar.bookkeeper.zookeeper.tls.settings" . | nindent 
10 }}
           OPTS="${OPTS} -Dlog4j2.formatMsgNoLookups=true" exec bin/pulsar 
bookie;
diff --git a/charts/pulsar/values.yaml b/charts/pulsar/values.yaml
index 9e87be3..9960095 100755
--- a/charts/pulsar/values.yaml
+++ b/charts/pulsar/values.yaml
@@ -728,10 +728,6 @@ bookkeeper:
   ## templates/bookkeeper-service-account.yaml
   service_account:
     annotations: {}
-  ## Use RocksDB config in configData
-  ## Use dbStorage_rocksDB_* / PULSAR_PREFIX_dbStorage_rocksDB_* settings 
defined in configData instead of conf/*_rocksdb.conf files in the Pulsar docker 
image
-  ## See https://github.com/apache/bookkeeper/pull/3523 as reference
-  useRocksDBConfigInConfigData: true
   ## Bookkeeper configmap
   ## templates/bookkeeper-configmap.yaml
   ##

Reply via email to