blob: dfe3646d07f030a6a360ab25a889881fff389b1c [file] [log] [blame]
{{- if .Values.enabled }}
apiVersion: v1
kind: Service
metadata:
name: {{ .Release.Name }}-zookeeper-hs
labels:
app: {{ .Release.Name }}-zookeeper
spec:
ports:
- port: 2888
name: server
- port: 3888
name: leader-election
clusterIP: None
selector:
app: {{ .Release.Name }}-zookeeper
---
apiVersion: v1
kind: Service
metadata:
name: {{ .Release.Name }}-zookeeper-cs
labels:
app: {{ .Release.Name }}-zookeeper
spec:
ports:
- port: 2181
name: client
selector:
app: {{ .Release.Name }}-zookeeper
---
apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
name: {{ .Release.Name }}-zookeeper-pdb
spec:
selector:
matchLabels:
app: {{ .Release.Name }}-zookeeper
maxUnavailable: 1
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: {{ .Release.Name }}-zookeeper
labels:
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ .Release.Name }}
spec:
selector:
matchLabels:
app: {{ .Release.Name }}-zookeeper
serviceName: {{ .Release.Name }}-zookeeper-hs
replicas: {{.Values.replicas}}
updateStrategy:
type: RollingUpdate
podManagementPolicy: Parallel
template:
metadata:
labels:
app: {{ .Release.Name }}-zookeeper
spec:
{{- if .Values.affinity }}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: "app"
operator: In
values:
- {{ .Release.Name }}-zookeeper
topologyKey: "kubernetes.io/hostname"
{{end}}
containers:
- name: kubernetes-zookeeper
image: "k8s.gcr.io/kubernetes-zookeeper:1.0-3.4.10"
resources:
requests:
memory: "1Gi"
cpu: "0.5"
ports:
- containerPort: 2181
name: client
- containerPort: 2888
name: server
- containerPort: 3888
name: leader-election
command:
- sh
- -c
- "start-zookeeper \
--servers={{.Values.replicas}} \
--data_dir=/var/lib/zookeeper/data \
--data_log_dir=/var/lib/zookeeper/data/log \
--conf_dir=/opt/zookeeper/conf \
--client_port=2181 \
--election_port=3888 \
--server_port=2888 \
--tick_time=2000 \
--init_limit=10 \
--sync_limit=5 \
--heap=512M \
--max_client_cnxns=60 \
--snap_retain_count=3 \
--purge_interval=12 \
--max_session_timeout=40000 \
--min_session_timeout=4000 \
--log_level=INFO"
readinessProbe:
exec:
command:
- sh
- -c
- "zookeeper-ready 2181"
initialDelaySeconds: 10
timeoutSeconds: 5
livenessProbe:
exec:
command:
- sh
- -c
- "zookeeper-ready 2181"
initialDelaySeconds: 10
timeoutSeconds: 5
volumeMounts:
- name: zookeeper-datadir
mountPath: /var/lib/zookeeper
{{- if .Values.persistence.enabled }}
volumeClaimTemplates:
- metadata:
name: zookeeper-datadir
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: {{ .Values.persistence.size }}
{{- else }}
volumes:
- name: zookeeper-datadir
emptyDir: {}
{{- end }}
{{end}}