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