What’s New in Argo Workflows 3.6? Deep Dive into Key Features
This article provides a comprehensive overview of Argo Workflows 3.6, covering its core architecture, primary use cases, and detailed explanations of new capabilities such as enhanced CronWorkflow scheduling, UI improvements, controller optimizations, OSS artifact garbage collection, dynamic template references, expression library updates, and CLI usability enhancements.
Introduction
Argo Workflows is a CNCF graduated project designed to orchestrate parallel jobs on Kubernetes by running each task in its own container. It is lightweight, highly scalable, and suitable for batch processing, machine‑learning pipelines, infrastructure automation, and CI/CD.
Key Use Cases
Batch processing : declarative definition of large‑scale ETL or reporting jobs.
Machine‑learning workflows : coordinate data preprocessing, model training, hyper‑parameter tuning and deployment, with GPU scheduling.
Infrastructure automation : create/configure K8s resources, perform backup/restore, monitor health.
CI/CD pipelines : integrate build, test, and deployment steps into automated pipelines.
New Features in Version 3.6
CronWorkflow enhancements
Multiple cron schedules per workflow.
Stop strategy to halt scheduling after a failure threshold.
When expression to evaluate a condition before each run.
Example:
apiVersion: argoproj.io/v1alpha1
kind: CronWorkflow
metadata:
name: cron-workflow-example
spec:
schedules:
- "*/3 * * * *"
- "*/5 * * * *"
concurrencyPolicy: "Allow"
stopStrategy:
condition: "failed >= 10"
when: "{{= cronworkflow.lastScheduledTime == nil || (now() - cronworkflow.lastScheduledTime).Seconds() > 3600 }}"
startingDeadlineSeconds: 0
workflowSpec:
entrypoint: whalesay
templates:
- name: whalesay
container:
image: alpine:3.6
command: [sh, -c]
args: ["date; sleep 1"]UI improvements
The Argo UI now shows detailed workflow information, timestamps, artifact directories, and supports Markdown. Users can view execution history and real‑time logs for CronWorkflows and WorkflowTemplates.
Controller enhancements
Workflow archiving uses a queue to improve memory handling.
Parallel Pod cleanup for large retries.
Pod finalizer to avoid premature deletion errors.
Flat workflow parallel parsing for faster large‑workflow processing.
Automatic offload of large parameters.
Seccomp profile defaults to RuntimeDefault for better container security.
OSS Artifacts automatic garbage collection
Configure artifactGC to delete intermediate files from Alibaba Cloud OSS when a workflow completes or is deleted, reducing storage costs.
Example:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: artifact-gc-
spec:
entrypoint: main
artifactGC:
strategy: OnWorkflowDeletion
templates:
- name: main
container:
image: argoproj/argosay:v2
command: [sh, -c]
args: ["echo \"hello world\" > /tmp/on-completion.txt"]
outputs:
artifacts:
- name: on-completion
path: /tmp/on-completion.txt
oss:
endpoint: http://oss-cn-zhangjiakou-internal.aliyuncs.com
bucket: my-argo-workflow
key: on-completion.txt
accessKeySecret:
name: my-argo-workflow-credentials
key: accessKey
secretKeySecret:
name: my-argo-workflow-credentials
key: secretKey
artifactGC:
strategy: OnWorkflowCompletionTemplate scheduling constraints
Templates can now specify nodeSelector and tolerations to control pod placement.
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
name: benchmarks
spec:
entrypoint: main
serviceAccountName: workflow
templates:
- dag:
tasks:
- name: benchmark
template: benchmark
arguments:
parameters:
- name: msg
value: 'hello'
name: main
nodeSelector:
pool: workflows
tolerations:
- key: pool
operator: Equal
value: workflows
- name: benchmark
script:
image: python:latest
command: [python]
source: |
print("{{inputs.parameters.msg}}")Dynamic template references
Templates can be referenced dynamically using parameters, simplifying workflow definitions.
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: hello-world-wf-global-arg-
spec:
entrypoint: whalesay
arguments:
parameters:
- name: global-parameter
value: hello
templates:
- name: whalesay
steps:
- - name: hello-world
templateRef:
name: '{{item.workflow-template}}'
template: '{{item.template-name}}'
withItems:
- {workflow-template: 'hello-world-template-global-arg', template-name: 'hello-world'}
- name: hello-world-dag
template: diamond
- name: diamond
dag:
tasks:
- name: A
templateRef:
name: '{{item.workflow-template}}'
template: '{{item.template-name}}'
withItems:
- {workflow-template: 'hello-world-template-global-arg', template-name: 'hello-world'}Expression library updates
New functions for list concatenation and string joining are available.
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: test-expression-
spec:
entrypoint: main
arguments:
parameters:
- name: expr
value: "{{= concat(['a','b'], ['c','d']) | join('\
') }}"
templates:
- name: main
inputs:
parameters:
- name: expr
script:
image: alpine:3.6
command: ["sh"]
source: |
echo result: '{{ inputs.parameters.expr }}'CLI usability improvements
Argo CLI now supports direct template updates and label‑based filtering.
argo cron update FILE1
argo template update FILE1
argo cluster-template update FILE1
argo template list -l app=testQuick Start
To submit a workflow, install the Argo CLI, create a YAML definition, and run argo submit my-workflow.yaml. A fully managed, serverless version of Argo Workflows is also offered on Alibaba Cloud Container Service, providing a no‑ops experience with REST API and Python SDK.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Alibaba Cloud Native
We publish cloud-native tech news, curate in-depth content, host regular events and live streams, and share Alibaba product and user case studies. Join us to explore and share the cloud-native insights you need.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
