aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chrislusf@users.noreply.github.com>2022-07-26 08:08:08 -0700
committerGitHub <noreply@github.com>2022-07-26 08:08:08 -0700
commitf18bc2d9dd9be4d62ba983fd263352495cb12063 (patch)
tree82c383cd172493cd36f48b9c7c017c7433ceaf84
parente05641291e0f6a1916f828340ec533e41005cccd (diff)
parentf6e66f4a19f0347ea4077e58788ade593d06ad69 (diff)
downloadseaweedfs-f18bc2d9dd9be4d62ba983fd263352495cb12063.tar.xz
seaweedfs-f18bc2d9dd9be4d62ba983fd263352495cb12063.zip
Merge pull request #3367 from kaiwalyajoshi/kjoshi/v3.18-hostpath-fixes
-rw-r--r--k8s/helm_charts2/templates/_helpers.tpl44
-rw-r--r--k8s/helm_charts2/templates/filer-statefulset.yaml33
-rw-r--r--k8s/helm_charts2/templates/master-statefulset.yaml43
-rw-r--r--k8s/helm_charts2/values.yaml50
4 files changed, 143 insertions, 27 deletions
diff --git a/k8s/helm_charts2/templates/_helpers.tpl b/k8s/helm_charts2/templates/_helpers.tpl
index 688efaa23..b679fe520 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,43 @@ 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 -}}
+
+{{/* check if any Master PVC exists */}}
+{{- define "master.pvc_exists" -}}
+{{- if or (eq .Values.master.data.type "persistentVolumeClaim") (eq .Values.master.logs.type "persistentVolumeClaim") -}}
+{{- printf "true" -}}
+{{- else -}}
+{{- printf "false" -}}
+{{- end -}}
+{{- end -}}
+
+{{/* check if any Master HostPath exists */}}
+{{- define "master.hostpath_exists" -}}
+{{- if or (eq .Values.master.data.type "hostPath") (eq .Values.master.logs.type "hostPath") -}}
+{{- printf "true" -}}
+{{- else -}}
+{{- if or .Values.global.enableSecurity .Values.volume.extraVolumes -}}
+{{- printf "true" -}}
+{{- else -}}
+{{- printf "false" -}}
+{{- end -}}
+{{- 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/templates/master-statefulset.yaml b/k8s/helm_charts2/templates/master-statefulset.yaml
index e5a7a537a..8af1bf91d 100644
--- a/k8s/helm_charts2/templates/master-statefulset.yaml
+++ b/k8s/helm_charts2/templates/master-statefulset.yaml
@@ -178,15 +178,21 @@ spec:
resources:
{{ tpl .Values.master.resources . | nindent 12 | trim }}
{{- end }}
+ {{- $hostpath_exists := include "master.hostpath_exists" . -}}
+ {{- if $hostpath_exists }}
volumes:
+ {{- if eq .Values.master.logs.type "hostPath" }}
- name: seaweedfs-master-log-volume
hostPath:
path: /storage/logs/seaweedfs/master
type: DirectoryOrCreate
+ {{- end }}
+ {{- if eq .Values.master.data.type "hostPath" }}
- name: data-{{ .Release.Namespace }}
hostPath:
path: /ssd/seaweed-master/
type: DirectoryOrCreate
+ {{- end }}
{{- if .Values.global.enableSecurity }}
- name: security-config
configMap:
@@ -208,20 +214,33 @@ spec:
secretName: {{ template "seaweedfs.name" . }}-client-cert
{{- end }}
{{ tpl .Values.master.extraVolumes . | indent 8 | trim }}
+ {{- end }}
{{- if .Values.master.nodeSelector }}
nodeSelector:
{{ tpl .Values.master.nodeSelector . | indent 8 | trim }}
{{- end }}
-{{/* volumeClaimTemplates:*/}}
-{{/* - metadata:*/}}
-{{/* name: data-{{ .Release.Namespace }}*/}}
-{{/* spec:*/}}
-{{/* accessModes:*/}}
-{{/* - ReadWriteOnce*/}}
-{{/* resources:*/}}
-{{/* requests:*/}}
-{{/* storage: {{ .Values.master.storage }}*/}}
-{{/* {{- if .Values.master.storageClass }}*/}}
-{{/* storageClassName: {{ .Values.master.storageClass }}*/}}
-{{/* {{- end }}*/}}
+ {{- $pvc_exists := include "volume.pvc_exists" . -}}
+ {{- if $pvc_exists }}
+ volumeClaimTemplates:
+ {{- if eq .Values.master.data.type "persistentVolumeClaim"}}
+ - metadata:
+ name: data-{{ .Release.Namespace }}
+ spec:
+ accessModes: [ "ReadWriteOnce" ]
+ storageClassName: {{ .Values.master.data.storageClass }}
+ resources:
+ requests:
+ storage: {{ .Values.master.data.size }}
+ {{- end }}
+ {{- if eq .Values.master.logs.type "persistentVolumeClaim"}}
+ - metadata:
+ name: seaweedfs-master-log-volume
+ spec:
+ accessModes: [ "ReadWriteOnce" ]
+ storageClassName: {{ .Values.master.logs.storageClass }}
+ resources:
+ requests:
+ storage: {{ .Values.master.logs.size }}
+ {{- end }}
+ {{- end }}
{{- end }}
diff --git a/k8s/helm_charts2/values.yaml b/k8s/helm_charts2/values.yaml
index b5d059ee9..948b336b9 100644
--- a/k8s/helm_charts2/values.yaml
+++ b/k8s/helm_charts2/values.yaml
@@ -58,16 +58,24 @@ master:
# Disable http request, only gRpc operations are allowed
disableHttp: false
+ # 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: ""
- # 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: 25Gi
- storageClass: null
-
# Resource requests, limits, etc. for the master cluster placement. This
# should map directly to the value of the resources field for a PodSpec,
# formatted as a multi-line string. By default no direct resource request
@@ -156,7 +164,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 +283,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: ""