volcano.sh/volcano@v1.9.0/example/integrations/argo/20-job-DAG.yaml (about)

     1  apiVersion: argoproj.io/v1alpha1
     2  kind: Workflow
     3  metadata:
     4    generateName: volcano-dag-job-
     5  spec:
     6    entrypoint: volcano-dag-job
     7    serviceAccountName: argo
     8    templates:
     9    - name: volcano-dag-job
    10      dag:
    11        tasks:
    12        - name: A
    13          template: hello-tmpl
    14          arguments:
    15            parameters: [{name: message, value: A}, {name: task, value: aaa}]
    16        - name: B
    17          template: hello-tmpl
    18          dependencies: [A]
    19          arguments:
    20            parameters: [{name: message, value: B}, {name: task, value: bbb}]
    21        - name: C
    22          template: hello-tmpl
    23          dependencies: [A]
    24          arguments:
    25            parameters: [{name: message, value: C}, {name: task, value: ccc}]
    26        - name: D
    27          template: hello-tmpl
    28          dependencies: [B, C]
    29          arguments:
    30            parameters: [{name: message, value: D}, {name: task, value: ddd}]
    31    - name: hello-tmpl
    32      inputs:
    33        parameters:
    34        - name: message
    35        - name: task
    36      resource:
    37        action: create
    38        successCondition: status.state.phase = Completed
    39        failureCondition: status.state.phase = Failed
    40        manifest: |
    41          apiVersion: batch.volcano.sh/v1alpha1
    42          kind: Job
    43          metadata:
    44            generateName: dag-job-{{inputs.parameters.task}}-
    45            ownerReferences:
    46            - apiVersion: argoproj.io/v1alpha1
    47              blockOwnerDeletion: true
    48              kind: Workflow
    49              name: "{{workflow.name}}"
    50              uid: "{{workflow.uid}}"
    51          spec:
    52            minAvailable: 1
    53            schedulerName: volcano
    54            policies:
    55            - event: PodEvicted
    56              action: RestartJob
    57            plugins:
    58              ssh: []
    59              env: []
    60              svc: []
    61            maxRetry: 1
    62            queue: default
    63            tasks:
    64            - replicas: 2
    65              name: "default-hello"
    66              template:
    67                metadata:
    68                  name: helloworld
    69                spec:
    70                  containers:
    71                  - image: docker/whalesay
    72                    imagePullPolicy: IfNotPresent
    73                    command: [cowsay]
    74                    args: ["{{inputs.parameters.message}}"]
    75                    name: hello
    76                    resources:
    77                      requests:
    78                        cpu: "100m"
    79                  restartPolicy: OnFailure