| {{- if .Values.zookeeper.enabled }} |
| apiVersion: {{ include "zookeeper.statefulset.apiVersion" . }} |
| kind: StatefulSet |
| metadata: |
| name: {{ template "zookeeper.fullname" . }} |
| namespace: {{ template "zookeeper.namespace" . }} |
| spec: |
| replicas: {{ .Values.replicas }} |
| selector: |
| matchLabels: {{- include "zookeeper.matchLabels" . | nindent 6 }} |
| serviceName: {{ printf "%s-%s" (include "zookeeper.fullname" .) (default "headless" .Values.service.headless.servicenameOverride) | trunc 63 | trimSuffix "-" }} |
| template: |
| metadata: |
| labels: |
| app.kubernetes.io/name: zookeeper |
| spec: |
| containers: |
| - name: zookeeper |
| image: {{ .Values.zookeeper.image.repository }}:{{ .Values.zookeeper.image.tag }} |
| imagePullPolicy: {{ .Values.zookeeper.image.pullPolicy | quote }} |
| {{- if .Values.containerSecurityContext.enabled }} |
| securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }} |
| {{- end }} |
| {{- if .Values.resources }} |
| resources: {{- toYaml .Values.extraresources | nindent 12 }} |
| {{- end }} |
| env: |
| - name: BITNAMI_DEBUG |
| value: {{ ternary "true" "false" (or .Values.image.debug .Values.diagnosticMode.enabled) | quote }} |
| - name: ZOO_DATA_LOG_DIR |
| value: {{ .Values.dataLogDir | quote }} |
| - name: ZOO_PORT_NUMBER |
| value: {{ .Values.containerPorts.client | quote }} |
| - name: ZOO_TICK_TIME |
| value: {{ .Values.tickTime | quote }} |
| - name: ZOO_INIT_LIMIT |
| value: {{ .Values.initLimit | quote }} |
| - name: ZOO_SYNC_LIMIT |
| value: {{ .Values.syncLimit | quote }} |
| - name: ZOO_PRE_ALLOC_SIZE |
| value: {{ .Values.preAllocSize | quote }} |
| - name: ZOO_SNAPCOUNT |
| value: {{ .Values.snapCount | quote }} |
| - name: ZOO_MAX_CLIENT_CNXNS |
| value: {{ .Values.maxClientCnxns | quote }} |
| - name: ZOO_4LW_COMMANDS_WHITELIST |
| value: {{ .Values.fourlwCommandsWhitelist | quote }} |
| - name: ZOO_LISTEN_ALLIPS_ENABLED |
| value: {{ ternary "yes" "no" .Values.listenOnAllIPs | quote }} |
| - name: ZOO_AUTOPURGE_INTERVAL |
| value: {{ .Values.autopurge.purgeInterval | quote }} |
| - name: ZOO_AUTOPURGE_RETAIN_COUNT |
| value: {{ .Values.autopurge.snapRetainCount | quote }} |
| - name: ZOO_MAX_SESSION_TIMEOUT |
| value: {{ .Values.maxSessionTimeout | quote }} |
| - name: ZOO_ENABLE_AUTH |
| value: {{ ternary "yes" "no" .Values.auth.client.enabled | quote }} |
| - name: ZOO_SERVERS |
| {{- $replicaCount := int .Values.replicas }} |
| {{- $minServerId := int .Values.minServerId }} |
| {{- $followerPort := int .Values.containerPorts.follower }} |
| {{- $electionPort := int .Values.containerPorts.election }} |
| {{- $releaseNamespace := include "zookeeper.namespace" . }} |
| {{- $zookeeperFullname := include "zookeeper.fullname" . }} |
| {{- $zookeeperHeadlessServiceName := printf "%s-%s" $zookeeperFullname "headless" | trunc 63 }} |
| {{- $clusterDomain := .Values.clusterDomain }} |
| value: {{ range $i, $e := until $replicaCount }}{{ $zookeeperFullname }}-{{ $e }}.{{ $zookeeperHeadlessServiceName }}.{{ $releaseNamespace }}.svc.{{ $clusterDomain }}:{{ $followerPort }}:{{ $electionPort }}::{{ add $e $minServerId }} {{ end }} |
| - name: ZOO_HEAP_SIZE |
| value: {{ .Values.heapSize | quote }} |
| - name: ZOO_LOG_LEVEL |
| value: {{ .Values.logLevel | quote }} |
| - name: ALLOW_ANONYMOUS_LOGIN |
| value: {{ ternary "no" "yes" .Values.auth.client.enabled | quote }} |
| ports: |
| {{- if not .Values.service.disableBaseClientPort }} |
| - name: client |
| containerPort: {{ .Values.containerPorts.client }} |
| {{- end }} |
| - name: follower |
| containerPort: {{ .Values.containerPorts.follower }} |
| - name: election |
| containerPort: {{ .Values.containerPorts.election }} |
| volumeMounts: |
| - name: scripts |
| mountPath: /scripts/setup.sh |
| subPath: setup.sh |
| - name: data |
| mountPath: /bitnami/zookeeper |
| {{- if .Values.dataLogDir }} |
| - name: data-log |
| mountPath: {{ .Values.dataLogDir }} |
| {{- end }} |
| {{- if or .Values.configuration .Values.existingConfigmap }} |
| - name: config |
| mountPath: /opt/bitnami/zookeeper/conf/zoo.cfg |
| subPath: zoo.cfg |
| {{- end }} |
| volumes: |
| - name: scripts |
| configMap: |
| name: {{ printf "%s-scripts" (include "zookeeper.fullname" .) }} |
| defaultMode: 0755 |
| {{- if or .Values.configuration .Values.existingConfigmap }} |
| - name: config |
| configMap: |
| name: {{ include "zookeeper.configmapName" . }} |
| {{- end }} |
| {{- if and .Values.persistence.enabled .Values.persistence.existingClaim }} |
| - name: data |
| persistentVolumeClaim: |
| claimName: {{ printf "%s" (tpl .Values.persistence.existingClaim .) }} |
| {{- else if not .Values.persistence.enabled }} |
| - name: data |
| emptyDir: {} |
| {{- end }} |
| {{- if and .Values.persistence.enabled .Values.persistence.dataLogDir.existingClaim }} |
| - name: data-log |
| persistentVolumeClaim: |
| claimName: {{ printf "%s" (tpl .Values.persistence.dataLogDir.existingClaim .) }} |
| {{- else if and ( not .Values.persistence.enabled ) .Values.dataLogDir }} |
| - name: data-log |
| emptyDir: {} |
| {{- end }} |
| {{- if .Values.extraVolumes }} |
| {{- include "zookeeper.tplvalues" (dict "value" .Values.extraVolumes "context" $) | nindent 8 }} |
| {{- end }} |
| {{- if and .Values.persistence.enabled (not (and .Values.persistence.existingClaim .Values.persistence.dataLogDir.existingClaim) ) }} |
| volumeClaimTemplates: |
| {{- if not .Values.persistence.existingClaim }} |
| - metadata: |
| name: data |
| {{- if .Values.persistence.annotations }} |
| annotations: {{- include "zookeeper.tplvalues" (dict "value" .Values.persistence.annotations "context" $) | nindent 10 }} |
| {{- end }} |
| {{- if .Values.persistence.labels }} |
| labels: {{- include "zookeeper.tplvalues" (dict "value" .Values.persistence.labels "context" $) | nindent 10 }} |
| {{- end }} |
| spec: |
| accessModes: |
| {{- range .Values.persistence.accessModes }} |
| - {{ . | quote }} |
| {{- end }} |
| resources: |
| requests: |
| storage: {{ .Values.persistence.size | quote }} |
| {{- include "zookeeper.storage.class" (dict "persistence" .Values.persistence "global" .Values.global) | nindent 8 }} |
| {{- if .Values.persistence.selector }} |
| selector: {{- include "zookeeper.tplvalues" (dict "value" .Values.persistence.selector "context" $) | nindent 10 }} |
| {{- end }} |
| {{- end }} |
| {{- if and (not .Values.persistence.dataLogDir.existingClaim) .Values.dataLogDir }} |
| - metadata: |
| name: data-log |
| spec: |
| accessModes: |
| {{- range .Values.persistence.accessModes }} |
| - {{ . | quote }} |
| {{- end }} |
| resources: |
| requests: |
| storage: {{ .Values.persistence.dataLogDir.size | quote }} |
| {{- include "zookeeper.storage.class" (dict "persistence" .Values.persistence "global" .Values.global) | nindent 8 }} |
| {{- if .Values.persistence.dataLogDir.selector }} |
| selector: {{- include "zookeeper.tplvalues" (dict "value" .Values.persistence.dataLogDir.selector "context" $) | nindent 10 }} |
| {{- end }} |
| {{- end }} |
| {{- end }} |
| {{- end }} |