apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: zk
spec:
  selector:
    matchLabels:
      app: zk
  updateStrategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: zk
    spec:
      nodeSelector:
        zk: ""
      tolerations:
      - effect: NoSchedule
        key: dedicated
        operator: Equal
        value: proxmox
      hostNetwork: true
      containers:
      - name: kubernetes-zookeeper
        imagePullPolicy: Always
        image: "kvaps/zookeeper"
        resources:
          requests:
            memory: "4Gi"
            cpu: "2"
        command:
        - sh
        - -c
        - "start-zookeeper \
          --servers=3 \
          --server_1=node1 \
          --server_2=node2 \
          --server_3=node3 \
          --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=3G \
          --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: datadir
          mountPath: /var/lib/zookeeper
      #securityContext:
      #  runAsUser: 1000
      #  fsGroup: 1000

      volumes:
      - name: datadir
        #emptyDir: {}
        hostPath:
          path: "/data/local/data/zookeeper"
