apiVersion: api/v1
kind: Plan
name: cdc-truncate-table-tidb-sync
schedule: "@weekly"
tags: ["cdc"]
testbed:
  generateName: cdc-testbed-
  reclaimPolicy:
    gcStrategy:
      onFailure:
        artifact:
          monitor: true
          log: true
        reserveEnv:
          durationOnWorkingHour: '{{meta.parameters.onFailureReserveDurationOnWorkingHour}}'
        notification:
          feishu: https://open.feishu.cn/open-apis/bot/v2/hook/4f6c6406-c963-4d52-8641-cca17aa734e9
  items:
  - name: upstream
    type: TIDB_CLUSTER
    spec:
      imagePullPolicy: Always
      pd:
        replicas: 3
        requests:
          cpu: 1000m
          memory: 4Gi
        limits:
          cpu: 1000m
          memory: 4Gi
        baseImage: '{{meta.parameters.pd_base_image}}'
        version: '{{meta.parameters.pd_component_version}}'
      tikv:
        storageClassName: fast-disks
        replicas: 3
        requests:
          cpu: 8000m
          memory: 16Gi
        limits:
          cpu: 8000m
          memory: 16Gi
        baseImage: '{{meta.parameters.tikv_base_image}}'
        version: '{{meta.parameters.tikv_component_version}}'
      tidb:
        replicas: 1
        config: |
          [performance]
          txn-total-size-limit = 10007418240
        requests:
          cpu: 8000m
          memory: 16Gi
        limits:
          cpu: 8000m
          memory: 16Gi
        baseImage: '{{meta.parameters.tidb_base_image}}'
        version: '{{meta.parameters.tidb_component_version}}'
      ticdc:
        replicas: 3
        requests:
          cpu: 8000m
          memory: 16Gi
        limits:
          cpu: 8000m
          memory: 16Gi
        baseImage: '{{meta.parameters.ticdc_base_image}}'
        version: '{{meta.parameters.ticdc_component_version}}'
      version: '{{meta.parameters.base_image_version}}'
  - name: downstream
    type: TIDB_CLUSTER
    spec:
      imagePullPolicy: Always
      pd:
        replicas: 1
        baseImage: '{{meta.parameters.pd_base_image}}'
        version: '{{meta.parameters.pd_component_version}}'
      tikv:
        storageClassName: fast-disks
        replicas: 3
        baseImage: '{{meta.parameters.tikv_base_image}}'
        version: '{{meta.parameters.tikv_component_version}}'
      tidb:
        replicas: 1
        config: |
          [performance]
          txn-total-size-limit = 10007418240
        requests:
          cpu: 8000m
          memory: 16Gi
        limits:
          cpu: 8000m
          memory: 16Gi
        baseImage: '{{meta.parameters.tidb_base_image}}'
        version: '{{meta.parameters.tidb_component_version}}'
      version: '{{meta.parameters.base_image_version}}'
  - name: workload
    type: WORKLOAD_NODE
    spec:
      container:
        name: sysbench
        image: "{{meta.parameters.bench_toolset_image}}"
        command:
        - tail
        - "-f"
        - /dev/null
        resources:
          requests:
            memory: 4Gi
            cpu: 4000m
        volumeMount:
          mountPath: "/var/lib/mysql"
steps:
- name: cdc-truncate-table-sync
  caseName: cdc_truncate_table_sync
  arguments:
  - name: upstream
    value: "{{testbed.upstream}}"
  - name: downstream
    value: "{{testbed.downstream}}"
  - name: workload
    value: "{{testbed.workload}}"
- name: cdc-owner-switch-truncate-sync
  caseName: cdc_owner_switch_truncate_sync
  arguments:
    - name: upstream
      value: "{{testbed.upstream}}"
    - name: downstream
      value: "{{testbed.downstream}}"
    - name: workload
      value: "{{testbed.workload}}"
- name: cdc-large-transaction-sync
  caseName: cdc_large_transaction_sync
  arguments:
    - name: upstream
      value: "{{testbed.upstream}}"
    - name: downstream
      value: "{{testbed.downstream}}"
    - name: workload
      value: "{{testbed.workload}}"
failFast: false
