35 KiB
Changelog
All notable changes to this project are documented in this file.
1.6.4
Release date: 2021-02-26
This release comes with a bug fix to the AppMesh integration when using multiple backends.
Improvements
- Consolidate logos and add project name logos #829
- chart: add env option to loadtester #821
- chart: Added PodDisruptionBudget for the loadtester #819
Fixes
- Fix AWS AppMesh issue when providing multiple backends #831
1.6.3
Release date: 2021-02-15
This release comes with support for Kubernetes pod topology spread constraints.
Flagger has a new logo, many thanks to Bianca for designed it.
Improvements
- Rewrite the primary Pod Topology Spread Constraints based on label selector #806
Fixes
- Suffix only the podAntiAffinity values that match the deployment name #805
- Check if mandatory secrets/configmaps exist #799
1.6.2
Release date: 2021-01-28
This release comes with support for Kubernetes anti-affinity rules.
Improvements
- Support for adding
-primarysuffix to Anti-Affinity values #788
Fixes
- Add missing alerts section to Canary CRD schema #794
1.6.1
Release date: 2021-01-19
This release extends the support for Istio's HTTPMatchRequest and
comes with a regression bug fix to secrets and configmaps tracking.
Improvements
- Update HTTPMatchRequest to match Istio's definitions #777
- e2e: Update Istio to v1.8.2 and Contour to v1.11.0 #778
Fixes
- Add missing TrackedConfig field to Canary status CRD #781
1.6.0
Release date: 2021-01-05
Breaking change: the minimum supported version of Kubernetes is v1.16.0.
This release comes with support for A/B testing using Gloo Edge HTTP headers based routing.
Features
- A/B testing support for Gloo Edge ingress controller #765
Improvements
- Upgrade the Kubernetes packages to
v1.20.1and Flagger's CRDs toapiextensions.k8s.io/v1#772
1.5.0
Release date: 2020-12-22
This is the first release of Flagger under fluxcd organization (CNCF sandbox). Starting with this version, Flagger can be installed on multi-arch Kubernetes clusters (Linux AMD64/ARM64/ARM). The multi-arch image is available on GitHub Container Registry at ghcr.io/fluxcd/flagger.
Improvements
- Publish multi-arch image to GitHub Container Registry #763
- Migrate CI to GitHub Actions #754
- Add e2e tests for label prefix inclusion #762
- Added PodDisruptionBudget to the Flagger Helm chart #749
v1.4.2
Release date: 2020-12-09
Fix Istio virtual service delegation
Improvements
Fixes
- Fix for VirtualService delegation when analysis is enabled #745
1.4.1 (2020-12-08)
Prevent primary ConfigMaps and Secrets from being pruned by Flux
Improvements
- Apply label prefix rules for ConfigMaps and Secrets #743
1.4.0 (2020-12-07)
Add support for Traefik ingress controller
Features
- Add Traefik support for progressive traffic shifting with
TraefikService#736 - Add support for HPA v2beta2 behaviors #740
1.3.0 (2020-11-23)
Add support for custom weights when configuring traffic shifting
Features
- Support AWS App Mesh backends ARN #715
- Add support for Istio VirtualService delegation #715
- Copy labels from canary to primary workloads based on prefix rules #709
Improvements
1.2.0 (2020-09-29)
Add support for New Relic metrics
Features
- Add New Relic as a metrics provider #691
Improvements
Fixes
- Do not promote when not ready on skip analysis #695
1.1.0 (2020-08-18)
Add support for Skipper ingress controller
Features
- Skipper Ingress Controller support #670
- Support per-config configTracker disable via ConfigMap/Secret annotation #671
Improvements
- Add priorityClassName and securityContext to Helm charts #652 #668
- Update Kubernetes packages to v1.18.8 #672
- Update Istio, Linkerd and Contour e2e tests #661
Fixes
- Fix O(log n) bug over network in GetTargetConfigs #663
- Fix(grafana): metrics change since Kubernetes 1.16 #663
1.0.1 (2020-07-18)
Add support for App Mesh Gateway GA
Improvements
- Update App Mesh docs to v1beta2 API #649
- Add threadiness to Flagger helm chart #643
- Add Istio virtual service to loadtester helm chart #643
Fixes
1.0.0 (2020-06-17)
This is the GA release for Flagger v1.0.0.
The upgrade procedure from 0.x to 1.0 can be found here.
Two new resources were added to the API: MetricTemplate and AlertProvider.
The analysis can reference metric templates
to query Prometheus, Datadog and AWS CloudWatch.
Alerting can be configured on a per
canary basis for Slack, MS Teams, Discord and Rocket.
Features
- Implement progressive promotion #593
Improvements
- istio: Add source labels to analysis matching rules #594
- istio: Add allow origins field to CORS spec #604
- istio: Change builtin metrics to work with Istio telemetry v2 #623
- appmesh: Implement App Mesh v1beta2 timeout #611
- metrics: Check metrics server availability during canary initialization #592
1.0.0-rc.5 (2020-05-14)
This is a release candidate for Flagger v1.0.0.
The upgrade procedure from 0.x to 1.0 can be found here.
Features
- Add support for AWS AppMesh v1beta2 API #584
- Add support for Contour v1.4 ingress class #588
- Add user-specified labels/annotations to the generated Services #538
Improvements
- Support compatible Prometheus service #557
- Update e2e tests and packages to Kubernetes v1.18 #549 #576
Fixes
- pkg/controller: retry canary initialization on conflict #586
1.0.0-rc.4 (2020-04-03)
This is a release candidate for Flagger v1.0.0.
The upgrade procedure from 0.x to 1.0 can be found here.
Breaking change: the minimum supported version of Kubernetes is v1.14.0.
Features
- Implement NGINX Ingress header regex matching #546
Improvements
- pkg/router: update ingress API to networking.k8s.io/v1beta1 #534
- loadtester: add return cmd output option #535
- refactoring: finalizer error handling and unit testing #531 #530
- chart: add finalizers to RBAC rules for OpenShift #537
- chart: allow security context to be disabled on OpenShift #543
- chart: add annotations for service account #521
- docs: Add Prometheus Operator tutorial #524
Fixes
- pkg/controller: avoid status conflicts on initialization #544
- pkg/canary: fix status retry #541
- loadtester: fix timeout errors #539
- pkg/canary/daemonset: fix readiness check #529
- logs: reduce log verbosity and fix typos #540 #526
1.0.0-rc.3 (2020-03-23)
This is a release candidate for Flagger v1.0.0.
The upgrade procedure from 0.x to 1.0 can be found here.
Features
- Add opt-in finalizers to revert Flagger's mutations on deletion of a canary #495
Improvements
- e2e: update end-to-end tests to Contour 1.3.0 and Gloo 1.3.14 #519
- build: update Kubernetes packages to 1.17.4 #516
Fixes
- Preserve node ports on service reconciliation #514
1.0.0-rc.2 (2020-03-19)
This is a release candidate for Flagger v1.0.0.
The upgrade procedure from 0.x to 1.0 can be found here.
Features
- Make mirror percentage configurable when using Istio traffic shadowing #492
- Add support for running Concord tests with loadtester webhooks #507
Improvements
- docs: add Istio telemetry v2 upgrade guide #486, update A/B testing tutorial for Istio 1.5 #502, add how to retry a failed release to FAQ #494
- e2e: update end-to-end tests to Istio 1.5 #447 and NGINX Ingress 0.30 #489 #511
- refactoring: error handling #480, scheduler #484 and unit tests #475
- chart: add the log level configuration to Flagger helm chart #506
Fixes
- Fix nil pointer for the global notifiers #504
1.0.0-rc.1 (2020-03-03)
This is a release candidate for Flagger v1.0.0.
The upgrade procedure from 0.x to 1.0 can be found here.
Two new resources were added to the API: MetricTemplate and AlertProvider.
The analysis can reference metric templates
to query Prometheus, Datadog and AWS CloudWatch.
Alerting can be configured on a per
canary basis for Slack, MS Teams, Discord and Rocket.
Features
- Implement metric templates for Prometheus #419, Datadog #460 and CloudWatch #464
- Implement metric range validation #424
- Add support for targeting DaemonSets #455
- Implement canary alerts and alert providers (Slack, MS Teams, Discord and Rocket) #429
Improvements
- Add support for Istio multi-cluster #447 #450
- Extend Istio traffic policy #441, add support for header operations #442 and set ingress destination port when multiple ports are discovered #436
- Add support for rollback gating #449
- Allow disabling ConfigMaps and Secrets tracking #425
Fixes
0.23.0 (2020-02-06)
Adds support for service name configuration and rollback webhook
Features
0.22.0 (2020-01-16)
Adds event dispatching through webhooks
Features
Improvements
- Update Contour to v1.1 and add Linkerd header #411
- Update Istio e2e to v1.4.3 #407
- Update Kubernetes packages to 1.17 #406
0.21.0 (2020-01-06)
Adds support for Contour ingress controller
Features
- Add support for Contour ingress controller #397
- Add support for Envoy managed by Crossover via SMI #386
- Extend canary target ref to Kubernetes Service kind #372
Improvements
- Add Prometheus operator PodMonitor template to Helm chart #399
- Update e2e tests to Kubernetes v1.16 #390
0.20.4 (2019-12-03)
Adds support for taking over a running deployment without disruption
Improvements
- Add initialization phase to Kubernetes router #384
- Add canary controller interface and Kubernetes deployment kind implementation #378
Fixes
- Skip primary check on skip analysis #380
0.20.3 (2019-11-13)
Adds wrk to load tester tools and the App Mesh gateway chart to Flagger Helm repository
Improvements
0.20.2 (2019-11-07)
Adds support for exposing canaries outside the cluster using App Mesh Gateway annotations
Improvements
- Expose canaries on public domains with App Mesh Gateway #358
Fixes
- Use the specified replicas when scaling up the canary #363
0.20.1 (2019-11-03)
Fixes promql execution and updates the load testing tools
Improvements
Fixes
0.20.0 (2019-10-21)
Adds support for A/B Testing and retry policies when using App Mesh
Features
- Implement App Mesh A/B testing based on HTTP headers match conditions #340
- Implement App Mesh HTTP retry policy #338
- Implement metrics server override #342
Improvements
- Add the app/name label to services and primary deployment #333
- Allow setting Slack and Teams URLs with env vars #334
- Refactor Gloo integration #344
Fixes
- Generate unique names for App Mesh virtual routers and routes #336
0.19.0 (2019-10-08)
Adds support for canary and blue/green traffic mirroring
Features
Improvements
Fixes
0.18.6 (2019-10-03)
Adds support for App Mesh conformance tests and latency metric checks
Improvements
- Add support for acceptance testing when using App Mesh #322
- Add Kustomize installer for App Mesh #310
- Update Linkerd to v2.5.0 and Prometheus to v2.12.0 #323
Fixes
- Fix slack/teams notification fields mapping #318
0.18.5 (2019-10-02)
Adds support for confirm-promotion webhooks and blue/green deployments when using a service mesh
Features
Improvements
- Canary promotion improvements to avoid dropping in-flight requests #310
- Update end-to-end tests to Kubernetes v1.15.3 and Istio 1.3.0 #306
Fixes
- Skip primary check for App Mesh #315
0.18.4 (2019-09-08)
Adds support for NGINX custom annotations and Helm v3 acceptance testing
Features
- Add annotations prefix for NGINX ingresses #293
- Add wide columns in CRD #289
- loadtester: implement Helm v3 test command #296
- loadtester: add gRPC health check to load tester image #295
Fixes
- loadtester: fix tests error logging #286
0.18.3 (2019-08-22)
Adds support for tillerless helm tests and protobuf health checking
Features
- loadtester: add support for tillerless helm #280
- loadtester: add support for protobuf health checking #280
Improvements
- Set HTTP listeners for AppMesh virtual routers #272
Fixes
0.18.2 (2019-08-05)
Fixes multi-port support for Istio
Fixes
- Fix port discovery for multiple port services #267
Improvements
- Update e2e testing to Istio v1.2.3, Gloo v0.18.8 and NGINX ingress chart v1.12.1 #268
0.18.1 (2019-07-30)
Fixes Blue/Green style deployments for Kubernetes and Linkerd providers
Fixes
- Fix Blue/Green metrics provider and add e2e tests #261
0.18.0 (2019-07-29)
Adds support for manual gating and pausing/resuming an ongoing analysis
Features
- Implement confirm rollout gate, hook and API #251
Improvements
- Refactor canary change detection and status #240
- Implement finalising state #257
- Add gRPC load testing tool #248
Breaking changes
- Due to the status sub-resource changes in #240,
when upgrading Flagger the canaries status phase will be reset to
Initialized - Upgrading Flagger with Helm will fail due to Helm poor support of CRDs, see workaround
0.17.0 (2019-07-08)
Adds support for Linkerd (SMI Traffic Split API), MS Teams notifications and HA mode with leader election
Features
Improvements
0.16.0 (2019-06-23)
Adds support for running Blue/Green deployments without a service mesh or ingress controller
Features
- Allow blue/green deployments without a service mesh provider #211
- Add the service mesh provider to the canary spec #217
- Allow multi-port services and implement port discovery #207
Improvements
- Add FAQ page to docs website
- Switch to go modules in CI #218
- Update e2e testing to Kubernetes Kind 0.3.0 and Istio 1.2.0
Fixes
- Update the primary HPA on canary promotion #216
0.15.0 (2019-06-12)
Adds support for customising the Istio traffic policy in the canary service spec
Features
- Generate Istio destination rules and allow traffic policy customisation #200
Improvements
- Update Kubernetes packages to 1.14 and use go modules instead of dep #202
0.14.1 (2019-06-05)
Adds support for running acceptance/integration tests with Helm test or Bash Bats using pre-rollout hooks
Features
- Implement Helm and Bash pre-rollout hooks #196
Fixes
- Fix promoting canary when max weight is not a multiple of step #190
- Add ability to set Prometheus url with custom path without trailing '/' #197
0.14.0 (2019-05-21)
Adds support for Service Mesh Interface and Gloo ingress controller
Features
- Add support for SMI (Istio weighted traffic) #180
- Add support for Gloo ingress controller (weighted traffic) #179
0.13.2 (2019-04-11)
Fixes for Jenkins X deployments (prevent the jx GC from removing the primary instance)
Fixes
- Do not copy labels from canary to primary deployment #178
Improvements
- Add NGINX ingress controller e2e and unit tests #176
0.13.1 (2019-04-09)
Fixes for custom metrics checks and NGINX Prometheus queries
Fixes
- Fix promql queries for custom checks and NGINX #174
0.13.0 (2019-04-08)
Adds support for NGINX ingress controller
Features
- Add support for nginx ingress controller (weighted traffic and A/B testing) #170
- Add Prometheus add-on to Flagger Helm chart for App Mesh and NGINX 79b3370
Fixes
- Fix duplicate hosts Istio error when using wildcards #162
0.12.0 (2019-04-29)
Adds support for SuperGloo
Features
- Supergloo support for canary deployment (weighted traffic) #151
0.11.1 (2019-04-18)
Move Flagger and the load tester container images to Docker Hub
Features
- Add Bash Automated Testing System support to Flagger tester for running acceptance tests as pre-rollout hooks
0.11.0 (2019-04-17)
Adds pre/post rollout webhooks
Features
- Add
pre-rolloutandpost-rolloutwebhook types #147
Improvements
Breaking changes
- Set default
meshIstio gateway only if no gateway is specified #141
0.10.0 (2019-03-27)
Adds support for App Mesh
Features
Improvements
- Reconcile Kubernetes ClusterIP services #122
Fixes
0.9.0 (2019-03-11)
Allows A/B testing scenarios where instead of weighted routing, the traffic is split between the primary and canary based on HTTP headers or cookies.
Features
- A/B testing - canary with session affinity #88
Fixes
- Update the analysis interval when the custom resource changes #91
0.8.0 (2019-03-06)
Adds support for CORS policy and HTTP request headers manipulation
Features
Improvements
- Refactor the routing management #72 #80
- Fine-grained RBAC #73
- Add option to limit Flagger to a single namespace #78
0.7.0 (2019-02-28)
Adds support for custom metric checks, HTTP timeouts and HTTP retries
Features
- Allow custom promql queries in the canary analysis spec #60
- Add HTTP timeout and retries to canary service spec #62
0.6.0 (2019-02-25)
Allows for HTTPMatchRequests and HTTPRewrite to be customized in the service spec of the canary custom resource.
Features
- Add HTTP match conditions and URI rewrite to the canary service spec #55
- Update virtual service when the canary service spec changes #54 #51
Improvements
- Run e2e testing on Kubernetes Kind for canary promotion #53
0.5.1 (2019-02-14)
Allows skipping the analysis phase to ship changes directly to production
Features
- Add option to skip the canary analysis #46
Fixes
- Reject deployment if the pod label selector doesn't match
app: <DEPLOYMENT_NAME>#43
0.5.0 (2019-01-30)
Track changes in ConfigMaps and Secrets #37
Features
- Promote configmaps and secrets changes from canary to primary
- Detect changes in configmaps and/or secrets and (re)start canary analysis
- Add configs checksum to Canary CRD status
- Create primary configmaps and secrets at bootstrap
- Scan canary volumes and containers for configmaps and secrets
Fixes
- Copy deployment labels from canary to primary at bootstrap and promotion
0.4.1 (2019-01-24)
Load testing webhook #35
Features
- Add the load tester chart to Flagger Helm repository
- Implement a load test runner based on rakyll/hey
- Log warning when no values are found for Istio metric due to lack of traffic
Fixes
- Run wekbooks before the metrics checks to avoid failures when using a load tester
0.4.0 (2019-01-18)
Restart canary analysis if revision changes #31
Breaking changes
- Drop support for Kubernetes 1.10
Features
- Detect changes during canary analysis and reset advancement
- Add status and additional printer columns to CRD
- Add canary name and namespace to controller structured logs
Fixes
- Allow canary name to be different to the target name
- Check if multiple canaries have the same target and log error
- Use deep copy when updating Kubernetes objects
- Skip readiness checks if canary analysis has finished
0.3.0 (2019-01-11)
Configurable canary analysis duration #20
Breaking changes
- Helm chart: flag
controlLoopIntervalhas been removed
Features
- CRD: canaries.flagger.app v1alpha3
- Schedule canary analysis independently based on
canaryAnalysis.interval - Add analysis interval to Canary CRD (defaults to one minute)
- Make autoscaler (HPA) reference optional
0.2.0 (2019-01-04)
Webhooks #18
Features
- CRD: canaries.flagger.app v1alpha2
- Implement canary external checks based on webhooks HTTP POST calls
- Add webhooks to Canary CRD
- Move docs to gitbook docs.flagger.app
0.1.2 (2018-12-06)
Improve Slack notifications #14
Features
- Add canary analysis metadata to init and start Slack messages
- Add rollback reason to failed canary Slack messages
0.1.1 (2018-11-28)
Canary progress deadline #10
Features
- Rollback canary based on the deployment progress deadline check
- Add progress deadline to Canary CRD (defaults to 10 minutes)
0.1.0 (2018-11-25)
First stable release
Features
- CRD: canaries.flagger.app v1alpha1
- Notifications: post canary events to Slack
- Instrumentation: expose Prometheus metrics for canary status and traffic weight percentage
- Autoscaling: add HPA reference to CRD and create primary HPA at bootstrap
- Bootstrap: create primary deployment, ClusterIP services and Istio virtual service based on CRD spec
0.0.1 (2018-10-07)
Initial semver release
Features
- Implement canary rollback based on failed checks threshold
- Scale up the deployment when canary revision changes
- Add OpenAPI v3 schema validation to Canary CRD
- Use CRD status for canary state persistence
- Add Helm charts for Flagger and Grafana
- Add canary analysis Grafana dashboard