apiVersion: api/v1
kind: Plan
name: endless-oltp-5replicas-tpcc-rel
#type: ONE_SHOT
schedule: "0 0 * * 2,4,6"
tags: []
variables:
  - name: CaseCmdParms
    default: |
      workloadType:
        type : [ 'tpcc' ]
      tpccParms:
        storage : s3://benchmark/tpcc10000
        db : tpcc10000
        warehouse : 10000
        threads : 32
        ignoreErrors : '{{meta.parameters.oltp_rel_ignoreErrors}}'
      sysbenchParms:
        storage : s3://benchmark/sysbench_64_7000w
        db : sysbench_64_7000w
        tableNum : 64
        tableSize : 70000000
        threads : 64
        ignoreErrors : '{{meta.parameters.oltp_rel_ignoreErrors}}'
testbed:
  generateName: endless-oltp-
  reclaimPolicy:
    gcStrategy:
      onFailure:
        artifact:
          monitor: true
          log: true
        reserveEnv:
          durationOnWorkingHour: "{{meta.parameters.onFailureNoReserve}}"
        notification:
          feishu: https://open.feishu.cn/open-apis/bot/v2/hook/259e813d-7676-4876-8de2-962df96f4d8e
      onSuccess:
        notification:
          feishu: https://open.feishu.cn/open-apis/bot/v2/hook/259e813d-7676-4876-8de2-962df96f4d8e
  items:
    - name: tc
      type: TIDB_CLUSTER
      spec:
        pd:
          replicas: 1
          maxReplicas: 1
          storageClassName: "fast-disks"
          requests:
            cpu: 4000m
            memory: 8Gi
          limits:
            cpu: 4000m
            memory: 8Gi
          config: |
            [replication]
            max-replicas = 5
          baseImage: "{{meta.parameters.pd_base_image}}"
          version: "{{meta.parameters.pd_component_version}}"
        tikv:
          replicas: 6
          maxReplicas: 6
          storageClassName: "fast-disks"
          requests:
            cpu: 8000m
            memory: 16Gi
            storage: 1500Gi
          limits:
            cpu: 8000m
            memory: 16Gi
            storage: 1500Gi
          baseImage: "{{meta.parameters.tikv_base_image}}"
          version: "{{meta.parameters.tikv_component_version}}"
        tidb:
          replicas: 2
          maxReplicas: 2
          requests:
            cpu: 8000m
            memory: 16Gi
          limits:
            cpu: 8000m
            memory: 16Gi
          baseImage: "{{meta.parameters.tidb_base_image}}"
          version: "{{meta.parameters.tidb_component_version}}"
        version: "{{meta.parameters.base_image_version}}"
    - name: br
      type: BR_NODE
      spec:
        image: "{{meta.parameters.br_image}}"
        artifact:
          artifactPaths:
            - /tmp/br.log*
    - name: benchtoolset
      type: WORKLOAD_NODE
      spec:
        container:
          name: benchtoolset
          image: "{{meta.parameters.bench_toolset_image}}"
          command:
            - tail
            - "-f"
            - "/dev/null"
          resources:
            requests:
              cpu: 8000m
              memory: 16Gi
steps:
  - name: oltp-tikv-rel-two-tikv-random-failure
    caseName: oltp_tikv_rel_two_tikv_random_failure
    arguments:
      - name: tc
        value: "{{testbed.tc}}"
      - name: benchtoolset
        value: "{{testbed.benchtoolset}}"
      - name: br
        value: "{{testbed.br}}"
      - name: casecmdparms
        value: "{{variables.CaseCmdParms}}"
  - name: oltp-tikv-rel-two-tikv-network-loss
    caseName: oltp_tikv_rel_two_tikv_network_loss
    arguments:
      - name: tc
        value: "{{testbed.tc}}"
      - name: benchtoolset
        value: "{{testbed.benchtoolset}}"
      - name: br
        value: "{{testbed.br}}"
      - name: casecmdparms
        value: "{{variables.CaseCmdParms}}"
  - name: oltp-tikv-rel-two-tikv-network-delay
    caseName: oltp_tikv_rel_two_tikv_network_delay
    arguments:
      - name: tc
        value: "{{testbed.tc}}"
      - name: benchtoolset
        value: "{{testbed.benchtoolset}}"
      - name: br
        value: "{{testbed.br}}"
      - name: casecmdparms
        value: "{{variables.CaseCmdParms}}"
failFast: false
