apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
  name: tidbcloud
  namespace: argo
  labels:
    type: util
spec:
  templates:
  - name: with-cluster
    inputs:
      parameters:
      - name: tier
        default: '{{workflow.parameters.tier}}'
      - name: provider
        default: '{{workflow.parameters.provider}}'
      - name: region
        default: '{{workflow.parameters.region}}'
      - name: tikv-version
        default: '{{workflow.parameters.tikv-version}}'
      - name: tidb-version
        default: '{{workflow.parameters.tidb-version}}'
      - name: pd-version
        default: '{{workflow.parameters.pd-version}}'
      - name: tidb-config
        default: '{{workflow.parameters.tidb-config}}'
      - name: pd-config
        default: '{{workflow.parameters.pd-config}}'
      - name: tikv-config
        default: '{{workflow.parameters.tikv-config}}'
    resource:
      action: create
      setOwnerReference: true
      successCondition: status.initialized == true
      manifest: |
        apiVersion: core.tidbcloud.com/v1alpha1
        kind: Cluster
        metadata:
          generateName: tidb-
          namespace: argo
        spec:
          providerConfigRef:
            name: dbaas-stability
          parameters:
            generateName: bench-
            provider: {{inputs.parameters.provider}}
            region: {{inputs.parameters.region}}
            tier: {{inputs.parameters.tier}}
            tidb:
              replicas: 2
              versionOverride: {{inputs.parameters.tidb-version}}
              rawConfig: "{{inputs.parameters.tidb-config}}"
            tikv:
              replicas: 3
              versionOverride: {{inputs.parameters.tikv-version}}
              rawConfig: "{{inputs.parameters.tikv-config}}"
            pd:
              replicas: 3
              versionOverride: {{inputs.parameters.pd-version}}
              rawConfig: "{{inputs.parameters.pd-config}}"
            version: v4.0.7
            initPassword: cleartext
    outputs:
      parameters:
      - name: kubeconfig-secret
        globalName: tidb-kubeconfig-secret
        valueFrom:
          jsonPath: '{.status.kubeconfigSecret.name}'
      - name: password
        globalName: tidb-password
        valueFrom:
          jsonPath: '{.spec.parameters.initPassword}'
      - name: host
        globalName: tidb-host
        valueFrom:
          jsonPath: '{.status.host}'
      - name: id
        globalName: tidb-id
        valueFrom:
          jsonPath: '{.status.id}'
      - name: port
        globalName: tidb-port
        valueFrom:
          jsonPath: '{.status.port}'
