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 in #1699
- fix: delay service injection of selector labels until ReplicaSet available by @jessesuen in #1777
- fix: notifications using workloadRef did not have access to pod template by @jessesuen in #1786
- fix: plugin did not set deployment image when using workloadRef by @jessesuen in #1787
- chore(deps): bump github.com/antonmedv/expr from 1.8.9 to 1.9.0 by @dependabot in #1712
- fix(ui): Truncate long container names by @rbreeze in #1793
- fix(ui): Show container images in dashboard for rollouts with a WorkloadRef by @rbreeze in #1792
- fix(ui): Requesting cluster scoped namespaces does not fail gracefully in UI by @rbreeze in #1795
- chore: Fix istio vs reconcile errors by @agrawroh in #1460
- chore(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.8.1 to 1.13.0 by @dependabot in #1791
- fix: plugin panic while watching progress by @jessesuen in #1796
- fix: Promote-full with TrafficRouting will dynamically increase weight according to available canary pods. Fixes: #1681 by @nissy34 in #1683
- fix: canary replicas/weight could flap during abort with dynamic scaling by @jessesuen in #1794
- chore: Configure dependabot to ignore k8s dependencies by @blkperl in #1802
- bump k8s.io/kubernetes with dependencies to v1.23.1. by @smuda in #1785
- docs: update membership information by @jessesuen in #1814
- fix: remove non-existent target in makefile by @huikang in #1813
- docs: Added ArgoCon 21 presentation by @kostis-codefresh in #1811
- chore(deps): update github.com/miekg/dns for CVE-2019-19794 by @jessesuen in #1810
- fix: client can detect if rollout is in the process of unpausing by @jessesuen in #1798
- chore(deps): bump github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 from 1.6.1 to 1.16.0 by @dependabot in #1797
- chore(deps): bump github.com/prometheus/common from 0.21.0 to 0.32.1 by @dependabot in #1604
- docs: mention internal architecture by @kostis-codefresh in #1819
- fix: scale up and down old replicas. Fixes #1822 by @huikang in #1824
- chore: generate and upload sbom during release by @leoluz in #1834
- fix: flaky unit test by @harikrongali in #1831
- feat(experiment): Add Measurements Retention Limit Option for Metrics by @agrawroh in #1790
- chore: CVE-2020-26160 by @kshamajain99 in #1829
- feat(analysis): Added additional metadata to the status of AnalysisRun to be used by Prometheus Provider by @agrawroh in #1628
- fix: using our own pod template hashing by @perenesenko in #1809
- feat: TrafficRouting support with AWS App Mesh (#1401) by @kiranmeduri in #1606
- docs: Update security.md by @hblixt in #1840
- feat: ping-pong services by @perenesenko in #1697
- fix(analysisrun): surface analysisrun validation result to rollout (… by @huikang in #1833
- feat: Add logformat flag to rollouts-controller by @Karol-Szlachta-DM in #1818
- chore(deps): bump github.com/aws/aws-sdk-go-v2 dependencies by @dependabot in #1835
- fix(docs): Updated the case of properties according to actual property name by @mksha in #1823
- chore(deps): bump github.com/newrelic/newrelic-client-go from 0.71.0 to 0.72.0 by @dependabot in #1836
- chore: Generate spdx file for the docker image by @leoluz in #1844
- chore: fix spdx ci by @jessesuen in #1848
- chore: fix spdx image generation by @leoluz in #1849
- docs: Add a toggle for dark mode by @blkperl in #1847
- feat: Added delay button in the scaled down revision (#1355) by @schakrad in #1804
- fix: add workaround to fix 'stream terminated by RST_STREAM with error code: PROTOCOL_ERROR' by @alexmt in #1862
- docs: add community section to README.md by @danielhelfand in #1868
- chore: move dependencies to dev dependencies by @crenshaw-dev in #1877
- docs: Add SAP Concur by @tvalasek in #1878
- feat: Dashboard now displaying name, specRef and weight in the experimental step. by @schakrad in #1863
- docs: vpa for rollouts by @RaviHari in #1909
New Contributors
- @huynhj93 made their first contribution in #1570
- @fblgit made their first contribution in #1472
- @kiranmeduri made their first contribution in #1612
- @flaviolemos78 made their first contribution in #1597
- @yashmehrotra made their first contribution in #1527
- @smaloo-salesforce made their first contribution in #1662
- @derjust made their first contribution in #1577
- @pbaderia01 made their first contribution in #1695
- @RaviHari made their first contribution in #1689
- @bpoland made their first contribution in #1669
- @cguertin14 made their first contribution in #1732
- @crenshaw-dev made their first contribution in #1746
- @mubarak-j made their first contribution in #1756
- @icecoffee531 made their first contribution in #1745
- @nissy34 made their first contribution in #1683
- @blkperl made their first contribution in #1802
- @smuda made their first contribution in #1785
- @kshamajain99 made their first contribution in #1829
- @hblixt made their first contribution in #1840
- @Karol-Szlachta-DM made their first contribution in #1818
- @mksha made their first contribution in #1823
- @schakrad made their first contribution in #1804
- @danielhelfand made their first contribution in #1868
- @tvalasek made their first contribution in #1878
Full Changelog: v1.1.0...v1.2.0