Skip to content

Instantly share code, notes, and snippets.

@perbu
Created November 30, 2019 08:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save perbu/56b93c4a9cff0ea1472eb90a5a31191d to your computer and use it in GitHub Desktop.
Save perbu/56b93c4a9cff0ea1472eb90a5a31191d to your computer and use it in GitHub Desktop.
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: dag-diamond-
spec:
entrypoint: diamond
templates:
- name: diamond
dag:
tasks:
- name: A
template: echo
arguments:
parameters: [{name: message, value: A}]
- name: B
dependencies: [A]
template: echo-with-input
arguments:
parameters: [{name: message, value: B}]
artifacts: [{name: newls, from: tasks.A.outputs.artifacts.ls }]
when: "'{{tasks.A.outputs.parameters.id}}' == 'A'"
- name: C
dependencies: [A]
template: echo-with-input
arguments:
parameters: [{name: message, value: C}]
artifacts: [{name: newls, from: tasks.A.outputs.artifacts.ls }]
when: "'{{tasks.A.outputs.parameters.id}}' == 'X'"
- name: B2
dependencies: [B]
template: echo
arguments:
parameters: [{name: message, value: B}]
- name: C2
dependencies: [C]
template: echo-with-input
arguments:
parameters: [{name: message, value: C}]
artifacts: [{name: newls, from: tasks.C.outputs.artifacts.ls }]
when: "'{{tasks.A.outputs.parameters.id}}' == 'X'"
- name: D
dependencies: [B2, C2]
template: echo
arguments:
parameters: [{name: message, value: D}]
# Templates for containers.
- name: echo
inputs:
parameters:
- name: message
outputs:
parameters:
- name: id
valueFrom:
path: /tmp/id
artifacts:
- name: ls
path: /tmp/art
archive:
none: {}
script:
image: alpine:3.7
command: [sh]
source: |
echo "Hello. This is {{inputs.parameters.message}}"
cp /bin/ls /tmp/art
echo {{inputs.parameters.message}} > /tmp/id
- name: echo-with-input
inputs:
parameters:
- name: message
artifacts:
- name: newls
path: /tmp/newls
outputs:
parameters:
- name: id
valueFrom:
path: /tmp/id
artifacts:
- name: ls
path: /tmp/art
archive:
none: {}
script:
image: alpine:3.7
command: [sh]
source: |
echo "Hello. This is {{inputs.parameters.message}}"
cp /bin/ls /tmp/art
echo {{inputs.parameters.message}} > /tmp/id
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment