Skip to content

Latest commit

 

History

History
1030 lines (643 loc) · 34.7 KB

CHANGELOG.md

File metadata and controls

1030 lines (643 loc) · 34.7 KB

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 -primary suffix 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.1 and Flagger's CRDs to apiextensions.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

  • Add Prometheus basic-auth config to docs #746
  • Update Prometheus to 2.23.0 and Grafana to 7.3.4 #747

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

  • Add QPS and Burst configs for kubernetes client #725
  • Update Istio to v1.8.0 #733

1.2.0 (2020-09-29)

Add support for New Relic metrics

Features

  • Add New Relic as a metrics provider #691

Improvements

  • Derive the label selector value from the target matchLabel #685
  • Preserve Skipper predicates #681

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

  • Fix multiple paths per rule on canary ingress #632
  • Fix installers for kustomize >= 3.6.0 #646

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

  • Fix spec changes detection #446
  • Track projected ConfigMaps and Secrets #433

0.23.0 (2020-02-06)

Adds support for service name configuration and rollback webhook

Features

  • Implement service name override #416
  • Add support for gated rollback #420

0.22.0 (2020-01-16)

Adds event dispatching through webhooks

Features

  • Implement event dispatching webhook #409
  • Add general purpose event webhook #401

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

  • Add wrk to load tester tools #368
  • Add App Mesh gateway chart #365

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

  • Update load tester Helm tools #8349dd1
  • e2e testing: update providers #346

Fixes

  • Fix Prometheus query escape #353
  • Updating hey release link #350

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

  • Add traffic mirroring for Istio service mesh #311
  • Implement canary service target port #327

Improvements

  • Allow gRPC protocol for App Mesh #325
  • Enforce blue/green when using Kubernetes networking #326

Fixes

  • Fix port discovery diff #324
  • Helm chart: Enable Prometheus scraping of Flagger metrics #2141d88

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

  • Implement confirm-promotion hook #307
  • Implement B/G for service mesh providers #305

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

  • Add missing fields to CRD validation spec #271
  • Fix App Mesh backends validation in CRD #281

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

  • Add Linkerd support #230
  • Implement MS Teams notifications #235
  • Implement leader election #236

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-rollout and post-rollout webhook types #147

Improvements

  • Unify App Mesh and Istio builtin metric checks #146
  • Make the pod selector label configurable #148

Breaking changes

  • Set default mesh Istio 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

  • Preserve pod labels on canary promotion #105
  • Fix canary status Prometheus metric #121

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

  • CORS policy support #83
  • Allow headers to be appended to HTTP requests #82

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

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 controlLoopInterval has 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