This repository has been archived by the owner on Feb 22, 2022. It is now read-only.
/
statefulset.yaml
120 lines (120 loc) · 3.78 KB
/
statefulset.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: {{ template "zookeeper.fullname" . }}
labels:
app: {{ include "zookeeper.name" . | quote }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: {{ .Release.Name | quote }}
heritage: {{ .Release.Service | quote }}
spec:
serviceName: {{ template "zookeeper.fullname" . }}-headless
replicas: {{ .Values.servers }}
updateStrategy:
{{ toYaml .Values.updateStrategy | indent 4 }}
template:
metadata:
labels:
app: {{ include "zookeeper.name" . | quote }}
release: {{ .Release.Name | quote }}
spec:
{{- if .Values.tolerations }}
tolerations:
{{ toYaml .Values.tolerations | indent 8 }}
{{- end }}
{{- if .Values.schedulerName }}
schedulerName: "{{ .Values.schedulerName }}"
{{- end }}
{{- if .Values.affinity }}
affinity:
{{ toYaml .Values.affinity | indent 8 }}
{{- end }}
{{- if .Values.nodeSelector }}
nodeSelector:
{{ toYaml .Values.nodeSelector | indent 8 }}
{{- end }}
containers:
- name: {{ template "zookeeper.name" . }}-server
imagePullPolicy: {{ .Values.imagePullPolicy }}
image: gcr.io/google_samples/k8szk:v2
resources:
{{ toYaml .Values.resources | indent 10 }}
ports:
- containerPort: {{ .Values.clientPort }}
name: client
- containerPort: {{ .Values.serverPort }}
name: server
- containerPort: {{ .Values.leaderElectionPort }}
name: leader-election
env:
- name : ZK_REPLICAS
value: "{{ .Values.servers }}"
- name : ZK_HEAP_SIZE
value: "{{ .Values.heap }}"
- name : ZK_TICK_TIME
value: "{{ .Values.tickTimeMs }}"
- name : ZK_INIT_LIMIT
value: "{{ .Values.initTicks }}"
- name : ZK_SYNC_LIMIT
value: "{{ .Values.syncTicks }}"
- name : ZK_MAX_CLIENT_CNXNS
value: "{{ .Values.clientCnxns }}"
- name: ZK_SNAP_RETAIN_COUNT
value: "{{ .Values.snapRetain }}"
- name: ZK_PURGE_INTERVAL
value: "{{ .Values.purgeHours }}"
- name: ZK_LOG_LEVEL
value: {{ .Values.logLevel }}
- name: ZK_CLIENT_PORT
value: "{{ .Values.clientPort }}"
- name: ZK_SERVER_PORT
value: "{{ .Values.serverPort }}"
- name: ZK_ELECTION_PORT
value: "{{ .Values.leaderElectionPort }}"
command:
- sh
- -c
- zkGenConfig.sh && exec zkServer.sh start-foreground
readinessProbe:
exec:
command:
- "zkOk.sh"
initialDelaySeconds: {{ .Values.probeInitialDelaySeconds }}
timeoutSeconds: {{ .Values.probeTimeoutSeconds }}
livenessProbe:
exec:
command:
- "zkOk.sh"
initialDelaySeconds: {{ .Values.probeInitialDelaySeconds }}
timeoutSeconds: {{ .Values.probeTimeoutSeconds }}
volumeMounts:
- name: datadir
mountPath: /var/lib/zookeeper
subPath: data
{{ if not .Values.persistence.enabled }}
volumes:
- name: datadir
emptyDir: {}
{{- end }}
{{- if eq .Values.security.enabled true }}
securityContext:
runAsUser: {{ .Values.security.runAsUser }}
fsGroup: {{ .Values.security.fsGroup }}
{{- end }}
{{- if .Values.persistence.enabled }}
volumeClaimTemplates:
- metadata:
name: datadir
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: {{ .Values.persistence.size }}
{{- if .Values.persistence.storageClass }}
{{- if (eq "-" .Values.persistence.storageClass) }}
storageClassName: ""
{{- else }}
storageClassName: "{{ .Values.persistence.storageClass }}"
{{- end }}
{{- end }}
{{- end }}