Updates CA name generation to be configurable allowing the swapping in of a CA. ### Motivation We recently swapped out cert issuers and found that with the current helm chart we were unable to do a hot swap without downtime (via helm) because the CA cert name is not configurable. Being able to change the name of the CA allows us to create a new CA first -> Validate -> then swap over in follow up apply/release. ### Modifications Adds the ability to specify the suffix used to generate the CA name (not the whole name in order to preserve back compatibility regardless of the release name.)
122 lines
3.5 KiB
Smarty
122 lines
3.5 KiB
Smarty
{{/*
|
|
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" . }}.{{ template "pulsar.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 }}-{{ .Values.tls.ca_suffix }}"
|
|
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 }}
|