Argo Workflows v2.9

--

Welcome to AppDirect, Graviti, Habx, Isbank, and Ravelin!

v2.9 contains 135 pull request from 35 contributors.

This release has had a longer cycle than recent ones, so we’re going to provide a release candidate sooner too.

Release notes.

Workflow Template Ref

In most of workflow use-cases, the workflow definitions are static and only parameters and artifacts change. But still you need to submit entire workflow definitions.

In order to make life easier, the workflow templates were introduced in version v2.4, but you still needed to define the minimal workflow definition which contains entry template, global arguments, PVC, TTL Strategy, etc… to refer the workflow template.

With v2.9, you can just reference the workflow template using workflow template ref and define global arguments, PVC, TTL Strategy, etc… in workflow template. E.g.:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: workflow-template-hello-world-
spec:
workflowTemplateRef:
name: workflow-template-submittable

Learn more about workflow templates and cluster workflow templates.

Enhanced Depends Logic

Previous to v2.8, the only way to specify dependencies in DAG templates was to use the dependencies field and specify a list of other tasks the current task depends on. This syntax was limiting because it does not allow the user to specify which result of the task to depend on. For example, a task may only be relevant to run if the dependent task succeeded (or failed, etc.).

In v2.9 there exists a new field called depends, which allows users to specify dependent tasks, their statuses, as well as any complex boolean logic. The field is a string field and the syntax is expression-like with operands having form <task-name>.<task-result>, e.g.:

depends: "(task-1.Succeeded || task-2.Failed) && task-3.Daemoned"

Learn more.

Scalability

v2.9 introduces a number of changes to improve the performance when you have many (i.e. 1000s) of workflows, or you have especially large (i.e. 2000+ node) workflows:

Many workflows:

  • Developed cost optimisation strategies that reduce the total number of workflows.
  • Added UI nudges when a workflow is not cost optimised.
  • Simplify the UI list to show less information.
  • Improved the argo list command to paginate more effectively.

Large workflows:

  • Expose Kubernetes QPS and burst options for controller allowing large numbers of pods to be created quicker.
  • Re-wrote the graph to render an order of magnitude faster, as well as remembering your display preferences.
A Large Workflow

Read more about scaling and cost optimisation.

Single Sign On (SSO)

In many organisations, using the current authentication modes doesn’t support new users well, as it requires Kubernetes knowledge. You can now secure the UI using SSO for those users.

SSO Demo

Learn more.

UI and CLI Enhancements

  • New options when listing and deleting from the CLI, making it easier to delete older workflows.
  • Improved UI security, notable the UI container is hermetically sealed (i.e. it does not reach out for remote resources) for secure environments.
  • You can now suspend and resume cron workflows in the UI.
  • A new drawer that allows you to inspect a workflow without leaving the list view, helping you inspect many workflow easily.
Workflow Drawer

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Responses (1)

Write a response