apiVersion: api/v1
kind: Plan
name: endless-oltp-paging
#type: ONE_SHOT
schedule: "@daily"
tags: ['team:transaction', 'owner:you06', 'branch:master']
testbed:
  generateName: endless-oltp-paging-
  reclaimPolicy:
    lease: 24h
    gcStrategy:
      onFailure:
        artifact:
          monitor: true
          log: true
        reserveEnv:
          durationOnWorkingHour: '{{meta.parameters.onFailureReserveDurationOnWorkingHour}}'
        notification:
          feishu: https://open.feishu.cn/open-apis/bot/v2/hook/a643b077-ff4a-464c-a9cf-d764f5298536
      onSuccess:
        notification:
          feishu: https://open.feishu.cn/open-apis/bot/v2/hook/a643b077-ff4a-464c-a9cf-d764f5298536
        artifact:
          monitor: true
          log: true
  items:
  - name: tc
    type: TIDB_CLUSTER
    spec:
      version: '{{meta.parameters.base_image_version}}-failpoint'
      timezone: Asia/Shanghai
      pd:
        replicas: 1
        baseImage: "{{meta.parameters.pd_base_image}}"
        requests:
          cpu: 4000m
          memory: 8Gi
        limits:
          cpu: 4000m
          memory: 8Gi
        service:
          type: NodePort
        config: |
          [dashboard]
          internal-proxy = true
        env:
        - name: GO_FAILPOINTS
          value: "github.com/tikv/pd/server/api/enableFailpointAPI=return"
      tikv:
        replicas: 3
        baseImage: '{{meta.parameters.tikv_base_image}}'
        requests:
          cpu: 8000m
          memory: 16Gi
        limits:
          cpu: 8000m
          memory: 16Gi
      tidb:
        replicas: 1
        baseImage: '{{meta.parameters.tidb_base_image}}'
        requests:
          cpu: 8000m
          memory: 16Gi
        limits:
          cpu: 8000m
          memory: 16Gi
        config: |
          [log]
          level = "info"
          [tikv-client.copr-cache]
          capacity-mb = 0.0
          [performance]
          run-auto-analyze = false
        env:
        - name: GO_FAILPOINTS
          value: "github.com/pingcap/tidb/server/enableTestAPI=return"

steps:
- name: paging-nowrite-noerr
  caseName: paging-nowrite-noerr
  arguments:
  - name: tc
    value: "{{testbed.tc}}"
- name: paging-write-noerr
  caseName: paging-write-noerr
  arguments:
  - name: tc
    value: "{{testbed.tc}}"
- name: paging-write-regionerr
  caseName: paging-write-regionerr
  arguments:
  - name: tc
    value: "{{testbed.tc}}"
- name: paging-write-networkerr
  caseName: paging-write-networkerr
  arguments:
  - name: tc
    value: "{{testbed.tc}}"
- name: paging-write-lockederr
  caseName: paging-write-lockederr
  arguments:
  - name: tc
    value: "{{testbed.tc}}"
- name: paging-write-podfailure
  caseName: paging-write-podfailure
  arguments:
  - name: tc
    value: "{{testbed.tc}}"
- name: paging-write-allerr
  caseName: paging-write-allerr
  arguments:
  - name: tc
    value: "{{testbed.tc}}"

failFast: true
