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
##