apiVersion: api/v1
kind: Plan
name: endless-htap-upgrade
#type: ONE_SHOT
schedule: "@daily"
tags: []
testbed:
  generateName: endless-htap-upgrade-
  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/b33bf550-af35-4909-8fef-dcaf71ffdec4
      onSuccess:
        notification:
          feishu: https://open.feishu.cn/open-apis/bot/v2/hook/b33bf550-af35-4909-8fef-dcaf71ffdec4
        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.upgrade_src_verion}}'
        tikv:
          replicas: 3
          storageClassName: "fast-disks"
          requests:
            cpu: 8000m
            memory: 16Gi
          limits:
            cpu: 8000m
            memory: 16Gi
          baseImage: '{{meta.parameters.tikv_base_image}}'
          version: '{{meta.parameters.upgrade_src_verion}}'
        tiflash:
          replicas: 2
          storageClaims:
            - resources:
                requests:
                  storage: 500Gi
              storageClassName: "fast-disks"
          requests:
            cpu: 4000m
            memory: 8Gi
          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.upgrade_src_verion}}'
        tidb:
          replicas: 2
          requests:
            cpu: 4000m
            memory: 8Gi
          limits:
            cpu: 4000m
            memory: 8Gi
          baseImage: '{{meta.parameters.tidb_base_image}}'
          version: '{{meta.parameters.upgrade_src_verion}}'
        version: '{{meta.parameters.upgrade_src_verion}}'
steps:
- name: tiflash-upgrade
  caseName: htap_upgrade
  arguments:
    - name: tc
      value: "{{testbed.tc}}"
    - name: upgrade_source_version
      value: "{{meta.parameters.upgrade_src_verion}}"
    - name: upgrade_target_version
      value: "master"
failFast: true
