@@ -32,17 +32,47 @@ data:
32
32
done
33
33
echo $_CLUSTER_ID | grep -q -v null
34
34
---
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 }}
35
60
# Deleting a daemonset may need some trick. See
36
61
# https://github.com/kubernetes/kubernetes/issues/33245#issuecomment-261250489
37
62
apiVersion : extensions/v1beta1
38
63
kind : DaemonSet
64
+ {{- end }}
39
65
metadata :
40
66
name : {{ template "hdfs-k8s.datanode.fullname" . }}
41
67
labels :
42
68
app : {{ template "hdfs-k8s.datanode.name" . }}
43
69
chart : {{ template "hdfs-k8s.subchart" . }}
44
70
release : {{ .Release.Name }}
45
71
spec :
72
+ {{- if .Values.persistence.enabled }}
73
+ serviceName : {{ template "hdfs-k8s.datanode.fullname" . }}
74
+ replicas : {{ .Values.replicas }}
75
+ {{- end }}
46
76
template :
47
77
metadata :
48
78
labels :
@@ -115,10 +145,15 @@ spec:
115
145
- name : hdfs-config
116
146
mountPath : /etc/hadoop-custom-conf
117
147
readOnly : true
148
+ {{- if .Values.persistence.enabled }}
149
+ - name : hdfs-data-0
150
+ mountPath : /hadoop/dfs/data/0
151
+ {{- else }}
118
152
{{- range $index, $path := .Values.global.dataNodeHostPath }}
119
153
- name : hdfs-data-{{ $index }}
120
154
mountPath : /hadoop/dfs/data/{{ $index }}
121
155
{{- end }}
156
+ {{- end }}
122
157
{{- if .Values.global.kerberosEnabled }}
123
158
- name : kerberos-config
124
159
mountPath : /etc/krb5.conf
@@ -167,11 +202,13 @@ spec:
167
202
configMap :
168
203
name : {{ template "hdfs-k8s.datanode.fullname" . }}-scripts
169
204
defaultMode : 0744
205
+ {{- if not .Values.persistence.enabled }}
170
206
{{- range $index, $path := .Values.global.dataNodeHostPath }}
171
207
- name : hdfs-data-{{ $index }}
172
208
hostPath :
173
209
path : {{ $path }}
174
210
{{- end }}
211
+ {{- end }}
175
212
- name : hdfs-config
176
213
configMap :
177
214
name : {{ template "hdfs-k8s.config.fullname" . }}
@@ -189,3 +226,25 @@ spec:
189
226
emptyDir : {}
190
227
{{- end }}
191
228
{{- 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