apiVersion: api/v1
kind: Plan
name: br-pitr-robust-oneshot
type: ONE_SHOT
testbed:
    generateName: xd-br-pitr-
    resourcePool: brie
    reclaimPolicy:
        gcStrategy:
            onFailure:
                artifact:
                    monitor: true
                    log: true
                reserveEnv:
                    durationOnWorkingHour: 2h
    items:
        -   name: upstream
            type: TIDB_CLUSTER
            spec:
                version: v6.2.0-pre
                pd:
                    replicas: 1
                    baseImage: hub-new.pingcap.net/qa/pd
                    config: |
                        replication.max-replicas = 1
                    requests:
                        cpu: 2000m
                        memory: 4Gi
                    limits:
                        cpu: 2000m
                        memory: 4Gi
                tikv:
                    replicas: 3
                    baseImage: hub-new.pingcap.net/qa/tikv
                    config: |
                        [log-backup]
                        enable = true
                    requests:
                        cpu: 4000m
                        memory: 8Gi
                    limits:
                        cpu: 4000m
                        memory: 8Gi
                tidb:
                    replicas: 1
                    baseImage: hub-new.pingcap.net/qa/tidb
                    requests:
                        cpu: 4000m
                        memory: 8Gi
                    limits:
                        cpu: 4000m
                        memory: 8Gi
        -   name: downstream
            type: TIDB_CLUSTER
            spec:
                version: v6.2.0-pre
                pd:
                    replicas: 1
                    baseImage: hub-new.pingcap.net/qa/pd
                    config: |
                        replication.max-replicas = 1
                    requests:
                        cpu: 2000m
                        memory: 4Gi
                    limits:
                        cpu: 2000m
                        memory: 4Gi
                tikv:
                    replicas: 1
                    baseImage: hub-new.pingcap.net/qa/tikv
                    config: |
                        [log-backup]
                        enable = true
                    requests:
                        cpu: 4000m
                        memory: 8Gi
                    limits:
                        cpu: 4000m
                        memory: 8Gi
                tidb:
                    replicas: 1
                    baseImage: hub.pingcap.net/qa/tidb
                    requests:
                        cpu: 4000m
                        memory: 8Gi
                    limits:
                        cpu: 4000m
                        memory: 8Gi
        -   name: br
            type: WORKLOAD_NODE
            spec:
                container:
                    name: br
                    image: hub.pingcap.net/qa/br:v6.2.0-pre
                    command:
                        - tail
                        - "-f"
                        - "/dev/null"
                    resources:
                        limits:
                            cpu: 2000m
                            memory: 4Gi
        -   name: mc
            type: WORKLOAD_NODE
            spec:
                container:
                    name: loader
                    image: hub-new.pingcap.net/qa/tools-with-mc:amd64
                    command:
                        - tail
                        - "-f"
                        - "/dev/null"
                    resources:
                        limits:
                            cpu: 1000m
                            memory: 2Gi
        -   name: workload
            type: WORKLOAD_NODE
            spec:
                container:
                    name: workload
                    image: hub.pingcap.net/qa/dp-workloads
                    command:
                        - tail
                        - "-f"
                        - "/dev/null"
                    resources:
                        limits:
                            cpu: 2000m
                            memory: 4Gi
        -   name: syncdiff
            type: WORKLOAD_NODE
            spec:
                container:
                    name: syncdiff
                    image: pingcap/tidb-enterprise-tools:nightly
                    command:
                        - tail
                        - "-f"
                        - "/dev/null"
                    resources:
                        limits:
                            cpu: 2000m
                            memory: 4Gi
steps:
    -   name: br-pitr-scale-basic
        caseName: br_pitr_scale_basic
        arguments:
            -   name: upstream
                value: '{{testbed.upstream}}'
            -   name: downstream
                value: '{{testbed.downstream}}'
            -   name: br
                value: '{{testbed.br}}'
            -   name: mc
                value: '{{testbed.mc}}'
            -   name: syncdiff
                value: '{{testbed.syncdiff}}'
            -   name: workload
                value: '{{testbed.workload}}'
    -   name: br-pitr-all-tikv-cpu-stress
        caseName: br_pitr_all_tikv_cpu_stress
        arguments:
            -   name: upstream
                value: '{{testbed.upstream}}'
            -   name: downstream
                value: '{{testbed.downstream}}'
            -   name: br
                value: '{{testbed.br}}'
            -   name: mc
                value: '{{testbed.mc}}'
            -   name: syncdiff
                value: '{{testbed.syncdiff}}'
            -   name: workload
                value: '{{testbed.workload}}'
    -   name: br-pitr-all-tikv-memory-stress
        caseName: br_pitr_all_tikv_memory_stress
        arguments:
            -   name: upstream
                value: '{{testbed.upstream}}'
            -   name: downstream
                value: '{{testbed.downstream}}'
            -   name: br
                value: '{{testbed.br}}'
            -   name: mc
                value: '{{testbed.mc}}'
            -   name: syncdiff
                value: '{{testbed.syncdiff}}'
            -   name: workload
                value: '{{testbed.workload}}'
    -   name: br-pitr-all-tikv-io-delay
        caseName: br_pitr_all_tikv_io_delay
        arguments:
            -   name: upstream
                value: '{{testbed.upstream}}'
            -   name: downstream
                value: '{{testbed.downstream}}'
            -   name: br
                value: '{{testbed.br}}'
            -   name: mc
                value: '{{testbed.mc}}'
            -   name: syncdiff
                value: '{{testbed.syncdiff}}'
            -   name: workload
                value: '{{testbed.workload}}'
    -   name: br-pitr-all-tikv-timechaos
        caseName: br_pitr_all_tikv_timechaos
        arguments:
            -   name: upstream
                value: '{{testbed.upstream}}'
            -   name: downstream
                value: '{{testbed.downstream}}'
            -   name: br
                value: '{{testbed.br}}'
            -   name: mc
                value: '{{testbed.mc}}'
            -   name: syncdiff
                value: '{{testbed.syncdiff}}'
            -   name: workload
                value: '{{testbed.workload}}'
    -   name: br-pitr-all-tikv-timechaos-restore
        caseName: br_pitr_all_tikv_timechaos_restore
        arguments:
            -   name: upstream
                value: '{{testbed.upstream}}'
            -   name: br
                value: '{{testbed.br}}'
    -   name: br-pitr-all-tikv-io-delay-restore
        caseName: br_pitr_all_tikv_io_delay_restore
        arguments:
            -   name: upstream
                value: '{{testbed.upstream}}'
            -   name: br
                value: '{{testbed.br}}'
    -   name: br-pitr-all-tikv-cpu-stress-restore
        caseName: br_pitr_all_tikv_cpu_stress_restore
        arguments:
            -   name: upstream
                value: '{{testbed.upstream}}'
            -   name: br
                value: '{{testbed.br}}'
    -   name: br-pitr-all-tikv-memory-stress-restore
        caseName: br_pitr_all_tikv_memory_stress_restore
        arguments:
            -   name: upstream
                value: '{{testbed.upstream}}'
            -   name: br
                value: '{{testbed.br}}'
failFast: false