Releases: argoproj/argo-rollouts
v1.3.0-rc2
Quickstart
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/download/v1.3.0-rc2/install.yaml
Changes since v1.3.0-rc1
New Features
Bug Fixes
- fix: rootPath support so that it uses the embedded files system by @zachaller in #2198
- fix: change completed condition so it only triggers on pod hash changes by @zachaller in #2203
v1.3.0-rc1
Quickstart
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/download/v1.3.0-rc1/install.yaml
Changes since v1.2.0
New Features
- feat(grafana): Allow selecting datasource for grafana dashboard. Closes #1987 by @jcantosz in #1988
- feat: Ability for lint command to inspect referenced resources by @zachaller in #2030
- feat: Adds support for Istio traffic mirroring by @zachaller in #2074
- feat: Allow Traffic shaping through header based routing. Fixes #474 by @perenesenko in #1990
- feat: ArgoRollouts dashboard now supporting rootpath by @schakrad in #2075
- feat: Make prometheus server address optional/centrally configured by @RaviHari in #1956
- feat: Report notification metrics for rollouts by @RaviHari in #1856
- feat: Traefik support. Fixes #516 by @PhilippPlotnikov in #1907
- feat: add support for influxdb as a metrics provider by @jaymebrd in #1839
- feat: emit rollout delete event by @huikang in #1893
- feat: support
/rollouts/:namespace?q=...
and/rollout/:namespace/:name
(#1538) by @Cylix in #1902 - feature: Dashboard displaying the setCanaryScale values by @schakrad in #1923
- feature: Dashboard now displaying analysis details by @schakrad in #1910
Bug Fixes
- fix(RBAC): Add watch verb to clusterRole for pods. Fixes #1960 by @ansilh in #1961
- fix(analysis): Fix Analysis Terminal Decision For Dry-Run Metrics by @agrawroh in #2131
- fix(dashboard): Add list and watch verbs to clusterrole. Fixes #2141 by @EagleIJoe in #2145
- fix(docs) Graphite metrics provider linked in docs sidebar. Fixes #2102. by @mdb in #2094
- fix: Add pagination to FindLoadBalancerByDNSName by @zachaller in #1971
- fix: Change behavior of rollout to not check for availability during rollout and fix flakey e2e tests by @zachaller in #1957
- fix: Failed to process: Object 'Kind' is missing in Errors with rollouts notification by @RaviHari in #2150
- fix: High reconciliation activity and CPU load for invalid rollout by @perenesenko in #2091
- fix: UI codegen by @zachaller in #2072
- fix: Update ro.Status.ALB when first creating rollout object by @zachaller in #1986
- fix: Use actual weight from status field on rollout object by @zachaller in #1937
- fix: argo-rollouts occasionally crashes in argoproj/pkg by @perenesenko in #2111
- fix: build/lint is broken due to dependencies changes by @zachaller in #1958
- fix: missing lb event by @zachaller in #2021
- fix: notifications when condition by @RaviHari in #2066
- fix: remove metrics when objects are removed from cluster to prevent build up by @zachaller in #2115
Doc updates and Chore
- chore: Change bug template to bring inline with argocd by @zachaller in #2096
- chore: Update membership permissions. by @zachaller in #2112
- chore: upgrade deps by @zachaller in #2136
- chore: Clarify doc for Rollout.spec.progressDeadlineAbort by @ivanov-vovan in #1974
- chore: Add e2e and unit test comment reports by @zachaller in #2123
- chore: Improve image build speed #1919 by @34fathombelow in #1948
- chore: Improve image build speed by @34fathombelow in #1919
- chore: Pin golang to 1.17 to avoid CVEs in docker image by @bduverger in #1920
- chore: Upgrade golang by @zachaller in #2160
- chore: improve openapi schema by @mvgmb in #2081
- chore: update version file by @huikang in #2013
- chore: use controler-gen for cluster analysis template scope by @zachaller in #2148
- docs: add WorkloadRef to Rollout spec by @danielhelfand in #2019
- docs: add selector to migrating page by @zachaller in #2039
- docs: expose/fix Traefik docs by @kostis-codefresh in #2017
- docs: fix !important block typo in canary doc by @thomas-riccardi in #2016
- docs: steps to rollback to deployment kinds by @huikang in #2014
- docs: update release doc with brew formula details by @leoluz in #2165
New Contributors
- @34fathombelow made their first contribution in #1919
- @ansilh made their first contribution in #1961
- @bduverger made their first contribution in #1920
- @ivanov-vovan made their first contribution in #1974
- @PhilippPlotnikov made their first contribution in #1907
- @thomas-riccardi made their first contribution in #2016
- @jaymebrd made their first contribution in #1839
- @mvgmb made their first contribution in #2081
- @jcantosz made their first contribution in #1988
- @Cylix made their first contribution in #1902
- @EagleIJoe made their first contribution in #2145
Full Changelog: v1.2.0...v1.3.0-rc1
v1.2.2
v1.2.1
Quickstart
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/download/v1.2.1/install.yaml
Changes from v1.2.0
- fix: Add pagination to FindLoadBalancerByDNSName
- fix: missing lb event
- fix: Use actual weight from status field on rollout object
- fix: build/lint is broken due to dependencies changes
v1.2.0
Quickstart
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/download/v1.2.0/install.yaml
Notable Features
- Analysis Dry Run
- Weighted Experiment Steps
- Ping-Pong Service Management
- Customizable Metric Retention
- AWS AppMesh Traffic Routing Support
- Support for simultaneous multiple traffic providers
- Support for PUT/POST in web metric providers
- HA (active-passive) leader election
- Networking v1 Support (K8s v1.22)
- Additional metadata from analysis providers (i.e. for debugging)
- Scalability & performance improvements (higher/tunable K8s QPS/Burst settings)
Changes since v1.0
What's Changed
- feat: HA Leader election support on rollouts-controller by @huikang in #1519
- docs: example data is used in both examples by @huynhj93 in #1570
- docs: Added readthedocs configuration. Groundwork for solving #1518 by @kostis-codefresh in #1528
- fix: viewcontroller gorouting leak in status and get subcommand by @huikang in #1584
- fix: release the dashboard-install.yaml by @perenesenko in #1601
- docs: Add Akuity to the list of users by @terrytangyuan in #1598
- feat: Istio Host-level TrafficRouting with experiment step by @khhirani in #1569
- feat(controller): multiple TrafficRoutingReconciler by @fblgit in #1472
- Support Ingress from Networking API version by @leoluz in #1529
- fix: Handle minor version with '+' when determining ingress mode (#1529) by @kiranmeduri in #1612
- fix(docs): minor mis-type fix, and formatting by @noam-codefresh in #1613
- feat(webmetric): Support POST/PUT content with web metrics. Fixes #371 by @noam-codefresh in #1573
- fix: rollout experiment template changing reference rs template labels. Fixes #1596 by @flaviolemos78 in #1597
- feat: add healthz probe port and update the install.yaml by @huikang in #1578
- fix: inconsistent status command output by @huikang in #1433
- feat(manifests): Add Age column to all CRD(s). Fixes #1511 by @yashmehrotra in #1527
- fix: validate service selctor labels matching rollout template labels by @huikang in #1618
- chore: update k8s pkg to resolve vulnerabilities by @huikang in #1545
- fix(e2e): DeFlake E2E Tests #1647 by @agrawroh in #1648
- fix: nginx traffic router patching wrong ingress resource by @leoluz in #1655
- fix(docs): Remove Non-Existent Metrics From Docs by @agrawroh in #1650
- feat: Istio Subset-Level TrafficRouting with experiment step by @khhirani in #1602
- feat(alb): Surface ALB information into rollout status (#1241) by @noam-codefresh in #1625
- fix: Route traffic to Experiment even if Canary RS not scaled by @khhirani in #1638
- fix: Promote-full with TrafficRouting waits for all canary pods to come up by @khhirani in #1663
- fix: Modify Experiment collision naming from dot-notation to dash by @khhirani in #1646
- fix: add service delete to argo-rollouts role by @khhirani in #1632
- fix: Fixed NPE while getting the ReplicaSet labels by @agrawroh in #1664
- fix: reset the progress condition when a pod is restarted by @huikang in #1649
- docs: Add link to awesome-argo for more resources by @terrytangyuan in #1622
- feat: added Argo version info in /metrics endpoint by @smaloo-salesforce in #1662
- fix: sending updates to dashboard when a pod terminates by @perenesenko in #1642
- feat(analysis): Add Dry-Run Mode by @agrawroh in #1627
- docs(analysis): add missing explanation about failureLimit by @huikang in #1674
- feat: increase default QPS/Burst to 40/80. Allow values to be tunable by @jessesuen in #1679
- fix: use patch to update workload-generation annotation by @alexmt in #1678
- chore: pin sys module in go.mod to resolve a fatal runtime execution in go 1.17 by @huikang in #1692
- fix: missing rollout informer writeback by @jessesuen in #1698
- refactor: stop using mpatch by @alexmt in #1654
- chore: fix flaky TestAbortRolloutAfterFailedExperiment test by @alexmt in #1710
- fix(controller): Sticky session correction for AWS ALB. Fixes #1572 by @derjust in #1577
- docs: Clarify application dependencies by @kostis-codefresh in #1706
- chore(docs): Updated FAQs by @pbaderia01 in #1695
- feat(experiment): Added DryRun analysis mode functionality for experiments by @agrawroh in #1691
- docs: fix some vague description about analysis arguments by @huikang in #1672
- docs: Use readthedocs versioning. Closes #1518 by @kostis-codefresh in #1671
- chore(deps): bump github.com/evanphx/json-patch/v5 from 5.2.0 to 5.6.0 by @dependabot in #1603
- chore(deps): bump codecov/codecov-action from 2.0.3 to 2.1.0 by @dependabot in #1508
- fix: Enable default triggers for argo rollouts by @RaviHari in #1689
- fix: leaderelection uses the lock in the same ns as the controller by @huikang in #1717
- fix: dashboard promote buttons disabled during deploy by @bpoland in #1669
- fix: e2e istio crd; deprecated apiextensions/v1beta1 by @huikang in #1740
- fix(plugin): Fixes arm64 compatibility to plugin docker image. Fixes #1728 by @cguertin14 in #1732
- chore: update docs for minikube 1.19 by @crenshaw-dev in #1746
- docs: Remove duplicate sentence by @mubarak-j in #1756
- fix: traffic routed canary would flap traffic to stable after last step by @perenesenko in #1757
- docs: clarify the setCanaryScale of Dynamic Canary Scale by @huikang in #1703
- feat(analysis): Add Measurements Retention Limit Option for Metrics by @agrawroh in #1729
- fix: missing array type in the CRD rollout's spec volumes by @huikang in #1737
- docs: Add notiication templates for rollouts and analysis by @RaviHari in #1753
- docs: mention default notification templates by @kostis-codefresh in #1725
- feat(analysis): Allow analysis arguments to get valueFrom Rollout status (#1242) by @noam-codefresh in #1629
- chore: make ci/local codegen consistent by @jessesuen in #1772
- chore: ALB status should be a pointer by @jessesuen in #1766
- chore: upgrade k8s libraries to v1.22 by @jessesuen in #1773
- fix!: improve basic canary approximation accuracy and honor maxSurge by @jessesuen in #1759
- docs: Add Ibotta to the list of users by @mubarak-j in #1744
- docs: Add Gllue to list of users by @icecoffee531 in #1745
- fix: continue update process in middle of update if spec.replicas is 0 by @huikang in #1764
- feat(rollout): Add Measurements Retention Limit Option for Metrics by @agrawroh in #1780
- docs: fix doc for valueFrom fields for analysis args by @harikrongali in #1763
- fix: retry Experiment ReplicaSet scaling conflict errors by @jessesuen in #1778
- refactor: controller could panic in scaling events with analysis by @jessesuen ...
v1.2.0-rc2
Changes since v1.2.0-rc1
- docs: Add a toggle for dark mode
- docs: Add new line
- docs: Fix lint
- docs: Fix codegen of mkdocs.yaml
- feat: Added delay button in the scaled down revision
- fix: add workaround to fix 'stream terminated by RST_STREAM with error code: PROTOCOL_ERROR'
- docs: add community section to README.md
v1.2.0-rc1
Notable Features
- Analysis Dry Run
- Weighted Experiment Steps
- Ping-Pong Service Management
- Customizable Metric Retention
- AWS AppMesh Traffic Routing Support
- Support for simultaneous multiple traffic providers
- Support for PUT/POST in web metric providers
- HA (active-passive) leader election
- Networking v1 Support (K8s v1.22)
- Additional metadata from analysis providers (i.e. for debugging)
- Scalability & performance improvements (higher/tunable K8s QPS/Burst settings)
Changes since v1.0
- feat: HA Leader election support on rollouts-controller by @huikang in #1519
- docs: example data is used in both examples by @huynhj93 in #1570
- docs: Added readthedocs configuration. Groundwork for solving #1518 by @kostis-codefresh in #1528
- fix: viewcontroller gorouting leak in status and get subcommand by @huikang in #1584
- fix: release the dashboard-install.yaml by @perenesenko in #1601
- docs: Add Akuity to the list of users by @terrytangyuan in #1598
- feat: Istio Host-level TrafficRouting with experiment step by @khhirani in #1569
- feat(controller): multiple TrafficRoutingReconciler by @fblgit in #1472
- Support Ingress from Networking API version by @leoluz in #1529
- fix: Handle minor version with '+' when determining ingress mode (#1529) by @kiranmeduri in #1612
- fix(docs): minor mis-type fix, and formatting by @noam-codefresh in #1613
- feat(webmetric): Support POST/PUT content with web metrics. Fixes #371 by @noam-codefresh in #1573
- fix: rollout experiment template changing reference rs template labels. Fixes #1596 by @flaviolemos78 in #1597
- feat: add healthz probe port and update the install.yaml by @huikang in #1578
- fix: inconsistent status command output by @huikang in #1433
- feat(manifests): Add Age column to all CRD(s). Fixes #1511 by @yashmehrotra in #1527
- fix: validate service selctor labels matching rollout template labels by @huikang in #1618
- chore: update k8s pkg to resolve vulnerabilities by @huikang in #1545
- fix(e2e): DeFlake E2E Tests #1647 by @agrawroh in #1648
- fix: nginx traffic router patching wrong ingress resource by @leoluz in #1655
- fix(docs): Remove Non-Existent Metrics From Docs by @agrawroh in #1650
- feat: Istio Subset-Level TrafficRouting with experiment step by @khhirani in #1602
- feat(alb): Surface ALB information into rollout status (#1241) by @noam-codefresh in #1625
- fix: Route traffic to Experiment even if Canary RS not scaled by @khhirani in #1638
- fix: Promote-full with TrafficRouting waits for all canary pods to come up by @khhirani in #1663
- fix: Modify Experiment collision naming from dot-notation to dash by @khhirani in #1646
- fix: add service delete to argo-rollouts role by @khhirani in #1632
- fix: Fixed NPE while getting the ReplicaSet labels by @agrawroh in #1664
- fix: reset the progress condition when a pod is restarted by @huikang in #1649
- docs: Add link to awesome-argo for more resources by @terrytangyuan in #1622
- feat: added Argo version info in /metrics endpoint by @smaloo-salesforce in #1662
- fix: sending updates to dashboard when a pod terminates by @perenesenko in #1642
- feat(analysis): Add Dry-Run Mode by @agrawroh in #1627
- docs(analysis): add missing explanation about failureLimit by @huikang in #1674
- feat: increase default QPS/Burst to 40/80. Allow values to be tunable by @jessesuen in #1679
- fix: use patch to update workload-generation annotation by @alexmt in #1678
- chore: pin sys module in go.mod to resolve a fatal runtime execution in go 1.17 by @huikang in #1692
- fix: missing rollout informer writeback by @jessesuen in #1698
- refactor: stop using mpatch by @alexmt in #1654
- chore: fix flaky TestAbortRolloutAfterFailedExperiment test by @alexmt in #1710
- fix(controller): Sticky session correction for AWS ALB. Fixes #1572 by @derjust in #1577
- docs: Clarify application dependencies by @kostis-codefresh in #1706
- chore(docs): Updated FAQs by @pbaderia01 in #1695
- feat(experiment): Added DryRun analysis mode functionality for experiments by @agrawroh in #1691
- docs: fix some vague description about analysis arguments by @huikang in #1672
- docs: Use readthedocs versioning. Closes #1518 by @kostis-codefresh in #1671
- chore(deps): bump github.com/evanphx/json-patch/v5 from 5.2.0 to 5.6.0 by @dependabot in #1603
- chore(deps): bump codecov/codecov-action from 2.0.3 to 2.1.0 by @dependabot in #1508
- fix: Enable default triggers for argo rollouts by @RaviHari in #1689
- fix: leaderelection uses the lock in the same ns as the controller by @huikang in #1717
- fix: dashboard promote buttons disabled during deploy by @bpoland in #1669
- fix: e2e istio crd; deprecated apiextensions/v1beta1 by @huikang in #1740
- fix(plugin): Fixes arm64 compatibility to plugin docker image. Fixes #1728 by @cguertin14 in #1732
- chore: update docs for minikube 1.19 by @crenshaw-dev in #1746
- docs: Remove duplicate sentence by @mubarak-j in #1756
- fix: traffic routed canary would flap traffic to stable after last step by @perenesenko in #1757
- docs: clarify the setCanaryScale of Dynamic Canary Scale by @huikang in #1703
- feat(analysis): Add Measurements Retention Limit Option for Metrics by @agrawroh in #1729
- fix: missing array type in the CRD rollout's spec volumes by @huikang in #1737
- docs: Add notiication templates for rollouts and analysis by @RaviHari in #1753
- docs: mention default notification templates by @kostis-codefresh in #1725
- feat(analysis): Allow analysis arguments to get valueFrom Rollout status (#1242) by @noam-codefresh in #1629
- chore: make ci/local codegen consistent by @jessesuen in #1772
- chore: ALB status should be a pointer by @jessesuen in #1766
- chore: upgrade k8s libraries to v1.22 by @jessesuen in #1773
- fix!: improve basic canary approximation accuracy and honor maxSurge by @jessesuen in #1759
- docs: Add Ibotta to the list of users by @mubarak-j in #1744
- docs: Add Gllue to list of users by @icecoffee531 in #1745
- fix: continue update process in middle of update if spec.replicas is 0 by @huikang in #1764
- feat(rollout): Add Measurements Retention Limit Option for Metrics by @agrawroh in #1780
- docs: fix doc for valueFrom fields for analysis args by @harikrongali in #1763
- fix: retry Experiment ReplicaSet scaling conflict errors by @jessesuen in #1778
- refactor: controller could panic in scaling events with analysis by @jessesuen in #1699
- fix: delay service injection of selector labels until ReplicaSet available by @jessesuen in #1777...
v1.1.1
Quickstart
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/download/v1.1.1/install.yaml
Changes since v1.1.0
Bug Fixes
- fix: Route traffic to Experiment even if Canary RS not scaled (#1638)
- fix: Wait for all canary pods to come up in TrafficRouting canary before switching traffic (#1663)
- fix: inconsistent status command output (#1433)
- fix: add service delete to argo-rollouts role (#1632)
- fix: Fixed NPE while getting the ReplicaSet labels (#1664)
- fix: reset the progress condition when a pod is restarted (#1649)
- fix: Modify Experiment collision naming from dot-notation to dash (#1646)
- fix: release the dashboard-install.yaml (#1601)
- fix: rollout experiment template changing reference rs template labels. Fixes #1596 (#1597)
- fix: viewcontroller gorouting leak in status and get subcommand (#1584)
v1.1.0
Quickstart
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/download/v1.1.0/install.yaml
Notable Features
- Rollout Notifications
- Dynamic scaling of stable ReplicaSet (dynamicStableScale)
- Automated rollbacks without analysis (progressDeadlineAbort)
- Kustomize Open API Schema
- Rollout Dashboard as a Service
- Control scaleDown during abort (abortScaleDownDelaySeconds)
- Analysis: AWS CloudWatch Metric Provider
- AWS TargetGroup IP Verification
- Weighted Experiment Steps with Traffic Routing
- Istio: Multicluster Support
- Istio: TLS Route Support
- Istio: Multiple VirtualServices
- AnalysisRun GC
- Analysis: Graphite Metric Provider
Upgrade Notes
Difference in scale down behavior during aborts
The v1.1 abortScaleDownDelaySeconds
feature now allows users full control over the scaling
behavior of the canary/preview ReplicaSet during an abort. Previously in v1.0, it was not possible
to affect this behavior. As part of this feature, v1.1 also fixes some inconsistencies in behavior
with respect to abort scale down.
The most notable change is that upon an abort, the blue-green preview ReplicaSet in v1.1 will now
scale down 30 seconds after the abort, whereas in v1.0 the preview ReplicaSet was left running
indefinitely (without any option to scale it down). If you prefer the v1.0 behavior, you can set
abortScaleDownDelaySeconds: 0
, which will leave the preview ReplicaSet running indefinitely
on abort:
spec:
strategy:
blueGreen:
abortScaleDownDelaySeconds: 0
Please read the full
documentation to understand
the differences in canary/preview scaling behavior for aborted Rollouts from v1.0 to v1.1.
Changes since v1.0
Controller
- feat: support dynamic scaling of stable ReplicaSet as inverse of canary weight (#1430)
- fix: promote nil pointer error when there are no steps (#1510)
- feat: support management of multiple Istio VirtualService objects (#1381)
- feat: verify AWS TargetGroup after updating active/stable services (#1348)
- feat: ALB TrafficRouting with experiment step
- feat: TrafficRouting SMI with Experiment Step in Canary (#1351)
- feat: ability to abort an update when exceeding progressDeadlineSeconds (#1397)
- feat: add support for Istio VirtualService spec.tls[] (#1380)
- feat: configurable and more aggressive cleanup of old AnalysisRuns and Experiments (#1342)
- feat: ability to auto-create Services for each template in an Experiment (#1158)
- feat: introduce abortScaleDownDelaySeconds to control scale down of preview/canary upon abort (#1160)
- feat: argo rollout compatibility with emissary and edge stack v2.0 (#1330)
- feat: Add support for Istio multicluster (#1274)
- feat: add workload-ref/generation to rollout (#1198)
- feat: support notifications on rollout events using notifications-engine (#1175)
- chore: add liveness and readiness probe to the install manifests (#1324)
- fix: Nginx ingressClassName passed to canary ingress (#1448)
- fix: canary scaledown event could violate maxUnavailable (#1429)
- fix: analysis runs to wait for all metrics to complete (#1407)
- fix: Promote full did not work against BlueGreen with previewReplicaCount (#1384)
- fix: retarget blue-green previewService before scaling up preview ReplicaSet (#1368)
- fix: zero-value abortScaleDownDelay was not honored with setCanaryScale (#1375)
- fix: abort scaledown stable RS for canary with traffic routing (#1331)
Analysis
- feat: add support for Graphite metrics provider (#1406)
- feat: Support CloudWatch as a metric provider (#1338)
- feat: add default() evaluate helper. allow empty datadog result
- fix: Analysis argument validation (#1412)
Plugin
- feat: create windows version for CLI (#1517)
- feat: provide shell completion. Closes #619 (#1478)
- fix: create analysisrun cmd using template generated name (#1471)
- fix: nil pointer in create analysisrun cmd (#1399)
- fix: lint subcommand for workload ref rollout (#1328)
- fix: undo referenced object for workloadRef rollout (#1275)
Dashboard
- feat: allow selection of namespace in rollout dashboard (#1291)
- fix(ui): UI crashes on rollout view due to undefined status (#1287)
Misc
v1.1.0-rc2
fix: Istio does not switch the traffic. Fix the VS new object creatio… …n when the tls routes nil (#1553) Signed-off-by: Andrii Perenesenko <[email protected]>