apiVersion: api/v1
kind: Plan
name: utf-async-commit
pipeline:
- after: []
  arguments:
  - name: tidb
    value: '{{testbed.tidb-async-commit}}'
  caseName: TIDB_ASYNC_COMMIT_TS_MONOTONICITY
  name: TIDB-ASYNC-COMMIT-TS-MONOTONICITY
- after:
  - TIDB-ASYNC-COMMIT-TS-MONOTONICITY.Succeeded || TIDB-ASYNC-COMMIT-TS-MONOTONICITY.Failed
  arguments:
  - name: tidb
    value: '{{testbed.tidb-async-commit}}'
  caseName: TIDB_ASYNC_COMMIT_TS_MONOTONICITY_PESSIMISTIC
  name: TIDB-ASYNC-COMMIT-TS-MONOTONICITY-PESSIMISTIC
- after:
  - TIDB-ASYNC-COMMIT-TS-MONOTONICITY-PESSIMISTIC.Succeeded || TIDB-ASYNC-COMMIT-TS-MONOTONICITY-PESSIMISTIC.Failed
  arguments:
  - name: tidb
    value: '{{testbed.tidb-async-commit}}'
  caseName: TIDB_ASYNC_COMMIT_PESSIMISTIC_TXN_CONFLICT
  name: TIDB-ASYNC-COMMIT-PESSIMISTIC-TXN-CONFLICT
- after:
  - TIDB-ASYNC-COMMIT-PESSIMISTIC-TXN-CONFLICT.Succeeded || TIDB-ASYNC-COMMIT-PESSIMISTIC-TXN-CONFLICT.Failed
  arguments:
  - name: tidb
    value: '{{testbed.tidb-async-commit}}'
  caseName: TIDB_ASYNC_COMMIT_PESSIMISTIC_TXN_CONFLICT_LONG
  name: TIDB-ASYNC-COMMIT-PESSIMISTIC-TXN-CONFLICT-LONG
- after: []
  arguments:
  - name: tidb
    value: '{{testbed.tidb-async-commit-failpoint}}'
  caseName: TIDB_ASYNC_COMMIT_CHANGE_NULL_TO_NON_NULL
  name: TIDB-ASYNC-COMMIT-CHANGE-NULL-TO-NON-NULL
- after:
  - TIDB-ASYNC-COMMIT-CHANGE-NULL-TO-NON-NULL.Succeeded || TIDB-ASYNC-COMMIT-CHANGE-NULL-TO-NON-NULL.Failed
  arguments:
  - name: tidb
    value: '{{testbed.tidb-async-commit-failpoint}}'
  caseName: TIDB_ASYNC_COMMIT_RESOLVE
  name: TIDB-ASYNC-COMMIT-RESOLVE
- after:
  - TIDB-ASYNC-COMMIT-RESOLVE.Succeeded || TIDB-ASYNC-COMMIT-RESOLVE.Failed
  arguments:
  - name: tidb
    value: '{{testbed.tidb-async-commit-failpoint}}'
  caseName: TIDB_ASYNC_COMMIT_IDEMPOTENT
  name: TIDB-ASYNC-COMMIT-IDEMPOTENT
- after:
  - TIDB-ASYNC-COMMIT-IDEMPOTENT.Succeeded || TIDB-ASYNC-COMMIT-IDEMPOTENT.Failed
  arguments:
  - name: tidb
    value: '{{testbed.tidb-async-commit-failpoint}}'
  caseName: TIDB_1PC_FALLBACK_ON_SPLIT_LONG
  name: TIDB-1PC-FALLBACK-ON-SPLIT-LONG
- after: []
  arguments:
  - name: tidb
    value: '{{testbed.tidb-async-commit-failpoint1}}'
  caseName: TIDB_1PC_FALLBACK_ON_SPLIT
  name: TIDB-1PC-FALLBACK-ON-SPLIT
- after:
  - TIDB-1PC-FALLBACK-ON-SPLIT.Succeeded || TIDB-1PC-FALLBACK-ON-SPLIT.Failed
  arguments:
  - name: tidb
    value: '{{testbed.tidb-async-commit-failpoint1}}'
  caseName: TIDB_ASYNC_COMMIT_LINEARIZABILITY
  name: TIDB-ASYNC-COMMIT-LINEARIZABILITY
