apiVersion: api/v1
kind: Plan
name: endless-htap-partition360
#type: ONE_SHOT
schedule: "@daily"
tags: []
testbed:
  generateName: endless-htap-partition360-
  reclaimPolicy:
    lease: 24h
    gcStrategy:
      onFailure:
        artifact:
          monitor: true
          log: true
        reserveEnv:
          durationOnWorkingHour: '{{meta.parameters.onFailureNoReserve}}'
        notification:
          feishu: https://open.feishu.cn/open-apis/bot/v2/hook/573d5985-7c9e-4a4d-8e9f-a0e0b4bda9e2
      onSuccess:
        notification:
          feishu: https://open.feishu.cn/open-apis/bot/v2/hook/ea22c6ca-afc8-4b8b-a196-025e5b96fccf
        artifact:
          monitor: true
          log: true
  items:
    - name: tc
      type: TIDB_CLUSTER
      spec:
        timezone: Asia/Shanghai
        pd:
          replicas: 3
          requests:
            cpu: 4000m
            memory: 8Gi
          limits:
            cpu: 4000m
            memory: 8Gi
          service:
            type: NodePort
          config: |
            [dashboard]
            internal-proxy = true
          baseImage: '{{meta.parameters.pd_base_image}}'
          version: '{{meta.parameters.pd_component_version}}'
        tikv:
          replicas: 4
          storageClassName: "fast-disks"
          requests:
            cpu: 12000m
            memory: 32Gi
          limits:
            cpu: 12000m
            memory: 32Gi
          baseImage: '{{meta.parameters.tikv_base_image}}'
          version: '{{meta.parameters.tikv_component_version}}'
        tiflash:
          maxReplicas: 6
          replicas: 4
          storageClaims:
            - resources:
                requests:
                  storage: 500Gi
              storageClassName: "fast-disks"
          requests:
            cpu: 12000m
            memory: 32Gi
          limits:
            cpu: 12000m
            memory: 32Gi
          config:
            config: |
              ## 数据块元信息的内存 cache 大小限制，通常不需要修改
              mark_cache_size = 5368709120
              ## 数据块 min-max 索引的内存 cache 大小限制，通常不需要修改
              minmax_index_cache_size = 5368709120
              [logger]
              level = "debug"
              size = "1000M"
              count = 100
              [profiles.default]
              ## 存储引擎的 segment 分裂是否使用逻辑分裂。使用逻辑分裂可以减小写放大，提高写入速度，但是会造成一定程度的硬盘空间回收不及时。默认为 true
              ## 单次 coprocessor 查询过程中，对中间数据的内存限制，单位为 byte，默认为 0，表示不限制
              max_memory_usage = 0
              ## 所有查询过程中，对中间数据的内存限制，单位为 byte，默认为 0，表示不限制
              max_memory_usage_for_all_queries = 0
            #                          dt_segment_force_merge_delta_rows = 10000000000
            #                          dt_segment_stop_write_delta_rows = 10000000000
            proxy: |
              log-file = "/data0/logs/tiflash_tikv.log"
          baseImage: '{{meta.parameters.tiflash_base_image}}'
          version: '{{meta.parameters.tiflash_component_version}}'
        tidb:
          replicas: 2
          requests:
            cpu: 16000m
            memory: 16Gi
          limits:
            cpu: 16000m
            memory: 16Gi
          baseImage: '{{meta.parameters.tidb_base_image}}'
          version: '{{meta.parameters.tidb_component_version}}'
        version: '{{meta.parameters.base_image_version}}'
    - name: workload0
      type: WORKLOAD_NODE
      spec:
        container:
          name: workload
          image: hub-new.pingcap.net/qa/betting-workload
          command:
            - tail
            - "-f"
            - "/dev/null"
          resources:
            requests:
              cpu: 8000m
              memory: 16Gi
              storage: 500Gi
steps:
- name: htap-partition360-stablerun
  caseName: htap_partition360_stablerun
  arguments:
    - name: tc
      value: "{{testbed.tc}}"
    - name: workload0
      value: "{{testbed.workload0}}"
- name: htap-partition360-htap-partition360-scale-in-and-scale-out
  caseName: htap_partition360_scale_in_and_scale_out
  arguments:
    - name: tc
      value: "{{testbed.tc}}"
    - name: workload0
      value: "{{testbed.workload0}}"
- name: htap-partition360-htap-partition360-chaos-inject
  caseName: htap_partition360_chaos_inject
  arguments:
    - name: tc
      value: "{{testbed.tc}}"
    - name: workload0
      value: "{{testbed.workload0}}"
- name: htap-partition360-htap-partition360-ddl
  caseName: htap_partition360_ddl
  arguments:
    - name: tc
      value: "{{testbed.tc}}"
    - name: workload0
      value: "{{testbed.workload0}}"
failFast: true
