Skip to content

Commit

Permalink
docs: add loop-arbitrary-sequential-steps example. Fixes 8081 (argopr…
Browse files Browse the repository at this point in the history
…oj#9683)

Signed-off-by: yangxue.chen <chenyangxuehdu@126.com>
  • Loading branch information
rohankmr414 authored and yangxue.chen committed Sep 29, 2022
1 parent 8f76dcd commit cb124f8
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 0 deletions.
20 changes: 20 additions & 0 deletions docs/fields.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,8 @@ Workflow is the definition of a workflow resource

- [`life-cycle-hooks-wf-level.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/life-cycle-hooks-wf-level.yaml)

- [`loops-arbitrary-sequential-steps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-arbitrary-sequential-steps.yaml)

- [`loops-dag.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-dag.yaml)

- [`loops-maps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-maps.yaml)
Expand Down Expand Up @@ -635,6 +637,8 @@ WorkflowSpec is the specification of a Workflow.

- [`life-cycle-hooks-wf-level.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/life-cycle-hooks-wf-level.yaml)

- [`loops-arbitrary-sequential-steps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-arbitrary-sequential-steps.yaml)

- [`loops-dag.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-dag.yaml)

- [`loops-maps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-maps.yaml)
Expand Down Expand Up @@ -1068,6 +1072,8 @@ CronWorkflowSpec is the specification of a CronWorkflow

- [`life-cycle-hooks-wf-level.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/life-cycle-hooks-wf-level.yaml)

- [`loops-arbitrary-sequential-steps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-arbitrary-sequential-steps.yaml)

- [`loops-dag.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-dag.yaml)

- [`loops-maps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-maps.yaml)
Expand Down Expand Up @@ -1345,6 +1351,8 @@ Arguments to a template

- [`label-value-from-workflow.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/label-value-from-workflow.yaml)

- [`loops-arbitrary-sequential-steps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-arbitrary-sequential-steps.yaml)

- [`loops-dag.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-dag.yaml)

- [`loops-maps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-maps.yaml)
Expand Down Expand Up @@ -2156,6 +2164,8 @@ Parameter indicate a passed string parameter to a service template with an optio

- [`label-value-from-workflow.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/label-value-from-workflow.yaml)

- [`loops-arbitrary-sequential-steps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-arbitrary-sequential-steps.yaml)

- [`loops-dag.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-dag.yaml)

- [`loops-maps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-maps.yaml)
Expand Down Expand Up @@ -2719,6 +2729,8 @@ Inputs are the mechanism for passing parameters, artifacts, volumes from one tem

- [`key-only-artifact.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/key-only-artifact.yaml)

- [`loops-arbitrary-sequential-steps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-arbitrary-sequential-steps.yaml)

- [`loops-dag.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-dag.yaml)

- [`loops-maps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-maps.yaml)
Expand Down Expand Up @@ -3023,6 +3035,8 @@ WorkflowStep is a reference to a template to execute in a series of step

- [`life-cycle-hooks-wf-level.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/life-cycle-hooks-wf-level.yaml)

- [`loops-arbitrary-sequential-steps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-arbitrary-sequential-steps.yaml)

- [`loops-maps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-maps.yaml)

- [`loops-param-argument.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-param-argument.yaml)
Expand Down Expand Up @@ -4725,6 +4739,8 @@ ObjectMeta is metadata that all persisted resources must have, which includes al

- [`life-cycle-hooks-wf-level.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/life-cycle-hooks-wf-level.yaml)

- [`loops-arbitrary-sequential-steps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-arbitrary-sequential-steps.yaml)

- [`loops-dag.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-dag.yaml)

- [`loops-maps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-maps.yaml)
Expand Down Expand Up @@ -5325,6 +5341,8 @@ A single application container that you want to run within a pod.

- [`life-cycle-hooks-wf-level.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/life-cycle-hooks-wf-level.yaml)

- [`loops-arbitrary-sequential-steps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-arbitrary-sequential-steps.yaml)

- [`loops-dag.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-dag.yaml)

- [`loops-maps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-maps.yaml)
Expand Down Expand Up @@ -6046,6 +6064,8 @@ PersistentVolumeClaimSpec describes the common attributes of storage devices and

- [`life-cycle-hooks-wf-level.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/life-cycle-hooks-wf-level.yaml)

- [`loops-arbitrary-sequential-steps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-arbitrary-sequential-steps.yaml)

- [`loops-dag.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-dag.yaml)

- [`loops-maps.yaml`](https://github.com/argoproj/argo-workflows/blob/master/examples/loops-maps.yaml)
Expand Down
49 changes: 49 additions & 0 deletions examples/loops-arbitrary-sequential-steps.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# This example demonstrates a workflow accepting a list of items (as JSON string)
# as an input parameter, and using it for expanding a step into a sequential task
# of arbitrary steps. When a step fails, the iteration will break, stopping
# following steps from running.
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: loop-arbitrary-sequential-steps-
spec:
entrypoint: loop-arbitrary-sequential-steps-example
arguments:
parameters:
- name: step_params
value: |
[
{ "exit_code": 0, "message": "succeeds 1" },
{ "exit_code": 0, "message": "succeeds 2" },
{ "exit_code": 0, "message": "succeeds 3" },
{ "exit_code": 1, "message": "will fail and stop here" },
{ "exit_code": 0, "message": "will not run" },
{ "exit_code": 0, "message": "will not run" }
]
templates:
- name: loop-arbitrary-sequential-steps-example
inputs:
parameters:
- name: step_params
parallelism: 1
failFast: true
steps:
- - name: unit-step
template: unit-step-template
arguments:
parameters:
- name: exit_code
value: "{{item.exit_code}}"
- name: message
value: "{{item.message}}"
withParam: "{{inputs.parameters.step_params}}"

- name: unit-step-template
inputs:
parameters:
- name: exit_code
- name: message
container:
image: alpine
command: [ '/bin/sh', '-c' ]
args: [ "echo {{inputs.parameters.message}}; exit {{inputs.parameters.exit_code}}" ]

0 comments on commit cb124f8

Please sign in to comment.