Releases: argoproj/argo-rollouts
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…
v1.0.7
v1.1.0-rc1
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)
- 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.0.6
Quickstart
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/download/v1.0.6/install.yaml
Changes since v1.0.4
Bug Fixes
- fix: replica count for new deployment (#1449)
- fix: Nginx ingressClassName passed to canary ingress (#1448)
- fix: Analysis argument validation (#1412)
- fix: retarget blue-green previewService before scaling up preview ReplicaSet (#1368)
- fix: analysis runs to wait for all metrics to complete (#1407)
- fix: canary scaledown event could violate maxUnavailable (#1429)
- chore: release workflow docker build context should use local path and not git context (#1388)
- chore: github release action was using incorect docker cache (#1387)
v1.0.4
Quickstart
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/download/v1.0.4/install.yaml
Changes since v1.0.3
Controller
- fix: Promote full did not work against BlueGreen with previewReplicaCount
v1.0.3
Quickstart
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/download/v1.0.3/install.yaml
Changes since v1.0.2
Controller
- fix: nil pointer dereference when reconciling paused blue-green rollout (#1378)
- fix: Abort rollout doesn't remove all canary pods for setCanaryScale (#1352)
- fix: unsolicited rollout after upgrade from v0.10->v1.0 when pod was using service account (#1367)
- fix: default replica before resolving workloadRef (#1304)
v1.0.2
Quickstart
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/download/v1.0.2/install.yaml
Changes since v1.0.1
Controller
- feat: allow VirtualService HTTPRoute to be inferred if there is single route (#1273)
- fix: rollout paused longer than progressDeadlineSeconds would briefly degrade (#1268)
- fix: controller would drop fields when updating DestinationRules (#1253)
- fix: the wrong panel title on the sample dashboard (#1260)
- fix: analysis with multiple metrics (#1261)
- fix: Mitigate the bug where items are re-added constantly to the workqueue. #1193 (#1243)
- fix: workload rollout spec is invalid template is not empty (#1224)
- fix: Fix error check in validation for AnalysisTemplates not found (#1249)
- fix: make function call consistent with otherRSs definition (#1171)
Plugin
- fix: avoid using root user in plugin container (#1256)