-
Notifications
You must be signed in to change notification settings - Fork 0
/
statefulset2.yaml
63 lines (63 loc) · 2.18 KB
/
statefulset2.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
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{ include "proglog.fullname" . }}
namespace: {{ .Release.Namespace }}
labels: {{ include "proglog.labels" . | nindent 4 }}
spec:
selector:
matchLabels: {{ include "proglog.selectorLabels" . | nindent 6 }}
serviceName: {{ include "proglog.fullname" . }}
replicas: {{ .Values.replicas }}
template:
metadata:
name: {{ include "proglog.fullname" . }}
labels: {{ include "proglog.labels" . | nindent 8}}
spec:
initContainers:
- name: {{ include "proglog.fullname" . }}-config-init
image: busybox
imagePullPolicy: ifNotPresent
command:
- /bin/sh
- -c
- |-
ID=$(echo $HOSTNAME | rev | cut -d- -f1 | rev)
cat > /var/run/proglog/config.yaml << EOD
data-dir: /var/run/proglog/data
rpc-port: {{ .Values.rpcPort }}
bind-addr: "$HOSTNAME.proglog.{{.Release.Namespace}}.\svc.cluster.local:{{.Values.serfPort}}"
bootstrap: $([ $ID = 0 ] && echo true || echo false)$([ $ID != 0 ] && echo 'start-join-addrs: "proglog-0.proglog.{{.Release.Namespace}}.svc.cluster.local:{{.Values.serfPort}}"')
EOD
volumeMounts:
- name: datadir
mountPath: /var/run/proglog
containers:
- name: {{ include "proglog.fullname" . }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
ports:
- containerPort: {{ .Values.rpcPort }}
name: rpc
- containerPort: {{ .Values.serfPort }}
name: serf
args:
- --config-file=/var/run/proglog/config.yaml
readinessProbe:
exec:
command: ["bin/grpc_health_probe", "-addr=:{{ .Values.rpcPort }}"]
initialDelaySeconds: 10
livenessProbe:
exec:
command: ["bin/grpc_health_probe", "-addr=:{{ .Values.rpcPort }}"]
initialDelaySeconds: 10
volumeMounts:
- name: datadir
mountPath: /var/run/proglog
volumeClaimTemplates:
- metadata:
name: datadir
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: {{ .Values.storage }}