{{/* Define the pulsar bookkeeper service */}} {{- define "pulsar.bookkeeper.service" -}} {{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }} {{- end }} {{/* Define the bookkeeper hostname */}} {{- define "pulsar.bookkeeper.hostname" -}} ${HOSTNAME}.{{ template "pulsar.bookkeeper.service" . }}.{{ .Values.namespace }}.svc.{{ .Values.clusterDomain }} {{- end -}} {{/* Define bookie zookeeper client tls settings */}} {{- define "pulsar.bookkeeper.zookeeper.tls.settings" -}} {{- if and .Values.tls.enabled .Values.tls.zookeeper.enabled }} /pulsar/keytool/keytool.sh bookie {{ template "pulsar.bookkeeper.hostname" . }} true; {{- end }} {{- end }} {{/* Define bookie tls certs mounts */}} {{- define "pulsar.bookkeeper.certs.volumeMounts" -}} {{- if and .Values.tls.enabled (or .Values.tls.bookie.enabled .Values.tls.zookeeper.enabled) }} - name: bookie-certs mountPath: "/pulsar/certs/bookie" readOnly: true - name: ca mountPath: "/pulsar/certs/ca" readOnly: true {{- if .Values.tls.zookeeper.enabled }} - name: keytool mountPath: "/pulsar/keytool/keytool.sh" subPath: keytool.sh {{- end }} {{- end }} {{- end }} {{/* Define bookie tls certs volumes */}} {{- define "pulsar.bookkeeper.certs.volumes" -}} {{- if and .Values.tls.enabled (or .Values.tls.bookie.enabled .Values.tls.zookeeper.enabled) }} - name: bookie-certs secret: secretName: "{{ .Release.Name }}-{{ .Values.tls.bookie.cert_name }}" items: - key: tls.crt path: tls.crt - key: tls.key path: tls.key - name: ca secret: secretName: "{{ .Release.Name }}-ca-tls" items: - key: ca.crt path: ca.crt {{- if .Values.tls.zookeeper.enabled }} - name: keytool configMap: name: "{{ template "pulsar.fullname" . }}-keytool-configmap" defaultMode: 0755 {{- end }} {{- end }} {{- end }} {{/* Define bookie common config */}} {{- define "pulsar.bookkeeper.config.common" -}} zkServers: "{{ template "pulsar.zookeeper.connect" . }}" zkLedgersRootPath: "{{ .Values.metadataPrefix }}/ledgers" # enable bookkeeper http server httpServerEnabled: "true" httpServerPort: "{{ .Values.bookkeeper.ports.http }}" # config the stats provider statsProviderClass: org.apache.bookkeeper.stats.prometheus.PrometheusMetricsProvider # use hostname as the bookie id useHostNameAsBookieID: "true" {{- end }} {{/* Define bookie tls config */}} {{- define "pulsar.bookkeeper.config.tls" -}} {{- if and .Values.tls.enabled .Values.tls.bookie.enabled }} PULSAR_PREFIX_tlsProviderFactoryClass: org.apache.bookkeeper.tls.TLSContextFactory PULSAR_PREFIX_tlsCertificatePath: /pulsar/certs/bookie/tls.crt PULSAR_PREFIX_tlsKeyStoreType: PEM PULSAR_PREFIX_tlsKeyStore: /pulsar/certs/bookie/tls.key PULSAR_PREFIX_tlsTrustStoreType: PEM PULSAR_PREFIX_tlsTrustStore: /pulsar/certs/ca/ca.crt {{- end }} {{- end }} {{/* Define bookie init container : verify cluster id */}} {{- define "pulsar.bookkeeper.init.verify_cluster_id" -}} {{- if not (and .Values.volumes.persistence .Values.bookkeeper.volumes.persistence) }} bin/apply-config-from-env.py conf/bookkeeper.conf; {{- include "pulsar.bookkeeper.zookeeper.tls.settings" . -}} until bin/bookkeeper shell whatisinstanceid; do sleep 3; done; bin/bookkeeper shell bookieformat -nonInteractive -force -deleteCookie || true {{- end }} {{- if and .Values.volumes.persistence .Values.bookkeeper.volumes.persistence }} set -e; bin/apply-config-from-env.py conf/bookkeeper.conf; {{- include "pulsar.bookkeeper.zookeeper.tls.settings" . -}} until bin/bookkeeper shell whatisinstanceid; do sleep 3; done; {{- end }} {{- end }}