apiVersion: argoproj.io/v1alpha1 kind: Workflow metadata: generateName: approve- spec: entrypoint: approve-flow templates: - name: approve-flow dag: tasks: - name: A template: approval - name: B template: approval depends: "A.Succeeded" when: "{{ tasks.A.outputs.parameters.approve }} == pass" - name: C template: approval depends: "A.Succeeded" when: "{{ tasks.A.outputs.parameters.approve }} == pass" - name: D template: approval depends: "B.Succeeded && C.Succeeded" when: "(({{ tasks.B.outputs.parameters.approve }} == pass && {{ tasks.C.outputs.parameters.approve }} == pass))" - name: E template: approval depends: "B.Succeeded && C.Succeeded" when: "({{ tasks.B.outputs.parameters.approve }} == pass && {{ tasks.C.outputs.parameters.approve }} == pass)" - name: F template: approval depends: "D.Succeeded && E.Succeeded" when: "({{ tasks.D.outputs.parameters.approve }} == pass || {{ tasks.E.outputs.parameters.approve }} == pass)" - name: approval suspend: {} inputs: parameters: - name: approve default: 'reject' enum: - 'pass' - 'reject' description: >- Choose YES to continue workflow and deploy to production outputs: parameters: - name: approve valueFrom: supplied: {}