@@ -32,17 +32,47 @@ data:
3232 done
3333 echo $_CLUSTER_ID | grep -q -v null
3434 ---
35+ {{- if .Values.persistence.enabled }}
36+ # Required to generate StatefulSet pod names.
37+ apiVersion : v1
38+ kind : Service
39+ metadata :
40+ name : {{ template "hdfs-k8s.datanode.fullname" . }}
41+ labels :
42+ app : {{ template "hdfs-k8s.datanode.name" . }}
43+ chart : {{ template "hdfs-k8s.subchart" . }}
44+ release : {{ .Release.Name }}
45+ annotations :
46+ # TODO: Deprecated. Replace tolerate-unready-endpoints with
47+ # v1.Service.PublishNotReadyAddresses.
48+ service.alpha.kubernetes.io/tolerate-unready-endpoints : " true"
49+ spec :
50+ clusterIP : None
51+ selector :
52+ app : {{ template "hdfs-k8s.datanode.name" . }}
53+ release : {{ .Release.Name }}
54+ {{- end }}
55+ ---
56+ {{- if .Values.persistence.enabled }}
57+ apiVersion : apps/v1beta1
58+ kind : StatefulSet
59+ {{- else }}
3560# Deleting a daemonset may need some trick. See
3661# https://github.com/kubernetes/kubernetes/issues/33245#issuecomment-261250489
3762apiVersion : extensions/v1beta1
3863kind : DaemonSet
64+ {{- end }}
3965metadata :
4066 name : {{ template "hdfs-k8s.datanode.fullname" . }}
4167 labels :
4268 app : {{ template "hdfs-k8s.datanode.name" . }}
4369 chart : {{ template "hdfs-k8s.subchart" . }}
4470 release : {{ .Release.Name }}
4571spec :
72+ {{- if .Values.persistence.enabled }}
73+ serviceName : {{ template "hdfs-k8s.datanode.fullname" . }}
74+ replicas : {{ .Values.persistence.replicas }}
75+ {{- end }}
4676 template :
4777 metadata :
4878 labels :
@@ -115,10 +145,15 @@ spec:
115145 - name : hdfs-config
116146 mountPath : /etc/hadoop-custom-conf
117147 readOnly : true
148+ {{- if .Values.persistence.enabled }}
149+ - name : hdfs-data-0
150+ mountPath : /hadoop/dfs/data/0
151+ {{- else }}
118152 {{- range $index, $path := .Values.global.dataNodeHostPath }}
119153 - name : hdfs-data-{{ $index }}
120154 mountPath : /hadoop/dfs/data/{{ $index }}
121155 {{- end }}
156+ {{- end }}
122157 {{- if .Values.global.kerberosEnabled }}
123158 - name : kerberos-config
124159 mountPath : /etc/krb5.conf
@@ -167,11 +202,13 @@ spec:
167202 configMap :
168203 name : {{ template "hdfs-k8s.datanode.fullname" . }}-scripts
169204 defaultMode : 0744
205+ {{- if not .Values.persistence.enabled }}
170206 {{- range $index, $path := .Values.global.dataNodeHostPath }}
171207 - name : hdfs-data-{{ $index }}
172208 hostPath :
173209 path : {{ $path }}
174210 {{- end }}
211+ {{- end }}
175212 - name : hdfs-config
176213 configMap :
177214 name : {{ template "hdfs-k8s.config.fullname" . }}
@@ -189,3 +226,25 @@ spec:
189226 emptyDir : {}
190227 {{- end }}
191228 {{- end }}
229+ {{- if .Values.persistence.enabled }}
230+ volumeClaimTemplates :
231+ - metadata :
232+ name : hdfs-data-0
233+ spec :
234+ accessModes :
235+ - {{ .Values.persistence.accessMode | quote }}
236+ resources :
237+ requests :
238+ storage : {{ .Values.persistence.size | quote }}
239+ {{- if .Values.persistence.storageClass }}
240+ {{- if (eq "-" .Values.persistence.storageClass) }}
241+ storageClassName : " "
242+ {{- else }}
243+ storageClassName : " {{ .Values.persistence.storageClass }}"
244+ {{- end }}
245+ {{- end }}
246+ {{- if .Values.persistence.selector }}
247+ selector :
248+ {{ toYaml .Values.persistence.selector | indent 10 }}
249+ {{- end }}
250+ {{- end }}
0 commit comments