Ở bài đâu tiên chúng ta chỉ mới tạo những simple templates.
Chả thấy kiểu như pipeline.
1) Steps Template serial
Sau đây chúng ta có như pipeline hiện thì trên ui như sau.


apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
name: wf-steps-templates-serial
spec:
entrypoint: steps-templates-serial
templates:
- name: steps-templates-serial
steps:
- - name: step1
template: task-template
- - name: step2
template: task-template
- - name: step3
template: task-template
- name: task-template
script:
image: python:3.8-slim
command: [python]
source: |
print("Nimtechnology - Task executed.")

THì bạn cứ apply hày create đều được

Steps Template parallel
Giờ các bạn muốn steps chạy parallel thì làm sao
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
name: wf-steps-templates-parallel
spec:
entrypoint: steps-templates-parallel
templates:
- name: steps-templates-parallel
steps:
- - name: step1
template: task-template
- - name: step2
template: task-template
- name: step3
template: task-template
- - name: step4
template: task-template
- name: task-template
script:
image: python:3.8-slim
command: [python]
source: |
print("Nimtechnology - Task executed.")

Suspend Template
Giờ mình tạo 1 step kiểu như sleep hay suspend(treo) mấy giây.


apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
name: wf-steps-templates-suspend
spec:
entrypoint: steps-templates-suspend
templates:
- name: steps-templates-suspend
steps:
- - name: step1
template: task-template
- - name: step2
template: task-template
- name: step3
template: task-template
- - name: delay
template: deylay-template
- - name: step4
template: task-template
- name: task-template
script:
image: python:3.8-slim
command: [python]
source: |
print("Nimtechnology - Task executed.")
- name: deylay-template
suspend:
duration: "10s"
DAG Template
Cũng giống như step template về mặt flows.


Dag thì nó tường mình hơn khi việc Task này phụ thuộc task kia như thế nào.
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
name: wf-dag-templates-suspend
spec:
entrypoint: dag-templates-suspend
templates:
- name: dag-templates-suspend
dag:
tasks:
- name: Task1
template: task-template
- name: Task2
template: task-template
dependencies: [Task1]
- name: Task3
template: task-template
dependencies: [Task1]
- name: Delay
template: deylay-template
dependencies: [Task2, Task3]
- name: Task4
template: task-template
dependencies: [Delay]
- name: task-template
script:
image: python:3.8-slim
command: [python]
source: |
print("Nimtechnology - Task executed.")
- name: deylay-template
suspend:
duration: "10s"
Summary
Steps Template and DAG Template are two types of templates used in Argo Workflows to build workflow pipelines.
Steps Template is a template used to create simple, independent, sequential and non-dependent tasks. The steps in the Steps Template will be executed in order, but if one step fails, the entire process will be canceled.
DAG Template, on the other hand, is a template used to create more complex workflows with dependencies between tasks. DAG stands for Directed Acyclic Graph, which means the tasks are represented as nodes in a graph, and the dependencies between them are represented as edges. In a DAG Template, tasks can be executed in parallel as long as their dependencies have been fulfilled.
In summary, the main difference between Steps Template and DAG Template in Argo Workflows is that Steps Template is used for simple, independent tasks, while DAG Template is used for complex workflows with dependencies between tasks.