From 29ea17b3fceef65160620b9018d0dd0449a168c5 Mon Sep 17 00:00:00 2001 From: Victor Fauth Date: Thu, 15 Feb 2024 10:27:40 +0100 Subject: [PATCH] Enable persistence for pulsar-manager (#343) * Enable persistence for pulsar-manager * Upgrade to v0.4.0 version of pulsar-manager to get required fix - contains https://github.com/apache/pulsar-manager/pull/501 in https://github.com/apache/pulsar-manager/releases/tag/v0.4.0 --------- Co-authored-by: Victor Fauth Co-authored-by: Lari Hotari --- ...t.yaml => pulsar-manager-statefulset.yaml} | 34 +++++++++++++++---- charts/pulsar/values.yaml | 17 +++++++++- 2 files changed, 44 insertions(+), 7 deletions(-) rename charts/pulsar/templates/{pulsar-manager-deployment.yaml => pulsar-manager-statefulset.yaml} (70%) diff --git a/charts/pulsar/templates/pulsar-manager-deployment.yaml b/charts/pulsar/templates/pulsar-manager-statefulset.yaml similarity index 70% rename from charts/pulsar/templates/pulsar-manager-deployment.yaml rename to charts/pulsar/templates/pulsar-manager-statefulset.yaml index 75e236c..9bf7ca8 100644 --- a/charts/pulsar/templates/pulsar-manager-deployment.yaml +++ b/charts/pulsar/templates/pulsar-manager-statefulset.yaml @@ -19,7 +19,7 @@ {{- if or .Values.components.pulsar_manager .Values.extra.pulsar_manager }} apiVersion: apps/v1 -kind: Deployment +kind: StatefulSet metadata: name: "{{ template "pulsar.fullname" . }}-{{ .Values.pulsar_manager.component }}" namespace: {{ template "pulsar.namespace" . }} @@ -27,6 +27,7 @@ metadata: {{- include "pulsar.standardLabels" . | nindent 4 }} component: {{ .Values.pulsar_manager.component }} spec: + serviceName: "{{ template "pulsar.fullname" . }}-{{ .Values.pulsar_manager.component }}" replicas: 1 selector: matchLabels: @@ -66,7 +67,7 @@ spec: - containerPort: {{ .Values.pulsar_manager.service.targetPort }} - containerPort: {{ .Values.pulsar_manager.adminService.targetPort }} volumeMounts: - - name: pulsar-manager-data + - name: "{{ template "pulsar.fullname" . }}-{{ .Values.pulsar_manager.component }}-{{ .Values.pulsar_manager.volumes.data.name }}" mountPath: /data envFrom: - configMapRef: @@ -86,9 +87,30 @@ spec: key: DB_PASSWORD - name: PULSAR_MANAGER_OPTS value: "$(PULSAR_MANAGER_OPTS) -Dlog4j2.formatMsgNoLookups=true" - {{- include "pulsar.imagePullSecrets" . | nindent 6}} + {{- include "pulsar.imagePullSecrets" . | nindent 6 }} volumes: - - name: pulsar-manager-data - emptyDir: {} - + {{- if not (and (and .Values.persistence .Values.volumes.persistence) .Values.pulsar_manager.volumes.persistence) }} + - name: "{{ template "pulsar.fullname" . }}-{{ .Values.pulsar_manager.component }}-{{ .Values.pulsar_manager.volumes.data.name }}" + emptyDir: {} + {{- end }} +{{- if and (and .Values.persistence .Values.volumes.persistence) .Values.pulsar_manager.volumes.persistence }} + volumeClaimTemplates: + - metadata: + name: "{{ template "pulsar.fullname" . }}-{{ .Values.pulsar_manager.component }}-{{ .Values.pulsar_manager.volumes.data.name }}" + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: {{ .Values.pulsar_manager.volumes.data.size }} + {{- if .Values.pulsar_manager.volumes.data.storageClassName }} + storageClassName: "{{ .Values.pulsar_manager.volumes.data.storageClassName }}" + {{- else if and .Values.volumes.local_storage .Values.pulsar_manager.volumes.data.local_storage }} + storageClassName: "local-storage" + {{- end }} + {{- with .Values.pulsar_manager.volumes.data.selector }} + selector: + {{- toYaml . | nindent 8 }} + {{- end }} {{- end }} + +{{- end }} \ No newline at end of file diff --git a/charts/pulsar/values.yaml b/charts/pulsar/values.yaml index d2594d9..4d2ae4c 100644 --- a/charts/pulsar/values.yaml +++ b/charts/pulsar/values.yaml @@ -184,7 +184,7 @@ images: tag: pulsar_manager: repository: apachepulsar/pulsar-manager - tag: v0.3.0 + tag: v0.4.0 pullPolicy: IfNotPresent hasCommand: false @@ -1319,6 +1319,21 @@ pulsar_manager: # however, feel free to overwrite them SPRING_CONFIGURATION_FILE: "/pulsar-manager/pulsar-manager/application.properties" PULSAR_MANAGER_OPTS: " -Dlog4j2.formatMsgNoLookups=true" + volumes: + # use a persistent volume or emptyDir + persistence: true + data: + name: data + size: 128Mi + local_storage: true + ## If you already have an existent storage class and want to reuse it, you can specify its name with the option below + ## + # storageClassName: existent-storage-class, + ## If you want to bind static persistent volumes via selectors, e.g.: + # selector: + # matchLabels: + # app: pulsar-bookkeeper-journal + selector: {} ## Pulsar manager service ## templates/pulsar-manager-service.yaml ##