diff --git a/charts/pulsar/templates/_zookeeper.tpl b/charts/pulsar/templates/_zookeeper.tpl index ca5c1d1..25945d5 100644 --- a/charts/pulsar/templates/_zookeeper.tpl +++ b/charts/pulsar/templates/_zookeeper.tpl @@ -9,6 +9,10 @@ Define the pulsar zookeeper Define the pulsar zookeeper */}} {{- define "pulsar.zookeeper.connect" -}} +{{$zk:=.Values.pulsar_metadata.userProvidedZookeepers}} +{{- if and (not .Values.components.zookeeper) $zk }} +{{- $zk -}} +{{ else }} {{- if not (and .Values.tls.enabled .Values.tls.zookeeper.enabled) -}} {{ template "pulsar.zookeeper.service" . }}:{{ .Values.zookeeper.ports.client }} {{- end -}} @@ -16,6 +20,7 @@ Define the pulsar zookeeper {{ template "pulsar.zookeeper.service" . }}:{{ .Values.zookeeper.ports.clientTls }} {{- end -}} {{- end -}} +{{- end -}} {{/* Define the zookeeper hostname diff --git a/charts/pulsar/templates/bookkeeper-cluster-initialize.yaml b/charts/pulsar/templates/bookkeeper-cluster-initialize.yaml index a9ab647..bb48022 100644 --- a/charts/pulsar/templates/bookkeeper-cluster-initialize.yaml +++ b/charts/pulsar/templates/bookkeeper-cluster-initialize.yaml @@ -31,18 +31,24 @@ spec: spec: initContainers: - name: wait-zookeeper-ready - image: "{{ .Values.bookkeeper.metadata.image.repository }}:{{ .Values.bookkeeper.metadata.image.tag }}" - imagePullPolicy: {{ .Values.bookkeeper.metadata.image.pullPolicy }} + image: "{{ .Values.images.bookie.repository }}:{{ .Values.images.bookie.tag }}" + imagePullPolicy: {{ .Values.images.bookie.pullPolicy }} command: ["sh", "-c"] args: - >- + {{- if $zk:=.Values.pulsar_metadata.userProvidedZookeepers }} + until bin/pulsar zookeeper-shell -server {{ $zk }} ls {{ or .Values.metadataPrefix "/" }}; do + echo "user provided zookeepers {{ $zk }} are unreachable... check in 3 seconds ..." && sleep 3; + done; + {{ else }} until nslookup {{ template "pulsar.fullname" . }}-{{ .Values.zookeeper.component }}-{{ add (.Values.zookeeper.replicaCount | int) -1 }}.{{ template "pulsar.fullname" . }}-{{ .Values.zookeeper.component }}.{{ .Values.namespace }}; do sleep 3; done; + {{- end}} containers: - name: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}-init" - image: "{{ .Values.bookkeeper.metadata.image.repository }}:{{ .Values.bookkeeper.metadata.image.tag }}" - imagePullPolicy: {{ .Values.bookkeeper.metadata.image.pullPolicy }} + image: "{{ .Values.images.bookie.repository }}:{{ .Values.images.bookie.tag }}" + imagePullPolicy: {{ .Values.images.bookie.pullPolicy }} {{- if .Values.bookkeeper.metadata.resources }} resources: {{ toYaml .Values.bookkeeper.metadata.resources | indent 10 }} diff --git a/charts/pulsar/templates/proxy-statefulset.yaml b/charts/pulsar/templates/proxy-statefulset.yaml index c3cc7a0..d92d5b0 100644 --- a/charts/pulsar/templates/proxy-statefulset.yaml +++ b/charts/pulsar/templates/proxy-statefulset.yaml @@ -86,9 +86,15 @@ spec: command: ["sh", "-c"] args: - >- + {{- if $zk:=.Values.pulsar_metadata.userProvidedZookeepers }} + until bin/pulsar zookeeper-shell -server {{ $zk }} ls {{ or .Values.metadataPrefix "/" }}; do + echo "user provided zookeepers {{ $zk }} are unreachable... check in 3 seconds ..." && sleep 3; + done; + {{ else }} until bin/pulsar zookeeper-shell -server {{ template "pulsar.fullname" . }}-{{ .Values.zookeeper.component }} get {{ .Values.metadataPrefix }}/admin/clusters/{{ template "pulsar.fullname" . }}; do sleep 3; done; + {{- end}} # This init container will wait for at least one broker to be ready before # deploying the proxy - name: wait-broker-ready diff --git a/charts/pulsar/templates/pulsar-cluster-initialize.yaml b/charts/pulsar/templates/pulsar-cluster-initialize.yaml index a57db8e..95459a1 100644 --- a/charts/pulsar/templates/pulsar-cluster-initialize.yaml +++ b/charts/pulsar/templates/pulsar-cluster-initialize.yaml @@ -48,9 +48,15 @@ spec: command: ["sh", "-c"] args: - >- + {{- if $zk:=.Values.pulsar_metadata.userProvidedZookeepers }} + until bin/pulsar zookeeper-shell -server {{ $zk }} ls {{ or .Values.metadataPrefix "/" }}; do + echo "user provided zookeepers {{ $zk }} are unreachable... check in 3 seconds ..." && sleep 3; + done; + {{ else }} until nslookup {{ template "pulsar.fullname" . }}-{{ .Values.zookeeper.component }}-{{ add (.Values.zookeeper.replicaCount | int) -1 }}.{{ template "pulsar.fullname" . }}-{{ .Values.zookeeper.component }}.{{ .Values.namespace }}; do sleep 3; done; + {{- end}} # This initContainer will wait for bookkeeper initnewcluster to complete # before initializing pulsar metadata - name: pulsar-bookkeeper-verify-clusterid diff --git a/charts/pulsar/values.yaml b/charts/pulsar/values.yaml index 07f2d04..c8694cf 100644 --- a/charts/pulsar/values.yaml +++ b/charts/pulsar/values.yaml @@ -345,11 +345,6 @@ bookkeeper: ## BookKeeper Cluster Initialize ## templates/bookkeeper-cluster-initialize.yaml metadata: - image: - # the image used for running `bookkeeper-cluster-initialize` job - repository: apachepulsar/pulsar-all - tag: 2.6.0 - pullPolicy: IfNotPresent ## Set the resources used for running `bin/bookkeeper shell initnewcluster` ## resources: @@ -515,6 +510,11 @@ pulsar_metadata: # configurationStore: configurationStoreMetadataPrefix: "" + ## optional, you can provide your own zookeeper metadata store for other components + # to use this, you should explicit set components.zookeeper to false + # + # userProvidedZookeepers: "zk01.example.com:2181,zk02.example.com:2181" + ## Pulsar: Broker cluster ## templates/broker-statefulset.yaml ##