apiVersion: api/v1
kind: Plan
name: txn-with-ddl
tags: ['team:transaction', 'owner:zyguan', 'branch:master']
schedule: '0 0 * * *'
testbed:
  generateName: txn-ddl-
  resourcePool: test-store
  items:
  - name: tidb-up
    type: TIDB_CLUSTER
    spec:
      version: '{{meta.parameters.base_image_version}}'
      pd:
        baseImage: '{{meta.parameters.pd_base_image}}'
        replicas: 1
        version: '{{meta.parameters.pd_component_version}}'
      tikv:
        baseImage: '{{meta.parameters.tikv_base_image}}'
        config: |
          [storage]
          reserve-space = 0
          enable-async-apply-prewrite = true
          [pessimistic-txn]
          pipelined = true
          in-memory = true
        version: '{{meta.parameters.tikv_component_version}}'
      tidb:
        baseImage: '{{meta.parameters.tidb_base_image}}'
        config: |
          new_collations_enabled_on_first_bootstrap = true
          [prepared-plan-cache]
          enabled = true
          [experimental]
          allow-expression-index = true
        version: '{{meta.parameters.tidb_component_version}}'
      pump:
        baseImage: "{{meta.parameters.binlog_base_image}}"
        replicas: 1
        requests:
          storage: 30Gi
        version: '{{meta.parameters.binlog_component_version}}'
  - name: tidb-down
    type: TIDB_CLUSTER
    spec:
      version: '{{meta.parameters.base_image_version}}'
      pd:
        replicas: 1
        baseImage: '{{meta.parameters.pd_base_image}}'
        version: '{{meta.parameters.pd_component_version}}'
      tikv:
        replicas: 1
        baseImage: '{{meta.parameters.tikv_base_image}}'
        config: |
          [storage]
          reserve-space = 0
          enable-async-apply-prewrite = true
          [pessimistic-txn]
          pipelined = true
          in-memory = true
        version: '{{meta.parameters.tikv_component_version}}'
      tidb:
        replicas: 1
        baseImage: '{{meta.parameters.tidb_base_image}}'
        config: |
          new_collations_enabled_on_first_bootstrap = true
          [prepared-plan-cache]
          enabled = true
          [experimental]
          allow-expression-index = true
        version: '{{meta.parameters.tidb_component_version}}'
  - name: drainer
    type: TIDB_DRAINER
    spec:
      clusterName: tidb-up
      clusterVersion: "{{meta.parameters.binlog_component_version}}"
      baseImage: "{{meta.parameters.binlog_base_image}}"
      config: |
        [syncer]
        db-type = "tidb"
        ignore-schemas = "INFORMATION_SCHEMA,PERFORMANCE_SCHEMA,mysql"
        [syncer.to]
        host = "tidb-down-tidb"
        user = "root"
        password = ""
        port = 4000
pipeline:
- name: default
  caseName: txn-with-ddl
  arguments:
  - {name: TIME, value: '3600'}
  - {name: DB1, value: 'mysql://root:@{{testbed.items.tidb-up.tidb.host}}:4000/test'}
  - {name: DB2, value: 'mysql://root:@{{testbed.items.tidb-down.tidb.host}}:4000/test'}
  - {name: TXN_THREADS, value: '5'}
  - {name: INIT_SQL, value: '["set @@tidb_enable_amend_pessimistic_txn=1","set @@tidb_enable_mutation_checker=1","set
      @@tidb_txn_assertion_level=strict"]'}
  after: []
- name: read-committed
  caseName: txn-with-ddl
  arguments:
  - {name: TIME, value: '3600'}
  - {name: DB1, value: 'mysql://root:@{{testbed.items.tidb-up.tidb.host}}:4000/test'}
  - {name: DB2, value: 'mysql://root:@{{testbed.items.tidb-down.tidb.host}}:4000/test'}
  - {name: TXN_THREADS, value: '5'}
  - {name: INIT_SQL, value: '["set session transaction isolation level read committed","set
      @@tidb_enable_amend_pessimistic_txn=1","set @@tidb_enable_mutation_checker=1","set
      @@tidb_txn_assertion_level=strict"]'}
  after: [default.Succeeded || default.Failed]
