apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
  name: dataset
  namespace: argo
  labels:
    type: util
spec:
  templates:
  - name: ycsb-2TB
    inputs:
      parameters:
      - name: kubeconfig-secret
      - name: ns
    outputs:
      parameters:
      - name: scale
        valueFrom:
          default: "3160518000"
          # workaround for output constants: reference to a non-exist parameter and fallback to default
          parameter: 'foobar'
    steps:
    - - name: restore
        templateRef:
          name: utilities
          template: restore-and-wait
        arguments:
          parameters:
          - name: kubeconfig-secret
            value: '{{inputs.parameters.kubeconfig-secret}}'
          - name: ns
            value: '{{inputs.parameters.ns}}'
          - name: storage-credential-secret
            value: 's3-credential'
          artifacts:
          - name: source
            raw:
              data: |
                s3:
                  secretName: storage-credential
                  region: us-west-2
                  provider: aws
                  bucket: dbaas-benchmark
                  prefix: ycsb-2TB

  - name: ycsb-1000000000
    inputs:
      parameters:
      - name: kubeconfig-secret
      - name: ns
    outputs:
      parameters:
      - name: scale
        valueFrom:
          default: "2000000000"
          parameter: 'foobar'
    steps:
    - - name: restore
        templateRef:
          name: utilities
          template: restore-and-wait
        arguments:
          parameters:
          - name: kubeconfig-secret
            value: '{{inputs.parameters.kubeconfig-secret}}'
          - name: ns
            value: '{{inputs.parameters.ns}}'
          - name: storage-credential-secret
            value: 's3-credential'
          artifacts:
          - name: source
            raw:
              data: |
                s3:
                  secretName: storage-credential
                  region: us-west-2
                  provider: aws
                  bucket: dbaas-benchmark
                  prefix: ycsb-2000000000
  - name: tpcc-10000
    inputs:
      parameters:
      - name: kubeconfig-secret
      - name: ns
    outputs:
      parameters:
      - name: scale
        valueFrom:
          default: "10000"
          parameter: 'foobar'
    steps:
    - - name: restore
        templateRef:
          name: utilities
          template: restore-and-wait
        arguments:
          parameters:
          - name: kubeconfig-secret
            value: '{{inputs.parameters.kubeconfig-secret}}'
          - name: ns
            value: '{{inputs.parameters.ns}}'
          - name: storage-credential-secret
            value: 's3-credential'
          artifacts:
          - name: source
            raw:
              data: |
                s3:
                  secretName: storage-credential
                  region: us-west-2
                  provider: aws
                  bucket: dbaas-benchmark
                  prefix: tpcc-10000
