| {{- $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 -}} |