Add support for using Oxia as the metadata store for Pulsar and BookKeeper (#544)
Co-authored-by: Lari Hotari <lhotari@apache.org>
This commit is contained in:
parent
17b739d10a
commit
c6ce11a9b7
34
.ci/clusters/values-oxia.yaml
Normal file
34
.ci/clusters/values-oxia.yaml
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
components:
|
||||||
|
zookeeper: false
|
||||||
|
oxia: true
|
||||||
|
# disable functions for oxia tests since there's no support for Oxia in
|
||||||
|
# BookKeeperPackagesStorage which requires Zookeeper
|
||||||
|
functions: false
|
||||||
|
|
||||||
|
oxia:
|
||||||
|
initialShardCount: 1
|
||||||
|
replicationFactor: 1
|
||||||
|
server:
|
||||||
|
replicas: 1
|
||||||
|
memoryLimit: 256Mi
|
||||||
|
dbCacheSizeMb: 128
|
||||||
|
storageSize: 1Gi
|
||||||
@ -86,3 +86,11 @@ proxy:
|
|||||||
|
|
||||||
toolset:
|
toolset:
|
||||||
useProxy: false
|
useProxy: false
|
||||||
|
|
||||||
|
oxia:
|
||||||
|
coordinator:
|
||||||
|
podMonitor:
|
||||||
|
enabled: false
|
||||||
|
server:
|
||||||
|
podMonitor:
|
||||||
|
enabled: false
|
||||||
|
|||||||
16
.github/workflows/pulsar-helm-chart-ci.yaml
vendored
16
.github/workflows/pulsar-helm-chart-ci.yaml
vendored
@ -140,15 +140,22 @@ jobs:
|
|||||||
helm dependency build charts/pulsar
|
helm dependency build charts/pulsar
|
||||||
validate_helm_template_with_k8s_version() {
|
validate_helm_template_with_k8s_version() {
|
||||||
local kube_version=$1
|
local kube_version=$1
|
||||||
echo "Validating helm template with kubeconform for k8s version $kube_version"
|
shift
|
||||||
helm template charts/pulsar --set kube-prometheus-stack.enabled=false --set components.pulsar_manager=true --kube-version $kube_version | \
|
echo -n "Validating helm template with kubeconform for k8s version $kube_version"
|
||||||
|
if [ $# -gt 0 ]; then
|
||||||
|
echo " Extra args: $*"
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
helm template charts/pulsar --set kube-prometheus-stack.enabled=false --set components.pulsar_manager=true --kube-version $kube_version "$@" | \
|
||||||
kubeconform -schema-location default -schema-location 'https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/{{.Group}}/{{.ResourceKind}}_{{.ResourceAPIVersion}}.json' -strict -kubernetes-version $kube_version -summary
|
kubeconform -schema-location default -schema-location 'https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/{{.Group}}/{{.ResourceKind}}_{{.ResourceAPIVersion}}.json' -strict -kubernetes-version $kube_version -summary
|
||||||
}
|
}
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
for k8s_version_part in {23..30}; do
|
for k8s_version_part in {23..30}; do
|
||||||
k8s_version="1.${k8s_version_part}.0"
|
k8s_version="1.${k8s_version_part}.0"
|
||||||
echo "Validating helm template with kubeconform for k8s version $k8s_version"
|
|
||||||
validate_helm_template_with_k8s_version $k8s_version
|
validate_helm_template_with_k8s_version $k8s_version
|
||||||
|
echo "Validating with Oxia enabled"
|
||||||
|
validate_helm_template_with_k8s_version $k8s_version --set components.zookeeper=false --set components.oxia=true
|
||||||
done
|
done
|
||||||
- name: Wait for ssh connection when build fails
|
- name: Wait for ssh connection when build fails
|
||||||
# ssh access is enabled for builds in own forks
|
# ssh access is enabled for builds in own forks
|
||||||
@ -208,6 +215,9 @@ jobs:
|
|||||||
- name: Pulsar Manager
|
- name: Pulsar Manager
|
||||||
values_file: .ci/clusters/values-pulsar-manager.yaml
|
values_file: .ci/clusters/values-pulsar-manager.yaml
|
||||||
shortname: pulsar-manager
|
shortname: pulsar-manager
|
||||||
|
- name: Oxia
|
||||||
|
values_file: .ci/clusters/values-oxia.yaml
|
||||||
|
shortname: oxia
|
||||||
include:
|
include:
|
||||||
- k8sVersion:
|
- k8sVersion:
|
||||||
version: "1.23.17"
|
version: "1.23.17"
|
||||||
|
|||||||
@ -92,6 +92,7 @@ Define autorecovery init container : verify cluster id
|
|||||||
*/}}
|
*/}}
|
||||||
{{- define "pulsar.autorecovery.init.verify_cluster_id" -}}
|
{{- define "pulsar.autorecovery.init.verify_cluster_id" -}}
|
||||||
bin/apply-config-from-env.py conf/bookkeeper.conf;
|
bin/apply-config-from-env.py conf/bookkeeper.conf;
|
||||||
|
export BOOKIE_MEM="-Xmx128M";
|
||||||
{{- include "pulsar.autorecovery.zookeeper.tls.settings" . -}}
|
{{- include "pulsar.autorecovery.zookeeper.tls.settings" . -}}
|
||||||
until timeout 15 bin/bookkeeper shell whatisinstanceid; do
|
until timeout 15 bin/bookkeeper shell whatisinstanceid; do
|
||||||
sleep 3;
|
sleep 3;
|
||||||
|
|||||||
@ -92,8 +92,12 @@ Define bookie tls certs volumes
|
|||||||
Define bookie common config
|
Define bookie common config
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "pulsar.bookkeeper.config.common" -}}
|
{{- define "pulsar.bookkeeper.config.common" -}}
|
||||||
|
{{- if .Values.components.zookeeper }}
|
||||||
zkServers: "{{ template "pulsar.zookeeper.connect" . }}"
|
zkServers: "{{ template "pulsar.zookeeper.connect" . }}"
|
||||||
zkLedgersRootPath: "{{ .Values.metadataPrefix }}/ledgers"
|
zkLedgersRootPath: "{{ .Values.metadataPrefix }}/ledgers"
|
||||||
|
{{- else if .Values.components.oxia }}
|
||||||
|
metadataServiceUri: "{{ template "pulsar.oxia.metadata.url.bookkeeper" . }}"
|
||||||
|
{{- end }}
|
||||||
# enable bookkeeper http server
|
# enable bookkeeper http server
|
||||||
httpServerEnabled: "true"
|
httpServerEnabled: "true"
|
||||||
httpServerPort: "{{ .Values.bookkeeper.ports.http }}"
|
httpServerPort: "{{ .Values.bookkeeper.ports.http }}"
|
||||||
@ -123,6 +127,7 @@ Define bookie init container : verify cluster id
|
|||||||
{{- define "pulsar.bookkeeper.init.verify_cluster_id" -}}
|
{{- define "pulsar.bookkeeper.init.verify_cluster_id" -}}
|
||||||
{{- if not (and .Values.volumes.persistence .Values.bookkeeper.volumes.persistence) }}
|
{{- if not (and .Values.volumes.persistence .Values.bookkeeper.volumes.persistence) }}
|
||||||
bin/apply-config-from-env.py conf/bookkeeper.conf;
|
bin/apply-config-from-env.py conf/bookkeeper.conf;
|
||||||
|
export BOOKIE_MEM="-Xmx128M";
|
||||||
{{- include "pulsar.bookkeeper.zookeeper.tls.settings" . -}}
|
{{- include "pulsar.bookkeeper.zookeeper.tls.settings" . -}}
|
||||||
until timeout 15 bin/bookkeeper shell whatisinstanceid; do
|
until timeout 15 bin/bookkeeper shell whatisinstanceid; do
|
||||||
sleep 3;
|
sleep 3;
|
||||||
@ -132,6 +137,7 @@ bin/bookkeeper shell bookieformat -nonInteractive -force -deleteCookie || true
|
|||||||
{{- if and .Values.volumes.persistence .Values.bookkeeper.volumes.persistence }}
|
{{- if and .Values.volumes.persistence .Values.bookkeeper.volumes.persistence }}
|
||||||
set -e;
|
set -e;
|
||||||
bin/apply-config-from-env.py conf/bookkeeper.conf;
|
bin/apply-config-from-env.py conf/bookkeeper.conf;
|
||||||
|
export BOOKIE_MEM="-Xmx128M";
|
||||||
{{- include "pulsar.bookkeeper.zookeeper.tls.settings" . -}}
|
{{- include "pulsar.bookkeeper.zookeeper.tls.settings" . -}}
|
||||||
until timeout 15 bin/bookkeeper shell whatisinstanceid; do
|
until timeout 15 bin/bookkeeper shell whatisinstanceid; do
|
||||||
sleep 3;
|
sleep 3;
|
||||||
|
|||||||
@ -135,3 +135,4 @@ Lookup pull policy, default to defaultPullPolicy
|
|||||||
{{- define "pulsar.imagePullPolicy" -}}
|
{{- define "pulsar.imagePullPolicy" -}}
|
||||||
{{- printf "%s" (.image.pullPolicy | default .root.Values.defaultPullPolicy) -}}
|
{{- printf "%s" (.image.pullPolicy | default .root.Values.defaultPullPolicy) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
|||||||
110
charts/pulsar/templates/_oxia.tpl
Normal file
110
charts/pulsar/templates/_oxia.tpl
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
{{/*
|
||||||
|
Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
or more contributor license agreements. See the NOTICE file
|
||||||
|
distributed with this work for additional information
|
||||||
|
regarding copyright ownership. The ASF licenses this file
|
||||||
|
to you under the Apache License, Version 2.0 (the
|
||||||
|
"License"); you may not use this file except in compliance
|
||||||
|
with the License. You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing,
|
||||||
|
software distributed under the License is distributed on an
|
||||||
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, either express or implied. See the License for the
|
||||||
|
specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Probe
|
||||||
|
*/}}
|
||||||
|
{{- define "oxia-cluster.probe" -}}
|
||||||
|
exec:
|
||||||
|
command: ["oxia", "health", "--port={{ . }}"]
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
timeoutSeconds: 10
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Probe
|
||||||
|
*/}}
|
||||||
|
{{- define "oxia-cluster.readiness-probe" -}}
|
||||||
|
exec:
|
||||||
|
command: ["oxia", "health", "--port={{ . }}", "--service=oxia-readiness"]
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
timeoutSeconds: 10
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Probe
|
||||||
|
*/}}
|
||||||
|
{{- define "oxia-cluster.startup-probe" -}}
|
||||||
|
exec:
|
||||||
|
command: ["oxia", "health", "--port={{ . }}"]
|
||||||
|
initialDelaySeconds: 60
|
||||||
|
timeoutSeconds: 10
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Define the pulsar oxia
|
||||||
|
*/}}
|
||||||
|
{{- define "pulsar.oxia.server.service" -}}
|
||||||
|
{{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}-svc
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
oxia url for broker metadata
|
||||||
|
*/}}
|
||||||
|
{{- define "pulsar.oxia.metadata.url.broker" -}}
|
||||||
|
{{- if .Values.components.oxia -}}
|
||||||
|
oxia://{{ template "pulsar.oxia.server.service" . }}:{{ .Values.oxia.server.ports.public }}/broker
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
oxia url for bookkeeper metadata
|
||||||
|
*/}}
|
||||||
|
{{- define "pulsar.oxia.metadata.url.bookkeeper" -}}
|
||||||
|
{{- if .Values.components.oxia -}}
|
||||||
|
metadata-store:oxia://{{ template "pulsar.oxia.server.service" . }}:{{ .Values.oxia.server.ports.public }}/bookkeeper
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Define coordinator configmap
|
||||||
|
*/}}
|
||||||
|
{{- define "oxia.coordinator.config.yaml" -}}
|
||||||
|
namespaces:
|
||||||
|
- name: default
|
||||||
|
initialShardCount: {{ .Values.oxia.initialShardCount }}
|
||||||
|
replicationFactor: {{ .Values.oxia.replicationFactor }}
|
||||||
|
- name: broker
|
||||||
|
initialShardCount: {{ .Values.oxia.initialShardCount }}
|
||||||
|
replicationFactor: {{ .Values.oxia.replicationFactor }}
|
||||||
|
- name: bookkeeper
|
||||||
|
initialShardCount: {{ .Values.oxia.initialShardCount }}
|
||||||
|
replicationFactor: {{ .Values.oxia.replicationFactor }}
|
||||||
|
servers:
|
||||||
|
- public: {{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}-svc.{{ template "pulsar.namespace" . }}.svc.cluster.local:{{ .Values.oxia.server.ports.public }}
|
||||||
|
internal: {{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}-svc.{{ template "pulsar.namespace" . }}.svc:{{ .Values.oxia.server.ports.internal }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Define coordinator entrypoint
|
||||||
|
*/}}
|
||||||
|
{{- define "oxia.coordinator.entrypoint" -}}
|
||||||
|
- "oxia"
|
||||||
|
- "coordinator"
|
||||||
|
- "--conf=configmap:{{ template "pulsar.namespace" . }}/{{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}-coordinator"
|
||||||
|
- "--log-json"
|
||||||
|
- "--metadata=configmap"
|
||||||
|
- "--k8s-namespace={{ template "pulsar.namespace" . }}"
|
||||||
|
- "--k8s-configmap-name={{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}-coordinator-status"
|
||||||
|
{{- if .Values.oxia.pprofEnabled }}
|
||||||
|
- "--profile"
|
||||||
|
{{- end}}
|
||||||
|
{{- end}}
|
||||||
|
|
||||||
@ -56,3 +56,4 @@ Define zookeeper tls settings
|
|||||||
/pulsar/keytool/keytool.sh zookeeper {{ template "pulsar.zookeeper.hostname" . }} false;
|
/pulsar/keytool/keytool.sh zookeeper {{ template "pulsar.zookeeper.hostname" . }} false;
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
|
|||||||
@ -26,8 +26,8 @@ metadata:
|
|||||||
labels:
|
labels:
|
||||||
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
||||||
component: {{ .Values.autorecovery.component }}
|
component: {{ .Values.autorecovery.component }}
|
||||||
annotations:
|
|
||||||
{{- with .Values.autorecovery.service_account.annotations }}
|
{{- with .Values.autorecovery.service_account.annotations }}
|
||||||
|
annotations:
|
||||||
{{ toYaml . | indent 4 }}
|
{{ toYaml . | indent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@ -110,7 +110,7 @@ spec:
|
|||||||
terminationGracePeriodSeconds: {{ .Values.autorecovery.gracePeriod }}
|
terminationGracePeriodSeconds: {{ .Values.autorecovery.gracePeriod }}
|
||||||
serviceAccountName: "{{ template "pulsar.fullname" . }}-{{ .Values.autorecovery.component }}"
|
serviceAccountName: "{{ template "pulsar.fullname" . }}-{{ .Values.autorecovery.component }}"
|
||||||
initContainers:
|
initContainers:
|
||||||
{{- if and .Values.autorecovery.waitBookkeeperTimeout (not (eq (.Values.autorecovery.waitBookkeeperTimeout | toString) "0")) }}
|
{{- if and .Values.autorecovery.waitBookkeeperTimeout (gt (.Values.autorecovery.waitBookkeeperTimeout | int) 0) }}
|
||||||
# This initContainer will wait for bookkeeper initnewcluster to complete
|
# This initContainer will wait for bookkeeper initnewcluster to complete
|
||||||
# before deploying the bookies
|
# before deploying the bookies
|
||||||
- name: pulsar-bookkeeper-verify-clusterid
|
- name: pulsar-bookkeeper-verify-clusterid
|
||||||
|
|||||||
@ -36,16 +36,16 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
{{- include "pulsar.imagePullSecrets" . | nindent 6 }}
|
{{- include "pulsar.imagePullSecrets" . | nindent 6 }}
|
||||||
serviceAccountName: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}"
|
serviceAccountName: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}"
|
||||||
|
{{- with .Values.pulsar_metadata.nodeSelector }}
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
{{- if .Values.pulsar_metadata.nodeSelector }}
|
|
||||||
{{ toYaml .Values.pulsar_metadata.nodeSelector | indent 8 }}
|
{{ toYaml .Values.pulsar_metadata.nodeSelector | indent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- with .Values.pulsar_metadata.tolerations }}
|
||||||
tolerations:
|
tolerations:
|
||||||
{{- if .Values.pulsar_metadata.tolerations }}
|
|
||||||
{{ toYaml .Values.pulsar_metadata.tolerations | indent 8 }}
|
{{ toYaml .Values.pulsar_metadata.tolerations | indent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
initContainers:
|
initContainers:
|
||||||
{{- if and .Values.bookkeeper.metadata.waitZookeeperTimeout (not (eq (.Values.bookkeeper.metadata.waitZookeeperTimeout | toString) "0")) }}
|
{{- if and .Values.components.zookeeper .Values.bookkeeper.metadata.waitZookeeperTimeout (gt (.Values.bookkeeper.metadata.waitZookeeperTimeout | int) 0) }}
|
||||||
- name: wait-zookeeper-ready
|
- name: wait-zookeeper-ready
|
||||||
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.images.bookie "root" .) }}"
|
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.images.bookie "root" .) }}"
|
||||||
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.images.bookie "root" .) }}"
|
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.images.bookie "root" .) }}"
|
||||||
@ -64,6 +64,18 @@ spec:
|
|||||||
done;
|
done;
|
||||||
{{- end}}
|
{{- end}}
|
||||||
{{- end}}
|
{{- end}}
|
||||||
|
{{- if and .Values.components.oxia .Values.bookkeeper.metadata.waitOxiaTimeout (gt (.Values.bookkeeper.metadata.waitOxiaTimeout | int) 0) }}
|
||||||
|
- name: wait-oxia-ready
|
||||||
|
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.images.bookie "root" .) }}"
|
||||||
|
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.images.bookie "root" .) }}"
|
||||||
|
resources: {{ toYaml .Values.initContainer.resources | nindent 10 }}
|
||||||
|
command: ["timeout", "{{ .Values.bookkeeper.metadata.waitOxiaTimeout }}", "sh", "-c"]
|
||||||
|
args:
|
||||||
|
- >-
|
||||||
|
until nslookup {{ template "pulsar.oxia.server.service" . }}; do
|
||||||
|
sleep 3;
|
||||||
|
done;
|
||||||
|
{{- end }}
|
||||||
containers:
|
containers:
|
||||||
- name: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}-init"
|
- name: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}-init"
|
||||||
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.images.bookie "root" .) }}"
|
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.images.bookie "root" .) }}"
|
||||||
@ -81,7 +93,7 @@ spec:
|
|||||||
if timeout 15 bin/bookkeeper shell whatisinstanceid; then
|
if timeout 15 bin/bookkeeper shell whatisinstanceid; then
|
||||||
echo "bookkeeper cluster already initialized";
|
echo "bookkeeper cluster already initialized";
|
||||||
else
|
else
|
||||||
{{- if not (eq .Values.metadataPrefix "") }}
|
{{- if and .Values.components.zookeeper (not (eq .Values.metadataPrefix "")) }}
|
||||||
bin/pulsar zookeeper-shell -server {{ template "pulsar.fullname" . }}-{{ .Values.zookeeper.component }} create {{ .Values.metadataPrefix }} && echo 'created for pulsar cluster "{{ template "pulsar.cluster.name" . }}"' &&
|
bin/pulsar zookeeper-shell -server {{ template "pulsar.fullname" . }}-{{ .Values.zookeeper.component }} create {{ .Values.metadataPrefix }} && echo 'created for pulsar cluster "{{ template "pulsar.cluster.name" . }}"' &&
|
||||||
{{- end }}
|
{{- end }}
|
||||||
bin/bookkeeper shell initnewcluster;
|
bin/bookkeeper shell initnewcluster;
|
||||||
|
|||||||
@ -26,8 +26,8 @@ metadata:
|
|||||||
labels:
|
labels:
|
||||||
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
||||||
component: {{ .Values.bookkeeper.component }}
|
component: {{ .Values.bookkeeper.component }}
|
||||||
annotations:
|
|
||||||
{{- with .Values.bookkeeper.service_account.annotations }}
|
{{- with .Values.bookkeeper.service_account.annotations }}
|
||||||
|
annotations:
|
||||||
{{ toYaml . | indent 4 }}
|
{{ toYaml . | indent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@ -66,7 +66,7 @@ spec:
|
|||||||
affinity:
|
affinity:
|
||||||
{{- if and .Values.affinity.anti_affinity .Values.bookkeeper.affinity.anti_affinity}}
|
{{- if and .Values.affinity.anti_affinity .Values.bookkeeper.affinity.anti_affinity}}
|
||||||
podAntiAffinity:
|
podAntiAffinity:
|
||||||
{{ if eq .Values.bookkeeper.affinity.type "requiredDuringSchedulingIgnoredDuringExecution"}}
|
{{- if eq .Values.bookkeeper.affinity.type "requiredDuringSchedulingIgnoredDuringExecution"}}
|
||||||
{{ .Values.bookkeeper.affinity.type }}:
|
{{ .Values.bookkeeper.affinity.type }}:
|
||||||
- labelSelector:
|
- labelSelector:
|
||||||
matchExpressions:
|
matchExpressions:
|
||||||
@ -83,7 +83,7 @@ spec:
|
|||||||
values:
|
values:
|
||||||
- {{ .Values.bookkeeper.component }}
|
- {{ .Values.bookkeeper.component }}
|
||||||
topologyKey: {{ .Values.bookkeeper.affinity.anti_affinity_topology_key }}
|
topologyKey: {{ .Values.bookkeeper.affinity.anti_affinity_topology_key }}
|
||||||
{{ else }}
|
{{- else }}
|
||||||
{{ .Values.bookkeeper.affinity.type }}:
|
{{ .Values.bookkeeper.affinity.type }}:
|
||||||
- weight: 100
|
- weight: 100
|
||||||
podAffinityTerm:
|
podAffinityTerm:
|
||||||
@ -110,7 +110,7 @@ spec:
|
|||||||
securityContext:
|
securityContext:
|
||||||
{{ toYaml .Values.bookkeeper.securityContext | indent 8 }}
|
{{ toYaml .Values.bookkeeper.securityContext | indent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if and .Values.bookkeeper.waitMetadataTimeout (not (eq (.Values.bookkeeper.waitMetadataTimeout | toString) "0")) }}
|
{{- if and .Values.bookkeeper.waitMetadataTimeout (gt (.Values.bookkeeper.waitMetadataTimeout | int) 0) }}
|
||||||
initContainers:
|
initContainers:
|
||||||
# This initContainer will wait for bookkeeper initnewcluster to complete
|
# This initContainer will wait for bookkeeper initnewcluster to complete
|
||||||
# before deploying the bookies
|
# before deploying the bookies
|
||||||
|
|||||||
@ -28,6 +28,7 @@ metadata:
|
|||||||
component: {{ .Values.broker.component }}
|
component: {{ .Values.broker.component }}
|
||||||
data:
|
data:
|
||||||
# Metadata settings
|
# Metadata settings
|
||||||
|
{{- if .Values.components.zookeeper }}
|
||||||
zookeeperServers: "{{ template "pulsar.zookeeper.connect" . }}{{ .Values.metadataPrefix }}"
|
zookeeperServers: "{{ template "pulsar.zookeeper.connect" . }}{{ .Values.metadataPrefix }}"
|
||||||
{{- if .Values.pulsar_metadata.configurationStore }}
|
{{- if .Values.pulsar_metadata.configurationStore }}
|
||||||
configurationStoreServers: "{{ template "pulsar.configurationStore.connect" . }}{{ .Values.pulsar_metadata.configurationStoreMetadataPrefix }}"
|
configurationStoreServers: "{{ template "pulsar.configurationStore.connect" . }}{{ .Values.pulsar_metadata.configurationStoreMetadataPrefix }}"
|
||||||
@ -35,6 +36,12 @@ data:
|
|||||||
{{- if not .Values.pulsar_metadata.configurationStore }}
|
{{- if not .Values.pulsar_metadata.configurationStore }}
|
||||||
configurationStoreServers: "{{ template "pulsar.zookeeper.connect" . }}{{ .Values.metadataPrefix }}"
|
configurationStoreServers: "{{ template "pulsar.zookeeper.connect" . }}{{ .Values.metadataPrefix }}"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.components.oxia }}
|
||||||
|
metadataStoreUrl: "{{ template "pulsar.oxia.metadata.url.broker" . }}"
|
||||||
|
configurationMetadataStoreUrl: "{{ template "pulsar.oxia.metadata.url.broker" . }}"
|
||||||
|
bookkeeperMetadataServiceUri: "{{ template "pulsar.oxia.metadata.url.bookkeeper" . }}"
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
# Broker settings
|
# Broker settings
|
||||||
clusterName: {{ template "pulsar.cluster.name" . }}
|
clusterName: {{ template "pulsar.cluster.name" . }}
|
||||||
|
|||||||
@ -26,8 +26,8 @@ metadata:
|
|||||||
labels:
|
labels:
|
||||||
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
||||||
component: {{ .Values.broker.component }}
|
component: {{ .Values.broker.component }}
|
||||||
annotations:
|
|
||||||
{{- with .Values.broker.service_account.annotations }}
|
{{- with .Values.broker.service_account.annotations }}
|
||||||
|
annotations:
|
||||||
{{ toYaml . | indent 4 }}
|
{{ toYaml . | indent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
---
|
---
|
||||||
@ -42,8 +42,8 @@ metadata:
|
|||||||
labels:
|
labels:
|
||||||
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
||||||
component: {{ .Values.functions.component }}
|
component: {{ .Values.functions.component }}
|
||||||
annotations:
|
|
||||||
{{- with .Values.functions.service_account.annotations }}
|
{{- with .Values.functions.service_account.annotations }}
|
||||||
|
annotations:
|
||||||
{{ toYaml . | indent 4 }}
|
{{ toYaml . | indent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
---
|
---
|
||||||
|
|||||||
@ -26,8 +26,10 @@ metadata:
|
|||||||
labels:
|
labels:
|
||||||
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
||||||
component: {{ .Values.broker.component }}
|
component: {{ .Values.broker.component }}
|
||||||
|
{{- with .Values.broker.service_account.annotations }}
|
||||||
annotations:
|
annotations:
|
||||||
{{ toYaml .Values.broker.service.annotations | indent 4 }}
|
{{ toYaml . | indent 4 }}
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@ -87,7 +87,7 @@ spec:
|
|||||||
affinity:
|
affinity:
|
||||||
{{- if and .Values.affinity.anti_affinity .Values.broker.affinity.anti_affinity}}
|
{{- if and .Values.affinity.anti_affinity .Values.broker.affinity.anti_affinity}}
|
||||||
podAntiAffinity:
|
podAntiAffinity:
|
||||||
{{ if eq .Values.broker.affinity.type "requiredDuringSchedulingIgnoredDuringExecution"}}
|
{{- if eq .Values.broker.affinity.type "requiredDuringSchedulingIgnoredDuringExecution"}}
|
||||||
{{ .Values.broker.affinity.type }}:
|
{{ .Values.broker.affinity.type }}:
|
||||||
- labelSelector:
|
- labelSelector:
|
||||||
matchExpressions:
|
matchExpressions:
|
||||||
@ -104,7 +104,7 @@ spec:
|
|||||||
values:
|
values:
|
||||||
- {{ .Values.broker.component }}
|
- {{ .Values.broker.component }}
|
||||||
topologyKey: {{ .Values.broker.affinity.anti_affinity_topology_key }}
|
topologyKey: {{ .Values.broker.affinity.anti_affinity_topology_key }}
|
||||||
{{ else }}
|
{{- else }}
|
||||||
{{ .Values.broker.affinity.type }}:
|
{{ .Values.broker.affinity.type }}:
|
||||||
- weight: 100
|
- weight: 100
|
||||||
podAffinityTerm:
|
podAffinityTerm:
|
||||||
@ -123,11 +123,11 @@ spec:
|
|||||||
values:
|
values:
|
||||||
- {{ .Values.broker.component }}
|
- {{ .Values.broker.component }}
|
||||||
topologyKey: {{ .Values.broker.affinity.anti_affinity_topology_key }}
|
topologyKey: {{ .Values.broker.affinity.anti_affinity_topology_key }}
|
||||||
{{ end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
terminationGracePeriodSeconds: {{ .Values.broker.gracePeriod }}
|
terminationGracePeriodSeconds: {{ .Values.broker.gracePeriod }}
|
||||||
initContainers:
|
initContainers:
|
||||||
{{- if and .Values.broker.waitZookeeperTimeout (not (eq (.Values.broker.waitZookeeperTimeout | toString) "0")) }}
|
{{- if and .Values.components.zookeeper .Values.broker.waitZookeeperTimeout (gt (.Values.broker.waitZookeeperTimeout | int) 0) }}
|
||||||
# This init container will wait for zookeeper to be ready before
|
# This init container will wait for zookeeper to be ready before
|
||||||
# deploying the bookies
|
# deploying the bookies
|
||||||
- name: wait-zookeeper-ready
|
- name: wait-zookeeper-ready
|
||||||
@ -154,7 +154,19 @@ spec:
|
|||||||
volumeMounts:
|
volumeMounts:
|
||||||
{{- include "pulsar.broker.certs.volumeMounts" . | nindent 8 }}
|
{{- include "pulsar.broker.certs.volumeMounts" . | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if and .Values.broker.waitBookkeeperTimeout (not (eq (.Values.broker.waitBookkeeperTimeout | toString) "0")) }}
|
{{- if and .Values.components.oxia .Values.broker.waitOxiaTimeout (gt (.Values.broker.waitOxiaTimeout | int) 0) }}
|
||||||
|
- name: wait-oxia-ready
|
||||||
|
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.images.broker "root" .) }}"
|
||||||
|
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.images.broker "root" .) }}"
|
||||||
|
resources: {{ toYaml .Values.initContainer.resources | nindent 10 }}
|
||||||
|
command: ["timeout", "{{ .Values.broker.waitOxiaTimeout }}", "sh", "-c"]
|
||||||
|
args:
|
||||||
|
- >-
|
||||||
|
until nslookup {{ template "pulsar.oxia.server.service" . }}; do
|
||||||
|
sleep 3;
|
||||||
|
done;
|
||||||
|
{{- end }}
|
||||||
|
{{- if and .Values.broker.waitBookkeeperTimeout (gt (.Values.broker.waitBookkeeperTimeout | int) 0) }}
|
||||||
# This init container will wait for bookkeeper to be ready before
|
# This init container will wait for bookkeeper to be ready before
|
||||||
# deploying the broker
|
# deploying the broker
|
||||||
- name: wait-bookkeeper-ready
|
- name: wait-bookkeeper-ready
|
||||||
@ -239,6 +251,7 @@ spec:
|
|||||||
bin/apply-config-from-env.py conf/broker.conf;
|
bin/apply-config-from-env.py conf/broker.conf;
|
||||||
bin/gen-yml-from-env.py conf/functions_worker.yml;
|
bin/gen-yml-from-env.py conf/functions_worker.yml;
|
||||||
echo "OK" > "${statusFilePath:-status}";
|
echo "OK" > "${statusFilePath:-status}";
|
||||||
|
{{- if .Values.components.zookeeper }}
|
||||||
{{- include "pulsar.broker.zookeeper.tls.settings" . | nindent 10 }}
|
{{- include "pulsar.broker.zookeeper.tls.settings" . | nindent 10 }}
|
||||||
timeout 15 bin/pulsar zookeeper-shell -server {{ template "pulsar.zookeeper.connect" . }} get {{ template "pulsar.broker.znode" . }};
|
timeout 15 bin/pulsar zookeeper-shell -server {{ template "pulsar.zookeeper.connect" . }} get {{ template "pulsar.broker.znode" . }};
|
||||||
while [ $? -eq 0 ]; do
|
while [ $? -eq 0 ]; do
|
||||||
@ -246,6 +259,7 @@ spec:
|
|||||||
sleep 10;
|
sleep 10;
|
||||||
timeout 15 bin/pulsar zookeeper-shell -server {{ template "pulsar.zookeeper.connect" . }} get {{ template "pulsar.broker.znode" . }};
|
timeout 15 bin/pulsar zookeeper-shell -server {{ template "pulsar.zookeeper.connect" . }} get {{ template "pulsar.broker.znode" . }};
|
||||||
done;
|
done;
|
||||||
|
{{- end }}
|
||||||
cat conf/pulsar_env.sh;
|
cat conf/pulsar_env.sh;
|
||||||
OPTS="${OPTS} -Dlog4j2.formatMsgNoLookups=true" exec bin/pulsar broker;
|
OPTS="${OPTS} -Dlog4j2.formatMsgNoLookups=true" exec bin/pulsar broker;
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
32
charts/pulsar/templates/oxia-coordinator-configmap.yaml
Normal file
32
charts/pulsar/templates/oxia-coordinator-configmap.yaml
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
{{- if .Values.components.oxia }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: {{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}-coordinator
|
||||||
|
namespace: {{ template "pulsar.namespace" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
||||||
|
component: {{ .Values.oxia.component }}-coordinator
|
||||||
|
data:
|
||||||
|
config.yaml: |
|
||||||
|
{{- include "oxia.coordinator.config.yaml" . | nindent 4 }}
|
||||||
|
|
||||||
|
{{- end }}
|
||||||
74
charts/pulsar/templates/oxia-coordinator-deployment.yaml
Normal file
74
charts/pulsar/templates/oxia-coordinator-deployment.yaml
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
{{- if .Values.components.oxia }}
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: {{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}-coordinator
|
||||||
|
namespace: {{ template "pulsar.namespace" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
||||||
|
component: {{ .Values.oxia.component }}-coordinator
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{- include "pulsar.matchLabels" . | nindent 6 }}
|
||||||
|
component: {{ .Values.oxia.component }}-coordinator
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
{{- include "pulsar.template.labels" . | nindent 8 }}
|
||||||
|
component: {{ .Values.oxia.component }}-coordinator
|
||||||
|
annotations:
|
||||||
|
prometheus.io/scrape: "true"
|
||||||
|
prometheus.io/port: "{{ .Values.oxia.coordinator.ports.metrics }}"
|
||||||
|
spec:
|
||||||
|
{{- if .Values.oxia.server.nodeSelector }}
|
||||||
|
nodeSelector:
|
||||||
|
{{ toYaml .Values.oxia.server.nodeSelector | indent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.oxia.server.tolerations }}
|
||||||
|
tolerations:
|
||||||
|
{{ toYaml .Values.oxia.server.tolerations | indent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
serviceAccountName: {{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}-coordinator
|
||||||
|
containers:
|
||||||
|
- command:
|
||||||
|
{{- include "oxia.coordinator.entrypoint" . | nindent 12 }}
|
||||||
|
image: "{{ .Values.images.oxia.repository }}:{{ .Values.images.oxia.tag }}"
|
||||||
|
imagePullPolicy: {{ .Values.images.oxia.pullPolicy }}
|
||||||
|
name: coordinator
|
||||||
|
ports:
|
||||||
|
{{- range $key, $value := .Values.oxia.coordinator.ports }}
|
||||||
|
- containerPort: {{ $value | int }}
|
||||||
|
name: {{ $key }}
|
||||||
|
{{- end}}
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: {{ .Values.oxia.coordinator.cpuLimit }}
|
||||||
|
memory: {{ .Values.oxia.coordinator.memoryLimit }}
|
||||||
|
livenessProbe:
|
||||||
|
{{- include "oxia-cluster.probe" .Values.oxia.coordinator.ports.internal | nindent 12 }}
|
||||||
|
readinessProbe:
|
||||||
|
{{- include "oxia-cluster.probe" .Values.oxia.coordinator.ports.internal | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
58
charts/pulsar/templates/oxia-coordinator-podmonitor.yaml
Normal file
58
charts/pulsar/templates/oxia-coordinator-podmonitor.yaml
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
# deploy oxia-coordinator PodMonitor only when `$.Values.oxia.podMonitor.enabled` is true
|
||||||
|
{{- if and $.Values.components.oxia $.Values.oxia.coordinator.podMonitor.enabled }}
|
||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: PodMonitor
|
||||||
|
metadata:
|
||||||
|
name: {{ template "pulsar.fullname" . }}-oxia-coordinator
|
||||||
|
labels:
|
||||||
|
app: {{ template "pulsar.name" . }}
|
||||||
|
chart: {{ template "pulsar.chart" . }}
|
||||||
|
release: {{ .Release.Name }}
|
||||||
|
heritage: {{ .Release.Service }}
|
||||||
|
spec:
|
||||||
|
jobLabel: oxia-coordinator
|
||||||
|
podMetricsEndpoints:
|
||||||
|
- port: metrics
|
||||||
|
path: /metrics
|
||||||
|
scheme: http
|
||||||
|
interval: {{ $.Values.oxia.coordinator.podMonitor.interval }}
|
||||||
|
scrapeTimeout: {{ $.Values.oxia.coordinator.podMonitor.scrapeTimeout }}
|
||||||
|
relabelings:
|
||||||
|
- action: labelmap
|
||||||
|
regex: __meta_kubernetes_pod_label_(.+)
|
||||||
|
- sourceLabels: [__meta_kubernetes_namespace]
|
||||||
|
action: replace
|
||||||
|
targetLabel: kubernetes_namespace
|
||||||
|
- sourceLabels: [__meta_kubernetes_pod_label_component]
|
||||||
|
action: replace
|
||||||
|
targetLabel: job
|
||||||
|
- sourceLabels: [__meta_kubernetes_pod_name]
|
||||||
|
action: replace
|
||||||
|
targetLabel: kubernetes_pod_name
|
||||||
|
{{- if $.Values.oxia.coordinator.podMonitor.metricRelabelings }}
|
||||||
|
metricRelabelings: {{ toYaml $.Values.oxia.coordinator.podMonitor.metricRelabelings | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{- include "pulsar.matchLabels" . | nindent 6 }}
|
||||||
|
app.kubernetes.io/component: oxia-coordinator
|
||||||
|
{{- end }}
|
||||||
33
charts/pulsar/templates/oxia-coordinator-role.yaml
Normal file
33
charts/pulsar/templates/oxia-coordinator-role.yaml
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
{{- if .Values.components.oxia }}
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
name: {{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}-coordinator
|
||||||
|
namespace: {{ template "pulsar.namespace" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
||||||
|
component: {{ .Values.oxia.component }}-coordinator
|
||||||
|
rules:
|
||||||
|
- apiGroups: [ "" ]
|
||||||
|
resources: [ "configmaps" ]
|
||||||
|
verbs: [ "*" ]
|
||||||
|
{{- end }}
|
||||||
37
charts/pulsar/templates/oxia-coordinator-rolebinding.yaml
Normal file
37
charts/pulsar/templates/oxia-coordinator-rolebinding.yaml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
{{- if .Values.components.oxia }}
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: {{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}-coordinator
|
||||||
|
namespace: {{ template "pulsar.namespace" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
||||||
|
component: {{ .Values.oxia.component }}-coordinator
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: {{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}-coordinator
|
||||||
|
namespace: {{ template "pulsar.namespace" . }}
|
||||||
|
roleRef:
|
||||||
|
apiGroup: ""
|
||||||
|
kind: Role
|
||||||
|
name: {{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}-coordinator
|
||||||
|
{{- end }}
|
||||||
43
charts/pulsar/templates/oxia-coordinator-service.yaml
Normal file
43
charts/pulsar/templates/oxia-coordinator-service.yaml
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
{{- if .Values.components.oxia }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: {{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}-coordinator
|
||||||
|
namespace: {{ template "pulsar.namespace" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
||||||
|
component: {{ .Values.oxia.component }}-coordinator
|
||||||
|
{{- with .Values.oxia.coordinator.service.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{ toYaml . | indent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
{{- range $key, $value := .Values.oxia.coordinator.ports }}
|
||||||
|
- name: {{ $key }}
|
||||||
|
port: {{ $value }}
|
||||||
|
targetPort: {{ $key }}
|
||||||
|
{{- end}}
|
||||||
|
selector:
|
||||||
|
{{- include "pulsar.matchLabels" . | nindent 4 }}
|
||||||
|
component: {{ .Values.oxia.component }}-coordinator
|
||||||
|
{{- end }}
|
||||||
36
charts/pulsar/templates/oxia-coordinator-serviceaccount.yaml
Normal file
36
charts/pulsar/templates/oxia-coordinator-serviceaccount.yaml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
{{- if .Values.components.oxia }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: {{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}-coordinator
|
||||||
|
namespace: {{ template "pulsar.namespace" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
||||||
|
component: {{ .Values.oxia.component }}-coordinator
|
||||||
|
{{- with .Values.oxia.coordinator.service_account.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{ toYaml . | indent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.images.imagePullSecrets }}
|
||||||
|
imagePullSecrets:
|
||||||
|
- name: {{ .Values.images.imagePullSecrets.secretName }}
|
||||||
|
{{- end}}
|
||||||
|
{{- end}}
|
||||||
58
charts/pulsar/templates/oxia-server-podmonitor.yaml
Normal file
58
charts/pulsar/templates/oxia-server-podmonitor.yaml
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
# deploy oxia-server PodMonitor only when `$.Values.oxia.podMonitor.enabled` is true
|
||||||
|
{{- if and $.Values.components.oxia $.Values.oxia.server.podMonitor.enabled }}
|
||||||
|
apiVersion: monitoring.coreos.com/v1
|
||||||
|
kind: PodMonitor
|
||||||
|
metadata:
|
||||||
|
name: {{ template "pulsar.fullname" . }}-oxia-server
|
||||||
|
labels:
|
||||||
|
app: {{ template "pulsar.name" . }}
|
||||||
|
chart: {{ template "pulsar.chart" . }}
|
||||||
|
release: {{ .Release.Name }}
|
||||||
|
heritage: {{ .Release.Service }}
|
||||||
|
spec:
|
||||||
|
jobLabel: oxia-server
|
||||||
|
podMetricsEndpoints:
|
||||||
|
- port: metrics
|
||||||
|
path: /metrics
|
||||||
|
scheme: http
|
||||||
|
interval: {{ $.Values.oxia.server.podMonitor.interval }}
|
||||||
|
scrapeTimeout: {{ $.Values.oxia.server.podMonitor.scrapeTimeout }}
|
||||||
|
relabelings:
|
||||||
|
- action: labelmap
|
||||||
|
regex: __meta_kubernetes_pod_label_(.+)
|
||||||
|
- sourceLabels: [__meta_kubernetes_namespace]
|
||||||
|
action: replace
|
||||||
|
targetLabel: kubernetes_namespace
|
||||||
|
- sourceLabels: [__meta_kubernetes_pod_label_component]
|
||||||
|
action: replace
|
||||||
|
targetLabel: job
|
||||||
|
- sourceLabels: [__meta_kubernetes_pod_name]
|
||||||
|
action: replace
|
||||||
|
targetLabel: kubernetes_pod_name
|
||||||
|
{{- if $.Values.oxia.server.podMonitor.metricRelabelings }}
|
||||||
|
metricRelabelings: {{ toYaml $.Values.oxia.server.podMonitor.metricRelabelings | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{- include "pulsar.matchLabels" . | nindent 6 }}
|
||||||
|
app.kubernetes.io/component: oxia-server
|
||||||
|
{{- end }}
|
||||||
43
charts/pulsar/templates/oxia-server-service-public.yaml
Normal file
43
charts/pulsar/templates/oxia-server-service-public.yaml
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
{{- if .Values.components.oxia }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: {{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}
|
||||||
|
namespace: {{ template "pulsar.namespace" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
||||||
|
component: {{ .Values.oxia.component }}-server
|
||||||
|
{{- with .Values.oxia.server.service.public.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{ toYaml . | indent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
{{- range $key, $value := .Values.oxia.server.ports }}
|
||||||
|
- name: {{ $key }}
|
||||||
|
port: {{ $value }}
|
||||||
|
targetPort: {{ $key }}
|
||||||
|
{{- end}}
|
||||||
|
selector:
|
||||||
|
{{- include "pulsar.matchLabels" . | nindent 4 }}
|
||||||
|
component: {{ .Values.oxia.component }}-server
|
||||||
|
{{- end}}
|
||||||
45
charts/pulsar/templates/oxia-server-service.yaml
Normal file
45
charts/pulsar/templates/oxia-server-service.yaml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
{{- if .Values.components.oxia }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: {{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}-svc
|
||||||
|
namespace: {{ template "pulsar.namespace" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
||||||
|
component: {{ .Values.oxia.component }}-server
|
||||||
|
{{- with .Values.oxia.server.service.internal.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{ toYaml . | indent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
clusterIP: None
|
||||||
|
publishNotReadyAddresses: true
|
||||||
|
ports:
|
||||||
|
{{- range $key, $value := .Values.oxia.server.ports }}
|
||||||
|
- name: {{ $key }}
|
||||||
|
port: {{ $value }}
|
||||||
|
targetPort: {{ $key }}
|
||||||
|
{{- end}}
|
||||||
|
selector:
|
||||||
|
{{- include "pulsar.matchLabels" . | nindent 4 }}
|
||||||
|
component: {{ .Values.oxia.component }}-server
|
||||||
|
{{- end}}
|
||||||
36
charts/pulsar/templates/oxia-server-serviceaccount.yaml
Normal file
36
charts/pulsar/templates/oxia-server-serviceaccount.yaml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
{{- if .Values.components.oxia }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: {{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}
|
||||||
|
namespace: {{ template "pulsar.namespace" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
||||||
|
component: {{ .Values.oxia.component }}-server
|
||||||
|
{{- with .Values.oxia.server.service_account.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{ toYaml . | indent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.images.imagePullSecrets }}
|
||||||
|
imagePullSecrets:
|
||||||
|
- name: {{ .Values.images.imagePullSecrets.secretName }}
|
||||||
|
{{- end}}
|
||||||
|
{{- end}}
|
||||||
147
charts/pulsar/templates/oxia-server-statefulset.yaml
Normal file
147
charts/pulsar/templates/oxia-server-statefulset.yaml
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
{{- if .Values.components.oxia }}
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: StatefulSet
|
||||||
|
metadata:
|
||||||
|
name: {{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}-server
|
||||||
|
namespace: {{ template "pulsar.namespace" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
||||||
|
component: {{ .Values.oxia.component }}-server
|
||||||
|
spec:
|
||||||
|
replicas: {{ .Values.oxia.server.replicas }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{- include "pulsar.matchLabels" . | nindent 6 }}
|
||||||
|
component: {{ .Values.oxia.component }}-server
|
||||||
|
serviceName: {{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}-svc
|
||||||
|
podManagementPolicy: Parallel
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
{{- include "pulsar.template.labels" . | nindent 8 }}
|
||||||
|
component: {{ .Values.oxia.component }}-server
|
||||||
|
annotations:
|
||||||
|
prometheus.io/scrape: "true"
|
||||||
|
prometheus.io/port: "{{ .Values.oxia.server.ports.metrics }}"
|
||||||
|
spec:
|
||||||
|
{{- if .Values.oxia.server.nodeSelector }}
|
||||||
|
nodeSelector:
|
||||||
|
{{ toYaml .Values.oxia.server.nodeSelector | indent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.oxia.server.tolerations }}
|
||||||
|
tolerations:
|
||||||
|
{{ toYaml .Values.oxia.server.tolerations | indent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.oxia.server.topologySpreadConstraints }}
|
||||||
|
topologySpreadConstraints:
|
||||||
|
{{- toYaml .Values.oxia.server.topologySpreadConstraints | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
affinity:
|
||||||
|
{{- if and .Values.affinity.anti_affinity .Values.oxia.server.affinity.anti_affinity}}
|
||||||
|
podAntiAffinity:
|
||||||
|
{{ if eq .Values.oxia.server.affinity.type "requiredDuringSchedulingIgnoredDuringExecution"}}
|
||||||
|
{{ .Values.oxia.server.affinity.type }}:
|
||||||
|
- labelSelector:
|
||||||
|
matchExpressions:
|
||||||
|
- key: "app"
|
||||||
|
operator: In
|
||||||
|
values:
|
||||||
|
- "{{ template "pulsar.name" . }}"
|
||||||
|
- key: "release"
|
||||||
|
operator: In
|
||||||
|
values:
|
||||||
|
- {{ .Release.Name }}
|
||||||
|
- key: "component"
|
||||||
|
operator: In
|
||||||
|
values:
|
||||||
|
- {{ .Values.oxia.component }}-server
|
||||||
|
topologyKey: {{ .Values.oxia.server.affinity.anti_affinity_topology_key }}
|
||||||
|
{{ else }}
|
||||||
|
{{ .Values.oxia.server.affinity.type }}:
|
||||||
|
- weight: 100
|
||||||
|
podAffinityTerm:
|
||||||
|
labelSelector:
|
||||||
|
matchExpressions:
|
||||||
|
- key: "app"
|
||||||
|
operator: In
|
||||||
|
values:
|
||||||
|
- "{{ template "pulsar.name" . }}"
|
||||||
|
- key: "release"
|
||||||
|
operator: In
|
||||||
|
values:
|
||||||
|
- {{ .Release.Name }}
|
||||||
|
- key: "component"
|
||||||
|
operator: In
|
||||||
|
values:
|
||||||
|
- {{ .Values.oxia.component }}-server
|
||||||
|
topologyKey: {{ .Values.oxia.server.affinity.anti_affinity_topology_key }}
|
||||||
|
{{ end }}
|
||||||
|
{{- end }}
|
||||||
|
serviceAccountName: {{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}
|
||||||
|
{{- if .Values.oxia.server.securityContext }}
|
||||||
|
securityContext:
|
||||||
|
{{ toYaml .Values.oxia.server.securityContext | indent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
containers:
|
||||||
|
- command:
|
||||||
|
- "oxia"
|
||||||
|
- "server"
|
||||||
|
- "--log-json"
|
||||||
|
- "--data-dir=/data/db"
|
||||||
|
- "--wal-dir=/data/wal"
|
||||||
|
- "--db-cache-size-mb={{ .Values.oxia.server.dbCacheSizeMb }}"
|
||||||
|
{{- if .Values.oxia.pprofEnabled }}
|
||||||
|
- "--profile"
|
||||||
|
{{- end}}
|
||||||
|
image: "{{ .Values.images.oxia.repository }}:{{ .Values.images.oxia.tag | default .Chart.AppVersion }}"
|
||||||
|
imagePullPolicy: {{ .Values.images.oxia.pullPolicy }}
|
||||||
|
name: server
|
||||||
|
ports:
|
||||||
|
{{- range $key, $value := .Values.oxia.server.ports }}
|
||||||
|
- containerPort: {{ $value | int }}
|
||||||
|
name: {{ $key }}
|
||||||
|
{{- end}}
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: {{ .Values.oxia.server.cpuLimit }}
|
||||||
|
memory: {{ .Values.oxia.server.memoryLimit }}
|
||||||
|
volumeMounts:
|
||||||
|
- name: {{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}-data
|
||||||
|
mountPath: /data
|
||||||
|
livenessProbe:
|
||||||
|
{{- include "oxia-cluster.probe" .Values.oxia.server.ports.internal | nindent 12 }}
|
||||||
|
readinessProbe:
|
||||||
|
{{- include "oxia-cluster.readiness-probe" .Values.oxia.server.ports.internal | nindent 12 }}
|
||||||
|
startupProbe:
|
||||||
|
{{- include "oxia-cluster.startup-probe" .Values.oxia.server.ports.internal | nindent 12 }}
|
||||||
|
volumeClaimTemplates:
|
||||||
|
- metadata:
|
||||||
|
name: {{ template "pulsar.fullname" . }}-{{ .Values.oxia.component }}-data
|
||||||
|
spec:
|
||||||
|
accessModes: [ "ReadWriteOnce" ]
|
||||||
|
{{- if .Values.oxia.server.storageClassName }}
|
||||||
|
storageClassName: {{ .Values.oxia.server.storageClassName }}
|
||||||
|
{{- end}}
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: {{ .Values.oxia.server.storageSize }}
|
||||||
|
{{- end}}
|
||||||
@ -109,7 +109,7 @@ spec:
|
|||||||
terminationGracePeriodSeconds: {{ .Values.proxy.gracePeriod }}
|
terminationGracePeriodSeconds: {{ .Values.proxy.gracePeriod }}
|
||||||
serviceAccountName: "{{ template "pulsar.fullname" . }}-{{ .Values.proxy.component }}"
|
serviceAccountName: "{{ template "pulsar.fullname" . }}-{{ .Values.proxy.component }}"
|
||||||
initContainers:
|
initContainers:
|
||||||
{{- if and .Values.proxy.waitZookeeperTimeout (not (eq (.Values.proxy.waitZookeeperTimeout | toString) "0")) }}
|
{{- if and .Values.components.zookeeper .Values.proxy.waitZookeeperTimeout (gt (.Values.proxy.waitZookeeperTimeout | int) 0) }}
|
||||||
# This init container will wait for zookeeper to be ready before
|
# This init container will wait for zookeeper to be ready before
|
||||||
# deploying the bookies
|
# deploying the bookies
|
||||||
- name: wait-zookeeper-ready
|
- name: wait-zookeeper-ready
|
||||||
@ -130,7 +130,19 @@ spec:
|
|||||||
done;
|
done;
|
||||||
{{- end}}
|
{{- end}}
|
||||||
{{- end}}
|
{{- end}}
|
||||||
{{- if and .Values.proxy.waitBrokerTimeout (not (eq (.Values.proxy.waitBrokerTimeout | toString) "0")) }}
|
{{- if and .Values.components.oxia .Values.proxy.waitOxiaTimeout (gt (.Values.proxy.waitOxiaTimeout | int) 0) }}
|
||||||
|
- name: wait-oxia-ready
|
||||||
|
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.images.proxy "root" .) }}"
|
||||||
|
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.images.proxy "root" .) }}"
|
||||||
|
resources: {{ toYaml .Values.initContainer.resources | nindent 10 }}
|
||||||
|
command: ["timeout", "{{ .Values.proxy.waitOxiaTimeout }}", "sh", "-c"]
|
||||||
|
args:
|
||||||
|
- >-
|
||||||
|
until nslookup {{ template "pulsar.oxia.server.service" . }}; do
|
||||||
|
sleep 3;
|
||||||
|
done;
|
||||||
|
{{- end }}
|
||||||
|
{{- if and .Values.proxy.waitBrokerTimeout (gt (.Values.proxy.waitBrokerTimeout | int) 0) }}
|
||||||
# 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
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
apiVersion: batch/v1
|
apiVersion: batch/v1
|
||||||
kind: Job
|
kind: Job
|
||||||
metadata:
|
metadata:
|
||||||
name: "{{ template "pulsar.fullname" . }}-{{ .Values.pulsar_metadata.component }}"
|
name: {{ template "pulsar.fullname" . }}-{{ .Values.pulsar_metadata.component }}
|
||||||
namespace: {{ template "pulsar.namespace" . }}
|
namespace: {{ template "pulsar.namespace" . }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
||||||
@ -41,9 +41,9 @@ spec:
|
|||||||
{{ toYaml .Values.pulsar_metadata.nodeSelector | indent 8 }}
|
{{ toYaml .Values.pulsar_metadata.nodeSelector | indent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
initContainers:
|
initContainers:
|
||||||
{{- if and .Values.pulsar_metadata.waitZookeeperTimeout (not (eq (.Values.pulsar_metadata.waitZookeeperTimeout | toString) "0")) }}
|
{{- if and .Values.components.zookeeper .Values.pulsar_metadata.waitZookeeperTimeout (gt (.Values.pulsar_metadata.waitZookeeperTimeout | int) 0) }}
|
||||||
{{- if .Values.pulsar_metadata.configurationStore }}
|
{{- if .Values.pulsar_metadata.configurationStore }}
|
||||||
- name: wait-cs-ready
|
- name: wait-zk-cs-ready
|
||||||
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.pulsar_metadata.image "root" .) }}"
|
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.pulsar_metadata.image "root" .) }}"
|
||||||
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.pulsar_metadata.image "root" .) }}"
|
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.pulsar_metadata.image "root" .) }}"
|
||||||
resources: {{ toYaml .Values.initContainer.resources | nindent 10 }}
|
resources: {{ toYaml .Values.initContainer.resources | nindent 10 }}
|
||||||
@ -54,34 +54,46 @@ spec:
|
|||||||
sleep 3;
|
sleep 3;
|
||||||
done;
|
done;
|
||||||
{{- end }}
|
{{- end }}
|
||||||
- name: wait-zookeeper-ready
|
- name: wait-zk-metastore-ready
|
||||||
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.pulsar_metadata.image "root" .) }}"
|
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.pulsar_metadata.image "root" .) }}"
|
||||||
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.pulsar_metadata.image "root" .) }}"
|
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.pulsar_metadata.image "root" .) }}"
|
||||||
resources: {{ toYaml .Values.initContainer.resources | nindent 10 }}
|
resources: {{ toYaml .Values.initContainer.resources | nindent 10 }}
|
||||||
command: ["timeout", "{{ .Values.pulsar_metadata.waitZookeeperTimeout }}", "sh", "-c"]
|
command: ["timeout", "{{ .Values.pulsar_metadata.waitZookeeperTimeout }}", "sh", "-c"]
|
||||||
args:
|
args:
|
||||||
- >-
|
- >-
|
||||||
{{- if $zk:=.Values.pulsar_metadata.userProvidedZookeepers }}
|
{{- if $zk := .Values.pulsar_metadata.userProvidedZookeepers }}
|
||||||
export PULSAR_MEM="-Xmx128M";
|
export PULSAR_MEM="-Xmx128M";
|
||||||
until timeout 15 bin/pulsar zookeeper-shell -server {{ $zk }} ls {{ or .Values.metadataPrefix "/" }}; do
|
until timeout 15 bin/pulsar zookeeper-shell -server {{ $zk }} ls {{ or .Values.metadataPrefix "/" }}; do
|
||||||
echo "user provided zookeepers {{ $zk }} are unreachable... check in 3 seconds ..." && sleep 3;
|
echo "user provided zookeepers {{ $zk }} are unreachable... check in 3 seconds ..." && sleep 3;
|
||||||
done;
|
done;
|
||||||
{{ else }}
|
{{ else if .Values.components.zookeeper }}
|
||||||
until nslookup {{ template "pulsar.fullname" . }}-{{ .Values.zookeeper.component }}-{{ add (.Values.zookeeper.replicaCount | int) -1 }}.{{ template "pulsar.fullname" . }}-{{ .Values.zookeeper.component }}.{{ template "pulsar.namespace" . }}; do
|
until nslookup {{ template "pulsar.fullname" . }}-{{ .Values.zookeeper.component }}-{{ add (.Values.zookeeper.replicaCount | int) -1 }}.{{ template "pulsar.fullname" . }}-{{ .Values.zookeeper.component }}.{{ template "pulsar.namespace" . }}; do
|
||||||
sleep 3;
|
sleep 3;
|
||||||
done;
|
done;
|
||||||
{{- end}}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if and .Values.pulsar_metadata.waitBookkeeperTimeout (not (eq (.Values.pulsar_metadata.waitBookkeeperTimeout | toString) "0")) }}
|
{{- if and .Values.components.oxia .Values.pulsar_metadata.waitOxiaTimeout (gt (.Values.pulsar_metadata.waitOxiaTimeout | int) 0) }}
|
||||||
# This initContainer will wait for bookkeeper initnewcluster to complete
|
- name: wait-oxia-ready
|
||||||
# before initializing pulsar metadata
|
|
||||||
- name: pulsar-bookkeeper-verify-clusterid
|
|
||||||
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.pulsar_metadata.image "root" .) }}"
|
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.pulsar_metadata.image "root" .) }}"
|
||||||
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.pulsar_metadata.image "root" .) }}"
|
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.pulsar_metadata.image "root" .) }}"
|
||||||
resources: {{ toYaml .Values.initContainer.resources | nindent 10 }}
|
resources: {{ toYaml .Values.initContainer.resources | nindent 10 }}
|
||||||
|
command: ["timeout", "{{ .Values.pulsar_metadata.waitOxiaTimeout }}", "sh", "-c"]
|
||||||
|
args:
|
||||||
|
- >-
|
||||||
|
until nslookup {{ template "pulsar.oxia.server.service" . }}; do
|
||||||
|
sleep 3;
|
||||||
|
done;
|
||||||
|
{{- end }}
|
||||||
|
{{- if and .Values.pulsar_metadata.waitBookkeeperTimeout (gt (.Values.pulsar_metadata.waitBookkeeperTimeout | int) 0) }}
|
||||||
|
# This initContainer will wait for bookkeeper initnewcluster to complete
|
||||||
|
# before initializing pulsar metadata
|
||||||
|
- name: pulsar-bookkeeper-verify-clusterid
|
||||||
|
image: {{ template "pulsar.imageFullName" (dict "image" .Values.pulsar_metadata.image "root" .) }}
|
||||||
|
imagePullPolicy: {{ template "pulsar.imagePullPolicy" (dict "image" .Values.pulsar_metadata.image "root" .) }}
|
||||||
|
resources: {{ toYaml .Values.initContainer.resources | nindent 10 }}
|
||||||
command: ["timeout", "{{ .Values.pulsar_metadata.waitBookkeeperTimeout }}", "sh", "-c"]
|
command: ["timeout", "{{ .Values.pulsar_metadata.waitBookkeeperTimeout }}", "sh", "-c"]
|
||||||
args:
|
args:
|
||||||
- >
|
- >-
|
||||||
bin/apply-config-from-env.py conf/bookkeeper.conf;
|
bin/apply-config-from-env.py conf/bookkeeper.conf;
|
||||||
echo Default BOOKIE_MEM settings are set very high, which can cause the init container to fail.;
|
echo Default BOOKIE_MEM settings are set very high, which can cause the init container to fail.;
|
||||||
echo Setting the memory to a lower value to avoid OOM as operations below are not memory intensive.;
|
echo Setting the memory to a lower value to avoid OOM as operations below are not memory intensive.;
|
||||||
@ -92,32 +104,32 @@ spec:
|
|||||||
done;
|
done;
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
name: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}"
|
name: {{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
{{- include "pulsar.toolset.certs.volumeMounts" . | nindent 8 }}
|
{{- include "pulsar.toolset.certs.volumeMounts" . | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
containers:
|
containers:
|
||||||
- name: "{{ template "pulsar.fullname" . }}-{{ .Values.pulsar_metadata.component }}"
|
- name: {{ template "pulsar.fullname" . }}-{{ .Values.pulsar_metadata.component }}
|
||||||
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.pulsar_metadata.image "root" .) }}"
|
image: {{ template "pulsar.imageFullName" (dict "image" .Values.pulsar_metadata.image "root" .) }}
|
||||||
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.pulsar_metadata.image "root" .) }}"
|
imagePullPolicy: {{ template "pulsar.imagePullPolicy" (dict "image" .Values.pulsar_metadata.image "root" .) }}
|
||||||
{{- if .Values.pulsar_metadata.resources }}
|
{{- if .Values.pulsar_metadata.resources }}
|
||||||
resources:
|
resources:
|
||||||
{{ toYaml .Values.pulsar_metadata.resources | indent 10 }}
|
{{ toYaml .Values.pulsar_metadata.resources | indent 10 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
command: ["timeout", "{{ .Values.pulsar_metadata.initTimeout | default 60 }}", "sh", "-c"]
|
command: ["timeout", "{{ .Values.pulsar_metadata.initTimeout | default 60 }}", "sh", "-c"]
|
||||||
|
{{- if .Values.components.zookeeper }}
|
||||||
args:
|
args:
|
||||||
- |
|
- >-
|
||||||
{{- include "pulsar.toolset.zookeeper.tls.settings" . | nindent 12 }}
|
{{- include "pulsar.toolset.zookeeper.tls.settings" . | nindent 12 }}
|
||||||
export PULSAR_MEM="-Xmx128M";
|
export PULSAR_MEM="-Xmx128M";
|
||||||
bin/pulsar initialize-cluster-metadata \
|
bin/pulsar initialize-cluster-metadata \
|
||||||
--cluster {{ template "pulsar.cluster.name" . }} \
|
--cluster {{ template "pulsar.cluster.name" . }} \
|
||||||
--zookeeper {{ template "pulsar.zookeeper.connect" . }}{{ .Values.metadataPrefix }} \
|
--zookeeper {{ template "pulsar.zookeeper.connect" . }}{{ .Values.metadataPrefix }} \
|
||||||
{{- if .Values.pulsar_metadata.configurationStore }}
|
{{- if .Values.pulsar_metadata.configurationStore }}
|
||||||
--configuration-store {{ template "pulsar.configurationStore.connect" . }}{{ .Values.pulsar_metadata.configurationStoreMetadataPrefix }} \
|
--configuration-store {{ template "pulsar.configurationStore.connect" . }}{{ .Values.pulsar_metadata.configurationStoreMetadataPrefix }} \
|
||||||
{{- end }}
|
{{- else }}
|
||||||
{{- if not .Values.pulsar_metadata.configurationStore }}
|
|
||||||
--configuration-store {{ template "pulsar.zookeeper.connect" . }}{{ .Values.metadataPrefix }} \
|
--configuration-store {{ template "pulsar.zookeeper.connect" . }}{{ .Values.metadataPrefix }} \
|
||||||
{{- end }}
|
{{- end }}
|
||||||
--web-service-url http://{{ template "pulsar.fullname" . }}-{{ .Values.broker.component }}.{{ template "pulsar.namespace" . }}.svc.{{ .Values.clusterDomain }}:{{ .Values.broker.ports.http }}/ \
|
--web-service-url http://{{ template "pulsar.fullname" . }}-{{ .Values.broker.component }}.{{ template "pulsar.namespace" . }}.svc.{{ .Values.clusterDomain }}:{{ .Values.broker.ports.http }}/ \
|
||||||
--web-service-url-tls https://{{ template "pulsar.fullname" . }}-{{ .Values.broker.component }}.{{ template "pulsar.namespace" . }}.svc.{{ .Values.clusterDomain }}:{{ .Values.broker.ports.https }}/ \
|
--web-service-url-tls https://{{ template "pulsar.fullname" . }}-{{ .Values.broker.component }}.{{ template "pulsar.namespace" . }}.svc.{{ .Values.clusterDomain }}:{{ .Values.broker.ports.https }}/ \
|
||||||
--broker-service-url pulsar://{{ template "pulsar.fullname" . }}-{{ .Values.broker.component }}.{{ template "pulsar.namespace" . }}.svc.{{ .Values.clusterDomain }}:{{ .Values.broker.ports.pulsar }}/ \
|
--broker-service-url pulsar://{{ template "pulsar.fullname" . }}-{{ .Values.broker.component }}.{{ template "pulsar.namespace" . }}.svc.{{ .Values.clusterDomain }}:{{ .Values.broker.ports.pulsar }}/ \
|
||||||
@ -125,10 +137,26 @@ spec:
|
|||||||
{{- if .Values.extraInitCommand }}
|
{{- if .Values.extraInitCommand }}
|
||||||
{{ .Values.extraInitCommand }}
|
{{ .Values.extraInitCommand }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- else if .Values.components.oxia }}
|
||||||
|
args:
|
||||||
|
- >-
|
||||||
|
export PULSAR_MEM="-Xmx128M";
|
||||||
|
bin/pulsar initialize-cluster-metadata \
|
||||||
|
--cluster {{ template "pulsar.cluster.name" . }} \
|
||||||
|
--metadata-store "{{ template "pulsar.oxia.metadata.url.broker" . }}" \
|
||||||
|
--configuration-store "{{ template "pulsar.oxia.metadata.url.broker" . }}" \
|
||||||
|
--web-service-url http://{{ template "pulsar.fullname" . }}-{{ .Values.broker.component }}.{{ template "pulsar.namespace" . }}.svc.{{ .Values.clusterDomain }}:{{ .Values.broker.ports.http }}/ \
|
||||||
|
--web-service-url-tls https://{{ template "pulsar.fullname" . }}-{{ .Values.broker.component }}.{{ template "pulsar.namespace" . }}.svc.{{ .Values.clusterDomain }}:{{ .Values.broker.ports.https }}/ \
|
||||||
|
--broker-service-url pulsar://{{ template "pulsar.fullname" . }}-{{ .Values.broker.component }}.{{ template "pulsar.namespace" . }}.svc.{{ .Values.clusterDomain }}:{{ .Values.broker.ports.pulsar }}/ \
|
||||||
|
--broker-service-url-tls pulsar+ssl://{{ template "pulsar.fullname" . }}-{{ .Values.broker.component }}.{{ template "pulsar.namespace" . }}.svc.{{ .Values.clusterDomain }}:{{ .Values.broker.ports.pulsarssl }}/ ;
|
||||||
|
{{- if .Values.extraInitCommand }}
|
||||||
|
{{ .Values.extraInitCommand }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
{{- include "pulsar.toolset.certs.volumeMounts" . | nindent 8 }}
|
{{- include "pulsar.toolset.certs.volumeMounts" . | nindent 10 }}
|
||||||
volumes:
|
volumes:
|
||||||
{{- include "pulsar.toolset.certs.volumes" . | nindent 6 }}
|
{{- include "pulsar.toolset.certs.volumes" . | nindent 8 }}
|
||||||
restartPolicy: OnFailure
|
restartPolicy: OnFailure
|
||||||
{{- if .Values.pulsar_metadata.nodeSelector }}
|
{{- if .Values.pulsar_metadata.nodeSelector }}
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
|
|||||||
@ -26,8 +26,8 @@ metadata:
|
|||||||
labels:
|
labels:
|
||||||
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
||||||
component: {{ .Values.toolset.component }}
|
component: {{ .Values.toolset.component }}
|
||||||
annotations:
|
|
||||||
{{- with .Values.toolset.service_account.annotations }}
|
{{- with .Values.toolset.service_account.annotations }}
|
||||||
|
annotations:
|
||||||
{{ toYaml . | indent 4 }}
|
{{ toYaml . | indent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@ -18,6 +18,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
# deploy zookeeper PodMonitor only when `$.Values.zookeeper.podMonitor.enabled` is true
|
# deploy zookeeper PodMonitor only when `$.Values.zookeeper.podMonitor.enabled` is true
|
||||||
|
{{- if .Values.components.zookeeper }}
|
||||||
{{- if $.Values.zookeeper.podMonitor.enabled }}
|
{{- if $.Values.zookeeper.podMonitor.enabled }}
|
||||||
apiVersion: monitoring.coreos.com/v1
|
apiVersion: monitoring.coreos.com/v1
|
||||||
kind: PodMonitor
|
kind: PodMonitor
|
||||||
@ -56,3 +57,4 @@ spec:
|
|||||||
{{- include "pulsar.matchLabels" . | nindent 6 }}
|
{{- include "pulsar.matchLabels" . | nindent 6 }}
|
||||||
component: zookeeper
|
component: zookeeper
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
@ -113,6 +113,8 @@ affinity:
|
|||||||
components:
|
components:
|
||||||
# zookeeper
|
# zookeeper
|
||||||
zookeeper: true
|
zookeeper: true
|
||||||
|
# oxia
|
||||||
|
oxia: false
|
||||||
# bookkeeper
|
# bookkeeper
|
||||||
bookkeeper: true
|
bookkeeper: true
|
||||||
# bookkeeper - autorecovery
|
# bookkeeper - autorecovery
|
||||||
@ -202,6 +204,10 @@ images:
|
|||||||
# uses defaultPullPolicy when unspecified
|
# uses defaultPullPolicy when unspecified
|
||||||
pullPolicy:
|
pullPolicy:
|
||||||
hasCommand: false
|
hasCommand: false
|
||||||
|
oxia:
|
||||||
|
repository: streamnative/oxia
|
||||||
|
tag: 0.11.9
|
||||||
|
pullPolicy: Always
|
||||||
|
|
||||||
## TLS
|
## TLS
|
||||||
## templates/tls-certs.yaml
|
## templates/tls-certs.yaml
|
||||||
@ -249,6 +255,8 @@ tls:
|
|||||||
function_instance:
|
function_instance:
|
||||||
# controls the use of TLS for function runtime connections towards brokers
|
# controls the use of TLS for function runtime connections towards brokers
|
||||||
enabled: false
|
enabled: false
|
||||||
|
oxia:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
# Enable or disable broker authentication and authorization.
|
# Enable or disable broker authentication and authorization.
|
||||||
auth:
|
auth:
|
||||||
@ -468,7 +476,81 @@ zookeeper:
|
|||||||
usePolicy: true
|
usePolicy: true
|
||||||
maxUnavailable: 1
|
maxUnavailable: 1
|
||||||
|
|
||||||
|
## Pulsar: Oxia cluster
|
||||||
|
oxia:
|
||||||
|
component: oxia
|
||||||
|
initialShardCount: 3
|
||||||
|
replicationFactor: 3
|
||||||
|
## templates/coordinator-deployment.yaml
|
||||||
|
coordinator:
|
||||||
|
# This is how prometheus discovers this component
|
||||||
|
podMonitor:
|
||||||
|
enabled: true
|
||||||
|
interval: 60s
|
||||||
|
scrapeTimeout: 60s
|
||||||
|
metricRelabelings:
|
||||||
|
# - action: labeldrop
|
||||||
|
# regex: cluster
|
||||||
|
cpuLimit: 100m
|
||||||
|
memoryLimit: 128Mi
|
||||||
|
ports:
|
||||||
|
internal: 6649
|
||||||
|
metrics: 8080
|
||||||
|
service:
|
||||||
|
annotations: {}
|
||||||
|
service_account:
|
||||||
|
annotations: {}
|
||||||
|
tolerations: []
|
||||||
|
# nodeSelector:
|
||||||
|
# cloud.google.com/gke-nodepool: default-pool
|
||||||
|
## templates/server-statefulset.yaml
|
||||||
|
server:
|
||||||
|
# This is how prometheus discovers this component
|
||||||
|
podMonitor:
|
||||||
|
enabled: true
|
||||||
|
interval: 60s
|
||||||
|
scrapeTimeout: 60s
|
||||||
|
metricRelabelings:
|
||||||
|
# - action: labeldrop
|
||||||
|
# regex: cluster
|
||||||
|
replicas: 3
|
||||||
|
# CPU limit for the server pod
|
||||||
|
cpuLimit: 1
|
||||||
|
# Memory limit for the server pod
|
||||||
|
memoryLimit: 1Gi
|
||||||
|
# Oxia database cache size in MB
|
||||||
|
dbCacheSizeMb: 512
|
||||||
|
# Storage size for the PVC of the server pod
|
||||||
|
storageSize: 8Gi
|
||||||
|
# Storage class name for the PVC of the server pod
|
||||||
|
# storageClassName: existent-storage-class
|
||||||
|
ports:
|
||||||
|
public: 6648
|
||||||
|
internal: 6649
|
||||||
|
metrics: 8080
|
||||||
|
service:
|
||||||
|
public:
|
||||||
|
annotations: {}
|
||||||
|
internal:
|
||||||
|
annotations: {}
|
||||||
|
service_account:
|
||||||
|
annotations: {}
|
||||||
|
securityContext:
|
||||||
|
fsGroup: 0
|
||||||
|
fsGroupChangePolicy: "OnRootMismatch"
|
||||||
|
affinity:
|
||||||
|
anti_affinity: true
|
||||||
|
anti_affinity_topology_key: kubernetes.io/hostname
|
||||||
|
# Set the anti affinity type. Valid values:
|
||||||
|
# requiredDuringSchedulingIgnoredDuringExecution - rules must be met for pod to be scheduled (hard) requires at least one node per replica
|
||||||
|
# preferredDuringSchedulingIgnoredDuringExecution - scheduler will try to enforce but not guranentee
|
||||||
|
type: requiredDuringSchedulingIgnoredDuringExecution
|
||||||
|
# set topologySpreadConstraint to deploy pods across different zones
|
||||||
|
topologySpreadConstraints: []
|
||||||
|
tolerations: []
|
||||||
|
# nodeSelector:
|
||||||
|
# cloud.google.com/gke-nodepool: default-pool
|
||||||
|
pprofEnabled: false
|
||||||
## Pulsar: Bookkeeper cluster
|
## Pulsar: Bookkeeper cluster
|
||||||
## templates/bookkeeper-statefulset.yaml
|
## templates/bookkeeper-statefulset.yaml
|
||||||
##
|
##
|
||||||
@ -483,6 +565,8 @@ bookkeeper:
|
|||||||
waitZookeeperTimeout: 600
|
waitZookeeperTimeout: 600
|
||||||
## Timeout for running metadata initialization
|
## Timeout for running metadata initialization
|
||||||
initTimeout: 60
|
initTimeout: 60
|
||||||
|
## Timeout for waiting for oxia to be available before running metadata initialization. This setting applies only when oxia is enabled.
|
||||||
|
waitOxiaTimeout: 600
|
||||||
## Set the resources used for running `bin/bookkeeper shell initnewcluster`
|
## Set the resources used for running `bin/bookkeeper shell initnewcluster`
|
||||||
##
|
##
|
||||||
resources:
|
resources:
|
||||||
@ -765,12 +849,16 @@ pulsar_metadata:
|
|||||||
tag:
|
tag:
|
||||||
# uses defaultPullPolicy when unspecified
|
# uses defaultPullPolicy when unspecified
|
||||||
pullPolicy:
|
pullPolicy:
|
||||||
## set an existing configuration store
|
## set an existing configuration store. This setting applies only when zookeeper is enabled.
|
||||||
# configurationStore:
|
# configurationStore:
|
||||||
|
# the prefix for the configuration store metadata. This setting applies only when zookeeper is enabled.
|
||||||
configurationStoreMetadataPrefix: ""
|
configurationStoreMetadataPrefix: ""
|
||||||
|
# the configuration store port. This setting applies only when zookeeper is enabled.
|
||||||
configurationStorePort: 2181
|
configurationStorePort: 2181
|
||||||
## Timeout for waiting for zookeeper to become available before running metadata initialization
|
# the zookeeper timeout. This setting applies only when zookeeper is enabled.
|
||||||
waitZookeeperTimeout: 600
|
waitZookeeperTimeout: 600
|
||||||
|
## Timeout for waiting for oxia to be available before running metadata initialization. This setting applies only when oxia is enabled.
|
||||||
|
waitOxiaTimeout: 600
|
||||||
## Timeout for waiting for bookkeeper to be initialized before running metadata initialization
|
## Timeout for waiting for bookkeeper to be initialized before running metadata initialization
|
||||||
waitBookkeeperTimeout: 120
|
waitBookkeeperTimeout: 120
|
||||||
## Timeout for running metadata initialization
|
## Timeout for running metadata initialization
|
||||||
@ -866,6 +954,8 @@ broker:
|
|||||||
gracePeriod: 30
|
gracePeriod: 30
|
||||||
## Timeout for waiting for zookeeper to become available before starting a broker
|
## Timeout for waiting for zookeeper to become available before starting a broker
|
||||||
waitZookeeperTimeout: 600
|
waitZookeeperTimeout: 600
|
||||||
|
## Timeout for waiting for oxia to be available before starting a broker. This setting applies only when oxia is enabled.
|
||||||
|
waitOxiaTimeout: 600
|
||||||
## Timeout for waiting for bookkeeper to become available before starting a broker
|
## Timeout for waiting for bookkeeper to become available before starting a broker
|
||||||
waitBookkeeperTimeout: 120
|
waitBookkeeperTimeout: 120
|
||||||
resources:
|
resources:
|
||||||
@ -1106,6 +1196,8 @@ proxy:
|
|||||||
gracePeriod: 30
|
gracePeriod: 30
|
||||||
## Timeout for waiting for zookeeper to become available before starting a proxy
|
## Timeout for waiting for zookeeper to become available before starting a proxy
|
||||||
waitZookeeperTimeout: 600
|
waitZookeeperTimeout: 600
|
||||||
|
## Timeout for waiting for oxia to be available before starting a proxy. This setting applies only when oxia is enabled.
|
||||||
|
waitOxiaTimeout: 600
|
||||||
## Timeout for waiting for brokers to become available before starting a proxy
|
## Timeout for waiting for brokers to become available before starting a proxy
|
||||||
waitBrokerTimeout: 120
|
waitBrokerTimeout: 120
|
||||||
resources:
|
resources:
|
||||||
|
|||||||
22
examples/values-oxia.yaml
Normal file
22
examples/values-oxia.yaml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
components:
|
||||||
|
zookeeper: false
|
||||||
|
oxia: true
|
||||||
Loading…
x
Reference in New Issue
Block a user