blob: 37b10d31c58c5d590a2ffd9129bcf0cb26113d00 [file] [log] [blame]
{{- $zoo := .Values.zookeeper -}}
{{- if $zoo.enabled }}
apiVersion: {{ template "apiVersion" . }}
kind: StatefulSet
metadata:
name: {{ template "zoo.name" . }}
namespace: {{ template "zoo.namespace" . }}
labels:
{{- include "admin.labels" . | nindent 4 }}
{{- with $zoo.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
annotations:
{{- with $zoo.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
replicas: {{ .Values.replicas }}
selector:
matchLabels:
{{- include "zoo.matchLabels" . | nindent 6 }}
serviceName: {{ template "zoo.name" . }}
template:
metadata:
labels:
{{- include "zoo.labels" . | nindent 8 }}
spec:
securityContext:
{{- if $zoo.securityContext.enabled }}
{{- omit $zoo.securityContext "enabled" | toYaml | nindent 8 }}
{{- end }}
containers:
- name: zookeeper
image: {{ $zoo.image.registry }}:{{ $zoo.image.tag }}
imagePullPolicy: {{ $zoo.image.pullPolicy }}
securityContext:
{{- if $zoo.containerSecurityContext.enabled }}
{{- omit $zoo.containerSecurityContext "enabled" | toYaml | nindent 10 }}
{{- end }}
command:
- /scripts/setup.sh
resources:
{{- if $zoo.resources }}
{{- toYaml $zoo.resources | nindent 10 }}
{{- end }}
env:
- name: BITNAMI_DEBUG
value: {{ ternary "true" "false" (or $zoo.image.debug) | quote }}
- name: ZOO_DATA_LOG_DIR
value: {{ $zoo.dataLogDir | quote }}
- name: ZOO_PORT_NUMBER
value: {{ 2181 | quote }}
- name: ZOO_TICK_TIME
value: {{ $zoo.tickTime | quote }}
- name: ZOO_INIT_LIMIT
value: {{ $zoo.initLimit | quote }}
- name: ZOO_SYNC_LIMIT
value: {{ $zoo.syncLimit | quote }}
- name: ZOO_PRE_ALLOC_SIZE
value: {{ $zoo.preAllocSize | quote }}
- name: ZOO_SNAPCOUNT
value: {{ $zoo.snapCount | quote }}
- name: ZOO_MAX_CLIENT_CNXNS
value: {{ $zoo.maxClientCnxns | quote }}
- name: ZOO_4LW_COMMANDS_WHITELIST
value: {{ $zoo.fourlwCommandsWhitelist | quote }}
- name: ZOO_LISTEN_ALLIPS_ENABLED
value: {{ ternary "yes" "no" $zoo.listenOnAllIPs | quote }}
- name: ZOO_AUTOPURGE_INTERVAL
value: {{ $zoo.autopurge.purgeInterval | quote }}
- name: ZOO_AUTOPURGE_RETAIN_COUNT
value: {{ $zoo.autopurge.snapRetainCount | quote }}
- name: ZOO_MAX_SESSION_TIMEOUT
value: {{ $zoo.maxSessionTimeout | quote }}
{{- $zooName := include "zoo.name" . }}
{{- $zooReplicas := int .Values.zookeeper.replicas }}
{{- $zooHeadless := printf "%s-%s" $zooName "headless" | trunc 63 }}
{{- $zooNamespace := include "zoo.namespace" . }}
{{- $zooDomain := $zoo.clusterDomain }}
- name: ZOO_SERVERS
value: {{ range $k, $v := until $zooReplicas }}.{{ $zooName }}-{{ $v }}.{{ $zooName }}.{{ $zooNamespace }}.svc.{{ $zooDomain }}:2888:3888::1 {{ end }}
- name: ZOO_ENABLE_AUTH
value: {{ ternary "no" "yes" $zoo.auth.client.enabled | quote }}
- name: ALLOW_ANONYMOUS_LOGIN
value: {{ ternary "no" "yes" $zoo.auth.client.enabled | quote }}
{{- if $zoo.auth.client.enabled }}
- name: ZOO_CLIENT_USER
value: {{ $zoo.auth.client.clientUser | quote }}
- name: ZOO_CLIENT_PASSWORD
valueFrom:
secretKeyRef:
name: {{ include "zoo.client.secretName" . }}
key: client-password
- name: ZOO_SERVER_USERS
value: {{ $zoo.auth.client.serverUsers | quote }}
- name: ZOO_SERVER_PASSWORDS
valueFrom:
secretKeyRef:
name: {{ include "zoo.client.secretName" . }}
key: server-password
{{- end }}
- name: ZOO_ENABLE_QUORUM_AUTH
value: {{ ternary "yes" "no" $zoo.auth.quorum.enabled | quote }}
{{- if $zoo.auth.quorum.enabled }}
- name: ZOO_QUORUM_LEARNER_USER
value: {{ $zoo.auth.quorum.learnerUser | quote }}
- name: ZOO_QUORUM_LEARNER_PASSWORD
valueFrom:
secretKeyRef:
name: {{ include "zoo.quorum.secretName" . }}
key: quorum-learner-password
- name: ZOO_QUORUM_SERVER_USERS
value: {{ $zoo.auth.quorum.serverUsers | quote }}
- name: ZOO_QUORUM_SERVER_PASSWORDS
valueFrom:
secretKeyRef:
name: {{ include "zoo.quorum.secretName" . }}
key: quorum-server-password
{{- end }}
- name: ZOO_HEAP_SIZE
value: {{ $zoo.heapSize | quote }}
- name: ZOO_LOG_LEVEL
value: {{ $zoo.logLevel | quote }}
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
ports:
- name: client
containerPort: {{ template "zoo.client" . }}
- name: follower
containerPort: {{ template "zoo.follower" . }}
- name: election
containerPort: {{ template "zoo.election" . }}
startupProbe:
{{- if $zoo.startupProbe }}
{{- toYaml $zoo.startupProbe | nindent 10 }}
{{- end }}
readinessProbe:
{{- if $zoo.readinessProbe }}
{{- toYaml $zoo.readinessProbe | nindent 10 }}
{{- end }}
livenessProbe:
{{- if $zoo.livenessProbe }}
{{- toYaml $zoo.livenessProbe | nindent 10 }}
{{- end }}
volumeMounts:
- name: scripts
mountPath: /scripts/setup.sh
subPath: setup.sh
- name: data
mountPath: /bitnami/zookeeper
volumes:
- name: scripts
configMap:
name: {{ template "zoo.name" . }}-scripts
defaultMode: 0755
- name: data
emptyDir: {}
{{- end -}}