Argo Rollouts 1.7 Release Candidate

Zach Aller
Argo Project
Published in
3 min readApr 15, 2024

--

Welcome Argo Rollouts 1.7! This release had 63 contributors, of which 41 were first-timers, and includes 255 commits! Thank you all for your contributions! This release is a bit overdue but has a lot of great new features. Let’s take a look!

Analysis Modal UI / Rollouts UI List View Refresh

Thanks to the great work done in collaboration with Emily Blixt from Credit Karma. We have a nice new UI addition for Analysis Runs, that allows users to view a graph providing a more visual insight into why an Analysis has failed. A screenshot below:

Contributed by: Emily Blixt and Ashutosh Singh

We also added a new list view to the Rollouts dashboard that will help when there are 100s of rollouts resources in a namespace. This view is much easier to navigate and has some improved filtering options as well. A quick screenshot is shown below:

Contributed by: Philip Clark

Reference AnalysisTemplates in AnalysisTemplate

This new feature allows you to reference analysis templates from another analysis template. Here is an example on how to configure this:

apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata:
name: rates
spec:
args:
- name: service-name
templates:
- templateName: success-rate
clusterScope: false
- templateName: error-rate
clusterScope: false

You can also include additional metrics within the template while still referencing other templates the docs describe this in more detail. This allows another way to centrally manage templates.

Contributed by: OpenGuidou

Add AnalysisRuns to Rollout Notifications

Argo Rollouts now also sends an array of analysis runs along with the rollout resource for use within the notifications templates. This allows you to bring in analysis run data into your notifications. Here is an example notification config that uses this feature.

  webhook:
add:
method: POST
headers:
- name: Content-Type
value: application/json
body: |
{"analysisRuns": {{toRawJson .analysisRuns}}, "rollout": {{toRawJson .rollout}}}

Contributed by: Ashutosh Singh

AnalysisRun TTLStrategy Support

AnalysisRun resources can be created outside of Argo Rollouts controller and used by other tools. A feature was added to Argo Rollouts to help manage this type of workflow. Argo Rollouts AnaysisRuns now have the ability to define a TTL strategy. An example policy is shown below:

apiVersion: argoproj.io/v1alpha1
kind: AnalysisRun
spec:
...
ttlStrategy:
secondsAfterCompletion: 3600
secondsAfterSuccess: 1800
secondsAfterFailure: 1800

Contributed by: kevinqian-db

Summary

This release boasts an array of exciting new features, particularly focused on analysis. Explore the comprehensive list of features below. Additionally, delve into the complete change log here, and don’t forget to try out the RC release, available here. A heartfelt thank you goes out to all those who contributed to this release.

Full Feature List

  • Support AnalysisRunMetadata and Dryrun for experiments via Rollout (#3213)
  • add analysis modal (#3174)
  • Reference AnalysisTemplates inside an AnalysisTemplate (#3353)
  • ping pong support for istio (#3371)
  • display init container images on the rollout dashboard (#3473)
  • add Analysis run to rollout notifications (#3296)
  • add the max traffic weight support for the traffic routing (nginx/plugins). (#3215)
  • allow analysis run to use separate kubeconfig for jobs (#3350)
  • expose secrets for notification templates (#3455) (#3466)
  • allow setting Traefik versions (#3348)
  • add command args for plugin (#2992)
  • support ability to run only the analysis controller (#3336)
  • Add support for aggregator type in DataDog metric provider (#3293)
  • Support OAuth2 for prometheus and web providers (#3038)
  • automatically scale down Deployment after migrating to Rollout (#3111)
  • Rollouts UI List View Refresh (#3118)
  • analysis: add ttlStrategy on AnalysisRun for garbage collecting stale AnalysisRun automatically (#3324)
  • dashboard: improve pods visibility (#3483)
  • trafficrouting: use values array for multiple accepted values under same header name (#2974)

--

--