New features¶
This is a concise list of new features. For a more detailed list, see the 3.6 blog post.
See the upgrade notes for information on breaking changes and deprecations.
UI¶
- #13519: The full name of the workflow is now visible in the list details of a workflow.
- #13284: Various time displays can be switched between relative and absolute ISO time.
- #10553: You can now use markdown in workflow titles and descriptions and it will be displayed in the UI.
- #12350: The UI will now show the directory used for input artifacts.
- #12873: You can also now see line numbers in the object view.
- #13452: WorkflowTemplate and ClusterWorkflowTemplate will show you their execution history like you can see for CronWorkflows.
- #12024: You will be able to see live logs from pods if retrieval of logs from archived workflows fails and the pod logs are available.
- #12674: CronWorkflows and WorkflowTemplates now display their title and descriptions in the list view.
- #12199: You can specify HTTP headers to use to detect IP addresses using the
IP_KEY_FUNC_HEADERS
environment variable. This is used in the rate limiter. - #13695: You can now retry a single node from a workflow, even if the workflow succeeded.
- #13610: You can now filter with prefixes and patterns in the workflow list.
- #13494: URLs are now clickable links in workflow node info
- #13511: You can now group nodes based on
templateRef
and see invoking template name instead of the execution order DAG.
Metrics¶
- #13265: The workflow controller can now emit metrics over OpenTelemetry GRPC protocol
- Many of the metrics have been updated which will require you to change how you use them and there are some new ones:
- #13269: Version information in the controller
- #13270: Is this controller the leader
- #13271: Kubernetes API calls duration
- #13272: Pod phase monitoring
- #13274: CronWorkflows counters
- #13497: CronWorkflows policy counters
- #13275: Workflow Template counters
- #13735: Counters to check if you're using deprecated features
- #11927: There is a new
retries
variable available in metrics describing the number of retries. - #11857: Pod missing metrics will be emitted before pods are created
General¶
- #13358: You can use multiple mutexes and semaphores in the same workflow or template, and use both type of lock at the same time
- #13419: The controller uses a queue when archiving workflows to improve memory management when archiving a large number of workflows at once
- #12441: Plugins can now be stopped, so that a stopped workflow will shutdown its plugin nodes
- The OSS artifact driver:
- #12419: Pod deletion will now happen in parallel to speed it up.
- #13360: You can use Shared Access Signatures to access artifacts stored in Azure.
- #12413: Workflow pods now have a kubernetes finalizer to try to prevent them being deleted prematurely
- #12325: Large environment variables will be offloaded to Config Maps
- #12328: Large and flat workflows where there are many steps that need resolving at the same time could time out during template referencing. This is now much faster.
- #12568: Kubernetes scheduling constraints such as node selectors and tolerations will now be honored where they are specified in a WorkflowTemplate. These will be applied to the task and step pods.
- #12984: The pods created by workflows will have a
seccompProfile
ofRuntimeDefault
by default. - #12842: You can now template the
name
andtemplate
in atemplateRef
. This allows for fully data driven workflow DAGs. - #13194: The expr library has been upgraded providing some new functions in expressions.
- #13746: Configuration option to avoid sending kubernetes Events for workflows.
- #13745: Added an option to skip workflow duration estimation because it can be expensive.
CronWorkflows¶
- #12616: You can now specify multiple cron schedules on a single CronWorkflow.
- #12305: You can also use a stop strategy on CronWorkflows to stop them running any more workflows after a set of conditions occur such as too many errors.
- #13474: CronWorkflows also now have a when expression to further tune which occurrences of the workflow will run and which may be skipped
CLI¶
- #12803: You can now update Cron Workflows, Workflow Templates and Cluster Workflow Templates with the
update
command via the CLI - #13364: You can selectively list workflow templates using a
-l
label selector - #13128: The CLI will now generate shell completions for the fish shell
- #12977: We also build and ship the CLI complied for Risc-V
- #12953: The lint command supports a
--no-color
flag - #13695: The
--output
flag is now validated
Build and Development¶
- #13000: There is now a
/retest
command for retesting PRs in Github that occasionally fail in a flakey test - #12867: You can supply your own HTTP client when using the go API client, allowing for adding a proxy