apiVersion: apps/v1
kind: StatefulSet
metadata:
  # name: kafka
  labels:
    app.kubernetes.io/managed-by: test-infra
spec:
  # serviceName: kafka-svc
  replicas: 1
  podManagementPolicy: Parallel
  updateStrategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: kafka
      annotations:
        app.kubernetes.io/managed-by: test-infra
    spec:
      terminationGracePeriodSeconds: 300
      containers:
        - name: kafka
          imagePullPolicy: IfNotPresent
          image: registry-mirror.pingcap.net/bitnami/kafka:3.1
          resources:
            requests:
              memory: "1Gi"
              cpu: "0.5"
            limits:
              memory: "10Gi"
              cpu: "2"
          ports:
            - containerPort: 9092
              name: server
          command:
            - sh
            - -c
            - "exec kafka-server-start.sh /opt/bitnami/kafka/config/server.properties --override broker.id=${HOSTNAME##*-} \
          --override listeners=PLAINTEXT://:9092 \
          --override zookeeper.connect=$ZK_CONNECT \
          --override log.dir=/var/lib/kafka "
          env:
            - name: KAFKA_HEAP_OPTS
              # -XX:ParallelGCThreads=1 is need here, details see: https://github.com/wurstmeister/kafka-docker/issues/625
              value : "-Xmx512M -Xms512M -XX:ParallelGCThreads=1"
            - name: KAFKA_OPTS
              value: "-Dlogging.level=INFO"
          volumeMounts:
          - name: data-kafka
            mountPath: /var/lib/kafka
          readinessProbe:
            tcpSocket:
              port: 9092
            timeoutSeconds: 1
            initialDelaySeconds: 5
  volumeClaimTemplates:
  - metadata:
      name: data-kafka
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage:  300Mi
