---
generateName: testbed-binlog-
items:
    - name: upstream
      type: TIDB_CLUSTER
      spec:
          version: "v5.2.1"
          pd:
              replicas: 1
              baseImage: registry-mirror.pingcap.net/pingcap/pd
              config: |
                  [log]
                  level = "info"
          tidb:
              replicas: 1
              baseImage: registry-mirror.pingcap.net/pingcap/tidb
              config: |
                  [log]
                  # Log level: debug, info, warn, error, fatal.
                  level = "info"
          tikv:
              replicas: 1
              baseImage: registry-mirror.pingcap.net/pingcap/tikv
              config: |
                  log-level = "info"
                  [storage]
                  reserve-space = "0MB"
          pump:
              baseImage: registry-mirror.pingcap.net/pingcap/tidb-binlog
              replicas: 1
              requests:
                  storage: 30Gi
              config: |
                  addr = "0.0.0.0:8250"
                  gc = 7
                  heartbeat-interval = 2
    - name: downstream
      type: MYSQL_NODE
      spec:
          image: docker.io/mysql:8
          port: 3306
          env:
              MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
              MYSQL_ROOT_HOST: "%"
          resources:
              requests:
                  memory: 4Gi
                  cpu: 4000m
                  storage: 500Gi
          volumeMount:
              mountPath: "/var/lib/mysql" # mountPath of "storage" request
    - name: upstream-drainer
      type: TIDB_DRAINER
      spec:
          clusterName: upstream
          clusterVersion: v5.2.1
          baseImage: registry-mirror.pingcap.net/pingcap/tidb-binlog
          storage: 10Gi
          initialCommitTs: "-1"
          resources:
              requests:
                  cpu: "2000m"
                  memory: "4Gi"
          config: |
              detect-interval = 10
              [syncer]
              worker-count = 16
              txn-batch = 20
              disable-dispatch = false
              ignore-schemas = "INFORMATION_SCHEMA,PERFORMANCE_SCHEMA,mysql"
              safe-mode = false
              db-type = "kafka"
              [syncer.to]
              kafka-addrs = "kafka-kafka:9092"
              kafka-max-messages = 1024
              topic-name = "binlog"
    - name: workload
      type: WORKLOAD_NODE
      spec:
          container:
              name: sysbench
              image: registry-mirror.pingcap.net/perconalab/sysbench
              command:
                  - tail
                  - "-f"
                  - "/dev/null"
              resources:
                  requests:
                      memory: 1Gi
                      cpu: 1000m
    - name: kafka
      type: KAFKA_CLUSTER
      spec:
          zkspec:
              replicas: 1
              storageClassName: fast-disks
              image: "k8s.gcr.io/kubernetes-zookeeper:1.0-3.4.10"
              resources: null
              requests:
                  memory: 4Gi
                  cpu: 4000m
                  storage: 10Gi
          kafkaspec:
              replicas: 2
              storageClassName: fast-disks
              imagePullPolicy: IfNotPresent
              image: "registry-mirror.pingcap.net/wurstmeister/kafka:2.13-2.7.1"
              command:
                  - sh
                  - "-c"
                  - >-
                      kafka-server-start.sh /opt/kafka/config/server.properties --override
                      broker.id=${HOSTNAME##*-} --override listeners=PLAINTEXT://:9092
                      --override zookeeper.connect=$ZK_CONNECT --override
                      log.dir=/var/lib/kafka --override message.max.bytes=1073741824 
                      --override replica.fetch.max.bytes=1073741824 --override fetch.message.max.bytes=1073741824
              env: null
              KAFKA_HEAP_OPTS: "-Xmx512M -Xms512M -XX:ParallelGCThreads=1"
              KAFKA_OPTS: "-Dlogging.level=INFO"
              resources: null
              requests:
                  memory: 4Gi
                  cpu: 4000m
                  storage: 20Gi
    - name: arbiter
      type: WORKLOAD_NODE
      spec:
          container:
              name: arbiter
              image: hub-new.pingcap.net/qa/arbiter:latest
              command:
                  - sh
                  - "-c"
                  - "/arbiter --config /arbiter.toml"
              resources:
                  requests:
                      memory: 1Gi
                      cpu: 1000m
