DAG
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: ejecucion-ballena-
namespace: argocd
spec:
entrypoint: orquestador-grafo
templates:
# El Director de Orquesta versión GAFO/DAG
- name: orquestador-grafo
dag:
tasks:
- name: tarea-clonar
template: clonar-codigo # No tiene dependencias, arranca de primero.
- name: tarea-test
template: ejecutar-tests
dependencies: [tarea-clonar] # Espera a que termine la clonación.
- name: tarea-sonar
template: analizar-codigo
dependencies: [tarea-clonar] # También espera a clonar, corre en paralelo con test.
- name: tarea-construir
template: construir-imagen
dependencies: [tarea-test, tarea-sonar] # ¡Espera a que AMBOS pasen con éxito!
- name: clonar-codigo
container:
image: argoproj/argosay:v2
command: [cowsay]
args: ["clonar-codigo"]
- name: ejecutar-tests
container:
image: argoproj/argosay:v2
command: [cowsay]
args: ["ejecutar-tests"]
- name: analizar-codigo
container:
image: argoproj/argosay:v2
command: [cowsay]
args: ["analizar-codigo"]
- name: construir-imagen
container:
image: argoproj/argosay:v2
command: [cowsay]
args: ["construir-imagen"]
Fail Fast
[!IMPORTANT] By default, DAGs fail fast: when one task fails, no new tasks will be scheduled. Once all running tasks are completed, the DAG will be marked as failed.
If failFast is set to false for a DAG, all branches will run to completion, regardless of failures in other branches.
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: ejecucion-ballena-
namespace: argocd
spec:
entrypoint: orquestador-grafo
templates:
# 1. El orquestador que solo define el Grafo (DAG) y las dependencias
- name: orquestador-grafo
dag:
failFast: true # Valor por defecto
tasks:
- name: tarea-clonar
template: template-clonar # Llama al template del contenedor
- name: tarea-test
template: template-test # Llama al template del contenedor
# 2. Plantilla independiente para la tarea de clonar (sleep)
- name: template-clonar
container:
image: busybox
command: [sh, -c]
args: ["sleep 300"]
# 3. Plantilla independiente para la tarea de test (error)
- name: template-test
container:
image: busybox
command: [sh, -c]
args: ["echo intentional failure; exit 1"]