From 53e3536975694cc13ae3636afbbfb280cbad712a Mon Sep 17 00:00:00 2001 From: Kaiwalya Joshi Date: Tue, 26 Jul 2022 02:39:30 -0700 Subject: [PATCH] feat: Add PVC Storage option to Filer Logs. --- k8s/helm_charts2/templates/_helpers.tpl | 22 +++++++++++-- .../templates/filer-statefulset.yaml | 33 +++++++++++++++++++ k8s/helm_charts2/values.yaml | 28 ++++++++++++---- 3 files changed, 75 insertions(+), 8 deletions(-) diff --git a/k8s/helm_charts2/templates/_helpers.tpl b/k8s/helm_charts2/templates/_helpers.tpl index 688efaa23..57b6b7a75 100644 --- a/k8s/helm_charts2/templates/_helpers.tpl +++ b/k8s/helm_charts2/templates/_helpers.tpl @@ -113,7 +113,7 @@ Inject extra environment vars in the format key:value, if populated {{- end -}} {{- end -}} -{{/* check if any PVC exists */}} +{{/* check if any Volume PVC exists */}} {{- define "volume.pvc_exists" -}} {{- if or (or (eq .Values.volume.data.type "persistentVolumeClaim") (and (eq .Values.volume.idx.type "persistentVolumeClaim") .Values.volume.dir_idx )) (eq .Values.volume.logs.type "persistentVolumeClaim") -}} {{- printf "true" -}} @@ -122,7 +122,7 @@ Inject extra environment vars in the format key:value, if populated {{- end -}} {{- end -}} -{{/* check if any HostPath exists */}} +{{/* check if any Volume HostPath exists */}} {{- define "volume.hostpath_exists" -}} {{- if or (or (eq .Values.volume.data.type "hostPath") (and (eq .Values.volume.idx.type "hostPath") .Values.volume.dir_idx )) (eq .Values.volume.logs.type "hostPath") -}} {{- printf "true" -}} @@ -134,3 +134,21 @@ Inject extra environment vars in the format key:value, if populated {{- end -}} {{- end -}} {{- end -}} + +{{/* check if any Filer PVC exists */}} +{{- define "filer.pvc_exists" -}} +{{- if or (eq .Values.filer.data.type "persistentVolumeClaim") (eq .Values.filer.logs.type "persistentVolumeClaim") -}} +{{- printf "true" -}} +{{- else -}} +{{- printf "false" -}} +{{- end -}} +{{- end -}} + +{{/* check if any Filer HostPath exists */}} +{{- define "filer.hostpath_exists" -}} +{{- if or (eq .Values.filer.data.type "hostPath") (eq .Values.filer.logs.type "hostPath") -}} +{{- printf "true" -}} +{{- else -}} +{{- printf "false" -}} +{{- end -}} +{{- end -}} \ No newline at end of file diff --git a/k8s/helm_charts2/templates/filer-statefulset.yaml b/k8s/helm_charts2/templates/filer-statefulset.yaml index 21a4256be..266c95a98 100644 --- a/k8s/helm_charts2/templates/filer-statefulset.yaml +++ b/k8s/helm_charts2/templates/filer-statefulset.yaml @@ -216,10 +216,18 @@ spec: {{ tpl .Values.filer.resources . | nindent 12 | trim }} {{- end }} volumes: + {{- if eq .Values.filer.logs.type "hostPath" }} - name: seaweedfs-filer-log-volume hostPath: path: /storage/logs/seaweedfs/filer type: DirectoryOrCreate + {{- end }} + {{- if eq .Values.filer.data.type "hostPath" }} + - name: data-filer + hostPath: + path: /storage/filer_store + type: DirectoryOrCreate + {{- end }} - name: db-schema-config-volume configMap: name: seaweedfs-db-init-config @@ -253,6 +261,7 @@ spec: {{ tpl .Values.filer.nodeSelector . | indent 8 | trim }} {{- end }} {{- if .Values.filer.enablePVC }} + # DEPRECATION: Deprecate in favor of filer.data section below volumeClaimTemplates: - metadata: name: data-filer @@ -266,4 +275,28 @@ spec: storageClassName: {{ .Values.filer.storageClass }} {{- end }} {{- end }} + {{- $pvc_exists := include "filer.pvc_exists" . -}} + {{- if $pvc_exists }} + volumeClaimTemplates: + {{- if eq .Values.filer.data.type "persistentVolumeClaim"}} + - metadata: + name: data-filer + spec: + accessModes: [ "ReadWriteOnce" ] + storageClassName: {{ .Values.filer.data.storageClass }} + resources: + requests: + storage: {{ .Values.filer.data.size }} + {{- end }} + {{- if eq .Values.filer.logs.type "persistentVolumeClaim"}} + - metadata: + name: seaweedfs-filer-log-volume + spec: + accessModes: [ "ReadWriteOnce" ] + storageClassName: {{ .Values.filer.logs.storageClass }} + resources: + requests: + storage: {{ .Values.filer.logs.size }} + {{- end }} + {{- end }} {{- end }} diff --git a/k8s/helm_charts2/values.yaml b/k8s/helm_charts2/values.yaml index b5d059ee9..cd55cd8b6 100644 --- a/k8s/helm_charts2/values.yaml +++ b/k8s/helm_charts2/values.yaml @@ -156,7 +156,7 @@ volume: # minimum free disk space(in percents). If free disk space lower this value - all volumes marks as ReadOnly minFreeSpacePercent: 7 -# can use ANY storage-class , example with local-path-provisner +# can use ANY storage-class , example with local-path-provisioner # data: # type: "persistentVolumeClaim" # size: "24Ti" @@ -275,16 +275,32 @@ filer: # Disable http request, only gRpc operations are allowed disableHttp: false + # DEPRECATE: enablePVC, storage, storageClass + # Consider replacing with filer.data section below instead. + + # Settings for configuring stateful storage of filer pods. # enablePVC will create a pvc for filer for data persistence. enablePVC: false - - # storage and storageClass are the settings for configuring stateful - # storage for the master pods. storage should be set to the disk size of - # the attached volume. storageClass is the class of storage which defaults - # to null (the Kube cluster will pick the default). + # storage should be set to the disk size of the attached volume. storage: 25Gi + # storageClass is the class of storage which defaults to null (the Kube cluster will pick the default). storageClass: null + # can use ANY storage-class , example with local-path-provisioner + # data: + # type: "persistentVolumeClaim" + # size: "24Ti" + # storageClass: "local-path-provisioner" + data: + type: "hostPath" + size: "" + storageClass: "" + + logs: + type: "hostPath" + size: "" + storageClass: "" + extraVolumes: "" extraVolumeMounts: ""