Minh show cho các bạn trước yaml nhuôn.
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
name: wf-script-result
spec:
entrypoint: script-result
arguments:
parameters:
- name: message1
value: Task 1 is executed
- name: message2
value: Task 2 is executed
templates:
- name: script-result
inputs:
parameters:
- name: message1
- name: message2
dag:
tasks:
- name: Task1
arguments:
parameters: [{name: text, value: "{{inputs.parameters.message1}}"}]
template: task-template
- name: Task2
arguments:
parameters: [{name: text, value: "{{inputs.parameters.message2}}"}]
template: task-template
dependencies: [Task1]
- name: Task3
template: task-output
dependencies: [Task1]
- name: Task4
arguments:
parameters: [{name: text, value: "{{tasks.Task3.outputs.result}}"}]
template: task-template
dependencies: [Task2, Task3]
- name: task-template
inputs:
parameters:
- name: text
script:
image: python:3.8-slim
command: [python]
source: |
p = "{{inputs.parameters.text}}"
print(p)
- name: task-output
script:
image: node:9.1-alpine
command: [node]
source: |
var out = "Print result";
console.log(out);
- name: deylay-template
suspend:
duration: "10s"
Bạn sẽ thấy là task3 nó output ra “Print result” -> task4 lấy output của task3 đưa vào input parameter của task4
Khi run thì mình bị lỗi như sau:
Dịch ra trong role đang thiếu verbs: patch giờ bạn thêm nó vào là ok.
Nếu anh/em sài rancher cũng khá tiện vị rancher list hết các verbs chỉ cần click thôi
Kiểm tra trên argocd thì thấy nó đã thêm patch trên verbs:
Giờ mà task4 nhận được output của task3 và task4 output được chữ “Print result” là ngon