apiVersion: api/v1
kind: Plan
name: endless-htap-high-availablity
#type: ONE_SHOT
schedule: "@daily"
tags: []
testbed:
  generateName: endless-htap-ha-
  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
  items:
  - name: tc
    type: TIDB_CLUSTER
    spec:
      timezone: Asia/Shanghai
      pd:
        replicas: 3
        config: |
          [replication]
          location-labels = [ "zone", "host" ]
          [dashboard]
          internal-proxy = true
        service:
          type: NodePort
        baseImage: '{{meta.parameters.pd_base_image}}'
        version: '{{meta.parameters.pd_component_version}}'
      tidb:
        replicas: 2
        requests:
          cpu: 8000m
          memory: 16Gi
        limits:
          cpu: 8000m
          memory: 16Gi
        baseImage: '{{meta.parameters.tidb_base_image}}'
        version: '{{meta.parameters.tidb_component_version}}'
      tikv:
        replicas: 3
        baseImage: '{{meta.parameters.tikv_base_image}}'
        version: '{{meta.parameters.tikv_component_version}}'
      tiflash:
        replicas: 6
        requests:
          cpu: 8000m
          memory: 16Gi
        limits:
          cpu: 8000m
          memory: 16Gi
        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
          proxy: |
            log-file = "/data0/logs/tiflash_tikv.log"
        topologySpreadConstraints:
        - topologyKey: zone
        baseImage: '{{meta.parameters.tiflash_base_image}}'
        version: '{{meta.parameters.tiflash_component_version}}'
      version: '{{meta.parameters.base_image_version}}'
  - name: gotpc
    type: WORKLOAD_NODE
    spec:
      container:
        name: go-tpc
        image: hub.pingcap.net/qa/go-tpc:v1.0.7
        command:
        - tail
        - "-f"
        - "/dev/null"
  - name: br
    type: BR_NODE
    spec:
      image: '{{meta.parameters.br_image}}'
steps:
- name: ha-restart-a-node
  caseName: tiflash_high_availability_002
  arguments:
  - name: tc
    value: "{{testbed.tc}}"
  - name: br
    value: '{{testbed.br}}'
  - name: gotpc
    value: '{{testbed.gotpc}}'
- name: ha-restart-a-zone
  caseName: tiflash_high_availability_003
  arguments:
  - name: tc
    value: "{{testbed.tc}}"
  - name: br
    value: '{{testbed.br}}'
  - name: gotpc
    value: '{{testbed.gotpc}}'
failFast: false