- after:
  - TIDB-ASYNC-COMMIT-LINEARIZABILITY.Succeeded || TIDB-ASYNC-COMMIT-LINEARIZABILITY.Failed
  arguments:
  - name: tidb
    value: '{{testbed.tidb-async-commit-failpoint1}}'
  caseName: TIDB_ASYNC_COMMIT_PREWRITE_RPC_RETRY
  name: TIDB-ASYNC-COMMIT-PREWRITE-RPC-RETRY
schedule: '@daily'
testbed:
  generateName: oltp-
  items:
  - name: tidb-async-commit
    spec:
      pd:
        config: |
          config-file.tso-update-physical-interval = "10s"
        replicas: 1
        baseImage: '{{meta.parameters.pd_base_image}}'
        version: '{{meta.parameters.pd_component_version}}'
      tidb:
        config: |
          server-version = '{{meta.parameters.tidb_version}}'
        replicas: 1
        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}}'
      version: '{{meta.parameters.base_image_version}}'
    type: TIDB_CLUSTER
  - name: tidb-async-commit-failpoint
    spec:
      pd:
        env:
        - name: GO_FAILPOINTS
          value: github.com/tikv/pd/server/api/enableFailpointAPI=return
        config: |
          config-file.tso-update-physical-interval = "10s"
        replicas: 1
        version: '{{meta.parameters.base_image_version}}-failpoint'
        baseImage: '{{meta.parameters.pd_base_image}}'
      tidb:
        env:
        - name: GO_FAILPOINTS
          value: github.com/pingcap/tidb/server/enableTestAPI=return
        config: |
          server-version = '{{meta.parameters.tidb_version}}'
        replicas: 1
        version: '{{meta.parameters.base_image_version}}-failpoint'
        baseImage: '{{meta.parameters.tidb_base_image}}'
      tikv:
        replicas: 3
        version: '{{meta.parameters.base_image_version}}-failpoint'
        baseImage: '{{meta.parameters.tikv_base_image}}'
      version: '{{meta.parameters.base_image_version}}'
    type: TIDB_CLUSTER
  - name: tidb-async-commit-failpoint1
    spec:
      pd:
        env:
        - name: GO_FAILPOINTS
          value: github.com/tikv/pd/server/api/enableFailpointAPI=return
        replicas: 1
        version: '{{meta.parameters.base_image_version}}-failpoint'
        baseImage: '{{meta.parameters.pd_base_image}}'
      tidb:
        env:
        - name: GO_FAILPOINTS
          value: github.com/pingcap/tidb/server/enableTestAPI=return
        config: |
          server-version = '{{meta.parameters.tidb_version}}'
        replicas: 1
        version: '{{meta.parameters.base_image_version}}-failpoint'
        baseImage: '{{meta.parameters.tidb_base_image}}'
      tikv:
        replicas: 3
        version: '{{meta.parameters.base_image_version}}-failpoint'
        baseImage: '{{meta.parameters.tikv_base_image}}'
      version: '{{meta.parameters.base_image_version}}'
    type: TIDB_CLUSTER
  - name: tidb-async-commit-no-region-merge
    spec:
      pd:
        env:
        - name: GO_FAILPOINTS
          value: github.com/tikv/pd/server/api/enableFailpointAPI=return
        config: |
          config-file.tso-update-physical-interval = "10s"
          schedule.max-merge-region-size = 1
          schedule.max-merge-region-keys = 1
          schedule.split-merge-interval = "10h"
          schedule.enable-cross-table-merge = false
        replicas: 1
        baseImage: '{{meta.parameters.pd_base_image}}'
        version: '{{meta.parameters.pd_component_version}}'
      tidb:
        env:
        - name: GO_FAILPOINTS
          value: github.com/pingcap/tidb/server/enableTestAPI=return
        config: |
          server-version = '{{meta.parameters.tidb_version}}'
        replicas: 1
        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}}'
      version: '{{meta.parameters.base_image_version}}'
    type: TIDB_CLUSTER
