Add optional user provided zookeeper as metadata store for other components (#38)
## Motivation ### Case I have a physical zk cluster and want configure bookkeeper & broker & proxy to use it. So I set components.zookeeper as false, and only found pulsar.zookeeper.connect to set my physical zk address. But deploy stage was stucked in bookkeeper wait-zookeeper-ready container. ### Issue The wait-zookeeper-ready initContainer in bookkeeper-cluster-initialize Job used spliced zk Service hosts to detect zk ready or not, other component init Job initContainer do the same thing. Actually, zk service are unreachable because I disabled zk component. ## Modifications - Add optional pulsar_metadata.userProvidedZookeepers config for this case, and make component's init Job use user zk to detect liveness, instead of spliced Service hosts. - Delete redundant image reference in bookkeeper init Job.
This commit is contained in:
parent
714ff4131e
commit
135868c66c
@ -9,6 +9,10 @@ Define the pulsar zookeeper
|
|||||||
Define the pulsar zookeeper
|
Define the pulsar zookeeper
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "pulsar.zookeeper.connect" -}}
|
{{- 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) -}}
|
{{- if not (and .Values.tls.enabled .Values.tls.zookeeper.enabled) -}}
|
||||||
{{ template "pulsar.zookeeper.service" . }}:{{ .Values.zookeeper.ports.client }}
|
{{ template "pulsar.zookeeper.service" . }}:{{ .Values.zookeeper.ports.client }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@ -16,6 +20,7 @@ Define the pulsar zookeeper
|
|||||||
{{ template "pulsar.zookeeper.service" . }}:{{ .Values.zookeeper.ports.clientTls }}
|
{{ template "pulsar.zookeeper.service" . }}:{{ .Values.zookeeper.ports.clientTls }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
Define the zookeeper hostname
|
Define the zookeeper hostname
|
||||||
|
|||||||
@ -31,18 +31,24 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
initContainers:
|
initContainers:
|
||||||
- name: wait-zookeeper-ready
|
- name: wait-zookeeper-ready
|
||||||
image: "{{ .Values.bookkeeper.metadata.image.repository }}:{{ .Values.bookkeeper.metadata.image.tag }}"
|
image: "{{ .Values.images.bookie.repository }}:{{ .Values.images.bookie.tag }}"
|
||||||
imagePullPolicy: {{ .Values.bookkeeper.metadata.image.pullPolicy }}
|
imagePullPolicy: {{ .Values.images.bookie.pullPolicy }}
|
||||||
command: ["sh", "-c"]
|
command: ["sh", "-c"]
|
||||||
args:
|
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
|
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;
|
sleep 3;
|
||||||
done;
|
done;
|
||||||
|
{{- end}}
|
||||||
containers:
|
containers:
|
||||||
- name: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}-init"
|
- name: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}-init"
|
||||||
image: "{{ .Values.bookkeeper.metadata.image.repository }}:{{ .Values.bookkeeper.metadata.image.tag }}"
|
image: "{{ .Values.images.bookie.repository }}:{{ .Values.images.bookie.tag }}"
|
||||||
imagePullPolicy: {{ .Values.bookkeeper.metadata.image.pullPolicy }}
|
imagePullPolicy: {{ .Values.images.bookie.pullPolicy }}
|
||||||
{{- if .Values.bookkeeper.metadata.resources }}
|
{{- if .Values.bookkeeper.metadata.resources }}
|
||||||
resources:
|
resources:
|
||||||
{{ toYaml .Values.bookkeeper.metadata.resources | indent 10 }}
|
{{ toYaml .Values.bookkeeper.metadata.resources | indent 10 }}
|
||||||
|
|||||||
@ -86,9 +86,15 @@ spec:
|
|||||||
command: ["sh", "-c"]
|
command: ["sh", "-c"]
|
||||||
args:
|
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
|
until bin/pulsar zookeeper-shell -server {{ template "pulsar.fullname" . }}-{{ .Values.zookeeper.component }} get {{ .Values.metadataPrefix }}/admin/clusters/{{ template "pulsar.fullname" . }}; do
|
||||||
sleep 3;
|
sleep 3;
|
||||||
done;
|
done;
|
||||||
|
{{- end}}
|
||||||
# This init container will wait for at least one broker to be ready before
|
# This init container will wait for at least one broker to be ready before
|
||||||
# deploying the proxy
|
# deploying the proxy
|
||||||
- name: wait-broker-ready
|
- name: wait-broker-ready
|
||||||
|
|||||||
@ -48,9 +48,15 @@ spec:
|
|||||||
command: ["sh", "-c"]
|
command: ["sh", "-c"]
|
||||||
args:
|
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
|
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;
|
sleep 3;
|
||||||
done;
|
done;
|
||||||
|
{{- end}}
|
||||||
# This initContainer will wait for bookkeeper initnewcluster to complete
|
# This initContainer will wait for bookkeeper initnewcluster to complete
|
||||||
# before initializing pulsar metadata
|
# before initializing pulsar metadata
|
||||||
- name: pulsar-bookkeeper-verify-clusterid
|
- name: pulsar-bookkeeper-verify-clusterid
|
||||||
|
|||||||
@ -345,11 +345,6 @@ bookkeeper:
|
|||||||
## BookKeeper Cluster Initialize
|
## BookKeeper Cluster Initialize
|
||||||
## templates/bookkeeper-cluster-initialize.yaml
|
## templates/bookkeeper-cluster-initialize.yaml
|
||||||
metadata:
|
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`
|
## Set the resources used for running `bin/bookkeeper shell initnewcluster`
|
||||||
##
|
##
|
||||||
resources:
|
resources:
|
||||||
@ -515,6 +510,11 @@ pulsar_metadata:
|
|||||||
# configurationStore:
|
# configurationStore:
|
||||||
configurationStoreMetadataPrefix: ""
|
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
|
## Pulsar: Broker cluster
|
||||||
## templates/broker-statefulset.yaml
|
## templates/broker-statefulset.yaml
|
||||||
##
|
##
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user