Skip to content

NimTechnology

Trình bày các công nghệ CLOUD một cách dễ hiểu.

  • Kubernetes & Container
    • Docker
    • Kubernetes
      • Ingress
      • Pod
    • Helm Chart
    • OAuth2 Proxy
    • Isito-EnvoyFilter
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Vault
    • Longhorn – Storage
    • VictoriaMetrics
    • MetalLB
    • Kong Gateway
  • CI/CD
    • ArgoCD
    • ArgoWorkflows
    • Argo Events
    • Spinnaker
    • Jenkins
    • Harbor
    • TeamCity
    • Git
      • Bitbucket
  • Coding
    • DevSecOps
    • Terraform
      • GCP – Google Cloud
      • AWS – Amazon Web Service
      • Azure Cloud
    • Golang
    • Laravel
    • Python
    • Jquery & JavaScript
    • Selenium
  • Log, Monitor & Tracing
    • DataDog
    • Prometheus
    • Grafana
    • ELK
      • Kibana
      • Logstash
  • BareMetal
    • NextCloud
  • Toggle search form

[Argo-Workflows] Lesson16: Depends

Posted on April 11, 2023 By nim No Comments on [Argo-Workflows] Lesson16: Depends

Ở các bài trước chúng ta đã sử dụng dependencies là task A chạy xong thì đến task B

Hôm nay chúng ta sẽ đi advance hơn về depends.
Nếu task A Succeeded thì mới chạy task B

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  name: wf-depends
spec:
  entrypoint: dag-template
  arguments:
    parameters:
    - name: messageA
      value: A
    - name: messageB
      value: B

  templates:
  - name: dag-template
    inputs:
      parameters:
      - name: messageA
      - name: messageB
    dag:
      tasks:
      - name: Task1
        arguments:
          parameters: [{name: text, value: "{{inputs.parameters.messageA}}"}]
        template: task-decision
      - name: TaskA
        template: task-a
        depends: Task1.Succeeded
        when: "{{tasks.Task1.outputs.result}} == A"
      - name: TaskB
        template: task-b
        depends: Task1.Succeeded
        when: "{{tasks.Task1.outputs.result}} == B"
      - name: TaskD
        template: task-d
        depends: TaskB.Skipped


  - name: task-decision
    inputs:
      parameters: 
      - name: text
    script:
      image: python:3.8-slim
      command: 
      source: |
        p = "{{inputs.parameters.text}}"
        print(p)

  - name: task-a
    script:
      image: python:3.8-slim
      command: 
      source: |
        print("Task A was executed")
  
  - name: task-b
    script:
      image: python:3.8-slim
      command: 
      source: |
        print("Task B was executed")
  
  - name: task-c
    script:
      image: python:3.8-slim
      command: 
      source: |
        print("Task C was executed")

  - name: task-d
    script:
      image: python:3.8-slim
      command: 
      source: |
        print("Task D was executed")

Bạn có thể thấy là TaskA sẽ chạy nếu task 1 Succeeded.
TaskD sẽ chạy khi mà taskB bị skip

Và đây là thành quả.

Ngoài ra chúng ta còn các status result khác.

Tiếp đến Logic

ArgoWorkflows

Post navigation

Previous Post: [Argo-Workflows] Lesson15: Conditionals
Next Post: [Argo-Workflows] Lesson17: Retry strategy

More Related Articles

[ArgoWorkflows] Lesson2: Demo Steps Template and DAG Template on ArgoWorkflows ArgoWorkflows
[Argo-Workflows] Lesson17: Retry strategy ArgoWorkflows
[Argo-Workflows] Lesson19: Workflow Template ArgoWorkflows
[Argo-Workflows] Lesson23: Creating a Master Workflow ArgoWorkflows
[Argo-Workflows] Lesson14: Dynamic Loops ArgoWorkflows
[Argo-Workflows] Lesson22: Reference to Workflow Templates ArgoWorkflows

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Tham Gia Group DevOps nhé!
Để Nim có nhiều động lực ra nhiều bài viết.
Để nhận được những thông báo mới nhất.

Recent Posts

  • [Laravel] Laravel Helpful June 26, 2025
  • [VScode] Hướng dẫn điều chỉnh font cho terminal June 20, 2025
  • [WordPress] Hướng dấn gửi mail trên WordPress thông qua gmail. June 15, 2025
  • [Bitbucket] Git Clone/Pull/Push with Bitbucket through API Token. June 12, 2025
  • [Teamcity] How to transfer the value from pipeline A to pipeline B June 9, 2025

Archives

  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021

Categories

  • BareMetal
    • NextCloud
  • CI/CD
    • Argo Events
    • ArgoCD
    • ArgoWorkflows
    • Git
      • Bitbucket
    • Harbor
    • Jenkins
    • Spinnaker
    • TeamCity
  • Coding
    • DevSecOps
    • Golang
    • Jquery & JavaScript
    • Laravel
    • NextJS 14 & ReactJS & Type Script
    • Python
    • Selenium
    • Terraform
      • AWS – Amazon Web Service
      • Azure Cloud
      • GCP – Google Cloud
  • Kubernetes & Container
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Docker
    • Helm Chart
    • Isito-EnvoyFilter
    • Kong Gateway
    • Kubernetes
      • Ingress
      • Pod
    • Longhorn – Storage
    • MetalLB
    • OAuth2 Proxy
    • Vault
    • VictoriaMetrics
  • Log, Monitor & Tracing
    • DataDog
    • ELK
      • Kibana
      • Logstash
    • Fluent
    • Grafana
    • Prometheus
  • Uncategorized
  • Admin

Copyright © 2025 NimTechnology.