Add multi volume support in bookkeeper. (#113)
* Add multi volume support in bookkeeper. (#112) * Add multi volumes support in bookkeeper configmap. Co-authored-by: druidliu <druidliu@tencent.com> Fixes #112 ### Motivation *Add option for user to choose whether using multi volume in bookeeper, especially while using `local-storage`.* ### Modifications Add `useMultiVolumes` option under `.Values.bookkeeper.volumes.journal` and `.Values.bookkeeper.volumes.ledgers`. User can choose how many volumes could be used for bookkeeper jounal or ledgers. ### Verifying this change - [x] Make sure that the change passes the CI checks.
This commit is contained in:
parent
90933d508d
commit
91f8b6f6b1
@ -35,9 +35,26 @@ data:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
# Do not retain journal files as it increase the disk utilization
|
# Do not retain journal files as it increase the disk utilization
|
||||||
journalMaxBackups: "0"
|
journalMaxBackups: "0"
|
||||||
|
{{- if .Values.bookkeeper.volumes.journal.useMultiVolumes }}
|
||||||
|
{{- $journalDirs := list -}}
|
||||||
|
{{ range .Values.bookkeeper.volumes.journal.multiVolumes }}
|
||||||
|
{{- $journalDirs = append $journalDirs .mountPath -}}
|
||||||
|
{{- end }}
|
||||||
|
journalDirectories: {{ $journalDirs | join "," | quote }}
|
||||||
|
PULSAR_PREFIX_journalDirectories: {{ $journalDirs | join "," | quote }}
|
||||||
|
{{- else }}
|
||||||
journalDirectories: "/pulsar/data/bookkeeper/journal"
|
journalDirectories: "/pulsar/data/bookkeeper/journal"
|
||||||
PULSAR_PREFIX_journalDirectories: "/pulsar/data/bookkeeper/journal"
|
PULSAR_PREFIX_journalDirectories: "/pulsar/data/bookkeeper/journal"
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.bookkeeper.volumes.ledgers.useMultiVolumes }}
|
||||||
|
{{- $ledgerDirs := list -}}
|
||||||
|
{{ range .Values.bookkeeper.volumes.ledgers.multiVolumes }}
|
||||||
|
{{- $ledgerDirs = append $ledgerDirs .mountPath -}}
|
||||||
|
{{- end }}
|
||||||
|
ledgerDirectories: {{ $ledgerDirs | join "," | quote }}
|
||||||
|
{{- else }}
|
||||||
ledgerDirectories: "/pulsar/data/bookkeeper/ledgers"
|
ledgerDirectories: "/pulsar/data/bookkeeper/ledgers"
|
||||||
|
{{- end }}
|
||||||
# TLS config
|
# TLS config
|
||||||
{{- include "pulsar.bookkeeper.config.tls" . | nindent 2 }}
|
{{- include "pulsar.bookkeeper.config.tls" . | nindent 2 }}
|
||||||
{{ toYaml .Values.bookkeeper.configData | indent 2 }}
|
{{ toYaml .Values.bookkeeper.configData | indent 2 }}
|
||||||
|
|||||||
@ -188,11 +188,28 @@ spec:
|
|||||||
- name: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}-{{ .Values.bookkeeper.volumes.common.name }}"
|
- name: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}-{{ .Values.bookkeeper.volumes.common.name }}"
|
||||||
mountPath: /pulsar/data/bookkeeper
|
mountPath: /pulsar/data/bookkeeper
|
||||||
{{- else }}
|
{{- else }}
|
||||||
|
{{- if .Values.bookkeeper.volumes.journal.useMultiVolumes }}
|
||||||
|
{{- $fullname := include "pulsar.fullname" . -}}
|
||||||
|
{{- $bkComponent := .Values.bookkeeper.component -}}
|
||||||
|
{{ range .Values.bookkeeper.volumes.journal.multiVolumes }}
|
||||||
|
- name: "{{ $fullname }}-{{ $bkComponent }}-{{ .name }}"
|
||||||
|
mountPath: {{ .mountPath }}
|
||||||
|
{{- end }}
|
||||||
|
{{- else }}
|
||||||
- name: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}-{{ .Values.bookkeeper.volumes.journal.name }}"
|
- name: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}-{{ .Values.bookkeeper.volumes.journal.name }}"
|
||||||
mountPath: /pulsar/data/bookkeeper/journal
|
mountPath: /pulsar/data/bookkeeper/journal
|
||||||
|
{{- end}}
|
||||||
|
{{- if .Values.bookkeeper.volumes.ledgers.useMultiVolumes }}
|
||||||
|
{{- $fullname := include "pulsar.fullname" . -}}
|
||||||
|
{{- $bkComponent := .Values.bookkeeper.component -}}
|
||||||
|
{{ range .Values.bookkeeper.volumes.ledgers.multiVolumes }}
|
||||||
|
- name: "{{ $fullname }}-{{ $bkComponent }}-{{ .name }}"
|
||||||
|
mountPath: {{ .mountPath }}
|
||||||
|
{{- end }}
|
||||||
|
{{- else }}
|
||||||
- name: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}-{{ .Values.bookkeeper.volumes.ledgers.name }}"
|
- name: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}-{{ .Values.bookkeeper.volumes.ledgers.name }}"
|
||||||
mountPath: /pulsar/data/bookkeeper/ledgers
|
mountPath: /pulsar/data/bookkeeper/ledgers
|
||||||
{{- end}}
|
{{- end }}
|
||||||
{{- if .Values.bookkeeper.extraVolumeMounts }}
|
{{- if .Values.bookkeeper.extraVolumeMounts }}
|
||||||
{{ toYaml .Values.bookkeeper.extraVolumeMounts | indent 8 }}
|
{{ toYaml .Values.bookkeeper.extraVolumeMounts | indent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
@ -227,6 +244,22 @@ spec:
|
|||||||
storageClassName: "local-storage"
|
storageClassName: "local-storage"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
|
{{- if .Values.bookkeeper.volumes.journal.useMultiVolumes }}
|
||||||
|
{{- $fullname := include "pulsar.fullname" . -}}
|
||||||
|
{{- $bkComponent := .Values.bookkeeper.component -}}
|
||||||
|
{{ range .Values.bookkeeper.volumes.journal.multiVolumes }}
|
||||||
|
- metadata:
|
||||||
|
name: "{{ $fullname }}-{{ $bkComponent }}-{{ .name }}"
|
||||||
|
spec:
|
||||||
|
accessModes: [ "ReadWriteOnce" ]
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: {{ .size }}
|
||||||
|
{{- if .storageClassName }}
|
||||||
|
storageClassName: "{{ .storageClassName }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- else }}
|
||||||
- metadata:
|
- metadata:
|
||||||
name: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}-{{ .Values.bookkeeper.volumes.journal.name }}"
|
name: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}-{{ .Values.bookkeeper.volumes.journal.name }}"
|
||||||
spec:
|
spec:
|
||||||
@ -241,6 +274,23 @@ spec:
|
|||||||
{{- else if and .Values.volumes.local_storage .Values.bookkeeper.volumes.journal.local_storage }}
|
{{- else if and .Values.volumes.local_storage .Values.bookkeeper.volumes.journal.local_storage }}
|
||||||
storageClassName: "local-storage"
|
storageClassName: "local-storage"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.bookkeeper.volumes.ledgers.useMultiVolumes }}
|
||||||
|
{{- $fullname := include "pulsar.fullname" . -}}
|
||||||
|
{{- $bkComponent := .Values.bookkeeper.component -}}
|
||||||
|
{{ range .Values.bookkeeper.volumes.ledgers.multiVolumes }}
|
||||||
|
- metadata:
|
||||||
|
name: "{{ $fullname }}-{{ $bkComponent }}-{{ .name }}"
|
||||||
|
spec:
|
||||||
|
accessModes: [ "ReadWriteOnce" ]
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: {{ .size }}
|
||||||
|
{{- if .storageClassName }}
|
||||||
|
storageClassName: "{{ .storageClassName }}"
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- else }}
|
||||||
- metadata:
|
- metadata:
|
||||||
name: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}-{{ .Values.bookkeeper.volumes.ledgers.name }}"
|
name: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}-{{ .Values.bookkeeper.volumes.ledgers.name }}"
|
||||||
spec:
|
spec:
|
||||||
@ -256,5 +306,6 @@ spec:
|
|||||||
storageClassName: "local-storage"
|
storageClassName: "local-storage"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@ -506,6 +506,16 @@ bookkeeper:
|
|||||||
# type: pd-ssd
|
# type: pd-ssd
|
||||||
# fsType: xfs
|
# fsType: xfs
|
||||||
# provisioner: kubernetes.io/gce-pd
|
# provisioner: kubernetes.io/gce-pd
|
||||||
|
useMultiVolumes: false
|
||||||
|
multiVolumes:
|
||||||
|
- name: journal0
|
||||||
|
size: 10Gi
|
||||||
|
# storageClassName: existent-storage-class
|
||||||
|
mountPath: /pulsar/data/bookkeeper/journal0
|
||||||
|
- name: journal1
|
||||||
|
size: 10Gi
|
||||||
|
# storageClassName: existent-storage-class
|
||||||
|
mountPath: /pulsar/data/bookkeeper/journal1
|
||||||
ledgers:
|
ledgers:
|
||||||
name: ledgers
|
name: ledgers
|
||||||
size: 50Gi
|
size: 50Gi
|
||||||
@ -513,6 +523,16 @@ bookkeeper:
|
|||||||
# storageClassName:
|
# storageClassName:
|
||||||
# storageClass:
|
# storageClass:
|
||||||
# ...
|
# ...
|
||||||
|
useMultiVolumes: false
|
||||||
|
multiVolumes:
|
||||||
|
- name: ledgers0
|
||||||
|
size: 10Gi
|
||||||
|
# storageClassName: existent-storage-class
|
||||||
|
mountPath: /pulsar/data/bookkeeper/ledgers0
|
||||||
|
- name: ledgers1
|
||||||
|
size: 10Gi
|
||||||
|
# storageClassName: existent-storage-class
|
||||||
|
mountPath: /pulsar/data/bookkeeper/ledgers1
|
||||||
|
|
||||||
## use a single common volume for both journal and ledgers
|
## use a single common volume for both journal and ledgers
|
||||||
useSingleCommonVolume: false
|
useSingleCommonVolume: false
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user