It remains possible to override the current release namespace by setting the `namespace` value though this may lead to having the helm metadata and the pulsar components in different namespaces Fixes #66 ### Motivation Trying to deploy the chart in a namespace using the usual helm pattern fails for example ``` kubectl create ns pulsartest helm upgrade --install pulsar -n pulsartest apache/pulsar Error: namespaces "pulsar" not found ``` fixing that while keeping the helm metadata and the deployed objects in the same namespace requires declaring the namespace twice ``` kubectl create ns pulsartest helm upgrade --install pulsar -n pulsartest apache/pulsar --set namespace=pulsartest Error: namespaces "pulsar" not found ``` This is needlessly confusing for newcomers who follow the helm documentation and is contrary to helm best practices. ### Modifications I changed the chart to use the context namespace `.Release.Namespace` by default while preserving the ability to override that by explicitly providing a namespace on the commande line, with the this modification both examples behave as expected ### Verifying this change - [x] Make sure that the change passes the CI checks.
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 }}-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 }}
|