apiVersion: argoproj.io/v1alpha1 kind: Workflow metadata: annotations: pipelines.kubeflow.org/pipeline_spec: '{"description": "shows how to use dsl.Condition.", "inputs": [{"default": 12, "description": "", "name": "maxVal", "type": ""}], "name": "pipeline flip coin"}' generateName: pipeline-flip-coin- spec: arguments: parameters: - name: maxval value: '12' entrypoint: pipeline-flip-coin serviceAccountName: pipeline-runner templates: - dag: tasks: - arguments: parameters: - name: flip-output value: '{{inputs.parameters.flip-output}}' dependencies: - print name: flip-3 template: flip-3 - arguments: parameters: - name: flip-output value: '{{tasks.flip-3.outputs.parameters.flip-3-output}}' - name: maxval value: '{{inputs.parameters.maxval}}' dependencies: - flip-3 name: graph-flip-component-1 template: graph-flip-component-1 - arguments: parameters: - name: flip-output value: '{{inputs.parameters.flip-output}}' name: print template: print inputs: parameters: - name: flip-output - name: maxval name: condition-2 - container: args: - python -c "import random; result = 'heads' if random.randint(0,1) == 0 else 'tails'; print(result)" | tee /tmp/output command: - sh - -c image: python:alpine3.6 name: flip outputs: artifacts: - name: mlpipeline-ui-metadata optional: true path: /mlpipeline-ui-metadata.json - name: mlpipeline-metrics optional: true path: /mlpipeline-metrics.json parameters: - name: flip-output valueFrom: path: /tmp/output - container: args: - python -c "import random; result = 'heads' if random.randint(0,1) == 0 else 'tails'; print(result)" | tee /tmp/output command: - sh - -c image: python:alpine3.6 name: flip-2 outputs: artifacts: - name: mlpipeline-ui-metadata optional: true path: /mlpipeline-ui-metadata.json - name: mlpipeline-metrics optional: true path: /mlpipeline-metrics.json parameters: - name: flip-2-output valueFrom: path: /tmp/output - container: args: - python -c "import random; result = 'heads' if random.randint(0,1) == 0 else 'tails'; print(result)" | tee /tmp/output command: - sh - -c image: python:alpine3.6 name: flip-3 outputs: artifacts: - name: mlpipeline-ui-metadata optional: true path: /mlpipeline-ui-metadata.json - name: mlpipeline-metrics optional: true path: /mlpipeline-metrics.json parameters: - name: flip-3-output valueFrom: path: /tmp/output - dag: tasks: - arguments: parameters: - name: flip-output value: '{{inputs.parameters.flip-output}}' - name: maxval value: '{{inputs.parameters.maxval}}' name: condition-2 template: condition-2 when: '{{inputs.parameters.flip-output}} == heads' inputs: parameters: - name: flip-output - name: maxval name: graph-flip-component-1 - dag: tasks: - name: flip template: flip - name: flip-2 template: flip-2 - arguments: parameters: - name: flip-output value: '{{tasks.flip.outputs.parameters.flip-output}}' - name: maxval value: '{{inputs.parameters.maxval}}' dependencies: - flip - flip-2 name: graph-flip-component-1 template: graph-flip-component-1 - arguments: parameters: - name: flip-output value: '{{tasks.flip.outputs.parameters.flip-output}}' dependencies: - flip - graph-flip-component-1 name: print-2 template: print-2 inputs: parameters: - name: maxval name: pipeline-flip-coin - container: command: - echo - '{{inputs.parameters.flip-output}}' image: alpine:3.6 inputs: parameters: - name: flip-output name: print outputs: artifacts: - name: mlpipeline-ui-metadata optional: true path: /mlpipeline-ui-metadata.json - name: mlpipeline-metrics optional: true path: /mlpipeline-metrics.json - container: command: - echo - cool, it is over. {{inputs.parameters.flip-output}} image: alpine:3.6 inputs: parameters: - name: flip-output name: print-2 outputs: artifacts: - name: mlpipeline-ui-metadata optional: true path: /mlpipeline-ui-metadata.json - name: mlpipeline-metrics optional: true path: /mlpipeline-metrics.json