| {{/* |
| 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 }} |