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 }}
|
||||
# Do not retain journal files as it increase the disk utilization
|
||||
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"
|
||||
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"
|
||||
{{- end }}
|
||||
# TLS config
|
||||
{{- include "pulsar.bookkeeper.config.tls" . | nindent 2 }}
|
||||
{{ toYaml .Values.bookkeeper.configData | indent 2 }}
|
||||
|
||||
@ -188,11 +188,28 @@ spec:
|
||||
- name: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}-{{ .Values.bookkeeper.volumes.common.name }}"
|
||||
mountPath: /pulsar/data/bookkeeper
|
||||
{{- 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 }}"
|
||||
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 }}"
|
||||
mountPath: /pulsar/data/bookkeeper/ledgers
|
||||
{{- end}}
|
||||
{{- end }}
|
||||
{{- if .Values.bookkeeper.extraVolumeMounts }}
|
||||
{{ toYaml .Values.bookkeeper.extraVolumeMounts | indent 8 }}
|
||||
{{- end }}
|
||||
@ -227,6 +244,22 @@ spec:
|
||||
storageClassName: "local-storage"
|
||||
{{- end }}
|
||||
{{- 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:
|
||||
name: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}-{{ .Values.bookkeeper.volumes.journal.name }}"
|
||||
spec:
|
||||
@ -241,6 +274,23 @@ spec:
|
||||
{{- else if and .Values.volumes.local_storage .Values.bookkeeper.volumes.journal.local_storage }}
|
||||
storageClassName: "local-storage"
|
||||
{{- 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:
|
||||
name: "{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}-{{ .Values.bookkeeper.volumes.ledgers.name }}"
|
||||
spec:
|
||||
@ -256,5 +306,6 @@ spec:
|
||||
storageClassName: "local-storage"
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
@ -506,6 +506,16 @@ bookkeeper:
|
||||
# type: pd-ssd
|
||||
# fsType: xfs
|
||||
# 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:
|
||||
name: ledgers
|
||||
size: 50Gi
|
||||
@ -513,6 +523,16 @@ bookkeeper:
|
||||
# storageClassName:
|
||||
# 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
|
||||
useSingleCommonVolume: false
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user