# Usage:
# 1. get `meta.yaml` from https://github.com/pingcap/test-infra/blob/main/plans-playground/meta.yaml
# 2. tcctl run -m meta.yaml -f oneshot.yaml
apiVersion: api/v1
kind: Plan
name: endless-rawkv-api-v2
schedule: "@daily"
tags: [ "RawKV", "APIV2" ]
failFast: false
testbed:
  generateName: endless-rawkv-api-v2-
  reclaimPolicy:
    gcStrategy:
      onFailure:
        artifact:
          monitor: true
          log: true
        reserveEnv:
          durationOnWorkingHour: 1h
        notification:
          feishu: https://open.feishu.cn/open-apis/bot/v2/hook/27c2ed67-c4d6-40cc-a6be-b890dd0592e3
      onSuccess:
        notification:
          feishu: https://open.feishu.cn/open-apis/bot/v2/hook/27c2ed67-c4d6-40cc-a6be-b890dd0592e3
  items:
    - provider: "github.com/pingcap/test-infra/sdk/resource/impl/k8s.TiDBClusterClient"
      name: tc
      type: TIDB_CLUSTER
      spec:
        version: '{{meta.parameters.base_image_version}}'
        pd:
          replicas: 1
          baseImage: '{{meta.parameters.pd_base_image}}'
          requests:
            cpu: 4000m
            memory: 8Gi
          limits:
            cpu: 4000m
            memory: 8Gi
        tidb:
          replicas: 1
          baseImage: '{{meta.parameters.tidb_base_image}}'
          requests:
            cpu: 2000m
            memory: 8Gi
          limits:
            cpu: 2000m
            memory: 8Gi
        tikv:
          replicas: 4
          baseImage: '{{meta.parameters.tikv_base_image}}'
          config: |
            log-level = "info"
            [storage]
            api-version = 2
            enable-ttl = true
          storageClassName: fast-disks
          requests:
            cpu: 8000m
            memory: 16Gi
            storage: 20Gi
          limits:
            cpu: 8000m
            memory: 16Gi
            storage: 20Gi
steps:
    - name: rawkv-api-v2-correctness
      caseName: rawkv-api-v2-correctness
      arguments:
        - name: tc
          value: "{{testbed.tc}}"
        - name: duration
          value: "10m"
    - name: rawkv-api-v2-causality
      caseName: rawkv-api-v2-causality
      arguments:
        - name: tc
          value: "{{testbed.tc}}"
        - name: duration
          value: "10m"
