Skip to content

Latest commit

 

History

History
2248 lines (1559 loc) · 78.7 KB

CHANGELOG.md

File metadata and controls

2248 lines (1559 loc) · 78.7 KB

Changelog

All notable changes to this project are documented in this file.

1.40.0

Release date: 2024-12-17

This release comes with support for Splunk Observability (formerly SignalFx) as a metrics provider. For more information on how to write MetricTemplates for Splunk, please see the Splunk metrics tutorial.

Starting with this version, Flagger is compatible with the AWS Gateway API Controller.

Both Flagger and the load tester Go dependencies have been updated to fix various CVEs.

Improvements

  • Add Splunk as a metrics provider #1733
  • Preserve HTTPRoute annotations injected by AWS Gateway API #1746
  • Automate zz_generated.deepcopy.go updates with make codegen #1735
  • Update dependencies #1744

1.39.0

Release date: 2024-11-26

This release comes with fixes and improvements. There is a new .spec.analysis.webhooks[].disableTLS field which disables TLS verification for that webhook request. A bug in the Gateway API provider was fixed which could lead to unecessary restarts.

This release is built with Go 1.23. Lastly, all Go dependencies, Alpine and Kubernetes libraries were updated.

Improvements

  • Add validation for primaryScalerReplicas field in the CRD #1702
  • feat: add disableTLS option for webhooks request #1709
  • Update dependencies to Kubernetes v1.31.3 #1723
  • Update generated client for Kubernetes 1.31 #1725
  • Build with Go 1.23 #1726

Fixes

  • Gateway API: Sort header filters to avoid canary restarts #1713
  • fix: fix codegen script and update generated code #1724
  • fix(helm): podinfo fails to create the hpa object #1721

1.38.0

Release date: 2024-07-30

This release comes with several fixes and improvements. There is a new Keptn metrics provider that can be used for flexible grading logic and analysis. The loadtester chart now supports ServiceAccount annotations and the Flagger chart now supports specifying honorLabels for the PodMonitor.

Support for Kuma has been fixed and verified against Kuma 2.7.5. Also, the Deployment scaling has been updated to use Patch instead of Update to avoid intermittent conflict errors. Furthermore, a potential panic that could be caused due to Prometheus returning a range vector has been fixed. Also, the request-duration inbuilt query for Nginx has been updated to be more accurate.

Lastly, all Go dependencies, Alpine and Kubernetes libraries were updated.

Important

The update to Kubernetes libraries also brings an unwanted side-effect. Due to a change in upstream Kubernetes, sidecar support is done through a new field, which may be utilized by other services in your cluster. This would change the hash calculated by Flagger between runs and trigger an unwanted Canary analysis. Unfortunately, this is unavoidable. To get around this, users could set the .spec.suspend field to be true before updating to this version and switch it back when they update their application.

Improvements

  • Bumps golang.org/x/net to v0.23.0 #1628
  • feat: implement a Keptn metrics provider #1630
  • Update dependencies to Kubernetes 1.30 #1638
  • loadtester: add support for annotation on service account #1649
  • Bump golang.org/x/net to v0.25.0 and other deps. #1653
  • Update Go dependencies and Alpine #1656
  • Helm - Add podMonitor.honor labels #1676
  • kuma: bump e2e version to 2.7.5 #1683
  • Release loadtester 0.33.0 #1690
  • Bump google.golang.org/grpc from 1.64.0 to 1.64.1 #1675

Fixes

  • Use Patch instead of Update for Deployment scaling #1634
  • block panic when prom returns range vector #1637
  • Fix removal of empty keys from flagger chart #1657
  • doc: fix KEDA doc regarding namespaces #1666
  • Fix Nginx request-duration query #1686

1.37.0

Release date: 2024-03-26

This release updates the Istio APIs to v1beta1 and fixes several issues related to Gloo routing and custom metrics.

Both Flagger and the load tester Go dependencies have been updated to fix various CVEs. Flagger and the load tester are now built with Go 1.22.

Improvements

  • Migrate Istio VirtualService/DestinationRule APIs to v1beta1 #1602
  • Add omitempty to CRD statuses to allow better marshalling #1621
  • Update dependencies (Go 1.22) #1622
  • Update google.golang.org/protobuf to v1.33.0 #1614

Fixes

  • Update reconciler to detect change in Gloo upstream spec #1617
  • Fix regression bug where query with no metric template returned an error #1611

1.36.1

Release date: 2024-03-06

This release fixes a bug where .spec..progressDeadlineSeconds wasn't respected and the Canary was stuck forever waiting for the Deployment to be ready.

Furthermore, the Go dependencies have been updated.

Improvements

  • Update Go dependencies #1607

Fixes

  • Fix broken link in readme #1599
  • scheduler: fail canary according to progress deadline #1603
  • Actualize link to flux in-depth guide #1606

1.36.0

Release date: 2024-02-07

This release comes with support for canary releases with traffic shifting using Istio TCP routing. For more information on how to enable TCP routing please see the Istio tutorial.

Both Flagger and the load tester Go dependencies have been updated to fix various CVEs. Flagger is now built with Go 1.21 and the container base image has been updated to Alpine 3.19.

Improvements

  • Istio Canary TCP service support #1564
  • Update Go dependencies #1595
  • Build with Go 1.21 and Alpine 3.19 #1594

Fixes

  • return an error for missing metric templates #1582
  • istio: make retry attempts a mandatory field #1571
  • fix(pdb): use the full capabilities comparison for PDBs #1511

1.35.0

Release date: 2023-11-30

This release comes with support for Gateway API v1. Furthermore, following the deprecation period, support for the v1alpha2 API has been dropped. A new field .spec.webhooks[].retries has been added to allow specifying the number of retry attempts to make if the webhook server returns an unsuccessful response. Another new field .spec.service.trafficPolicy.loadBalancer.warmupDurationSeconds has been added for the corresponding field in Istio's DestinationRule API.

Lastly, two bugs related to deleting a Canary object with .spec.revertOnDeletion: true have been fixed.

Improvements

  • Support Istio DestinationRule WarmupDurationSecs #1540
  • feat: Webhook retries #1541
  • gatewayapi: add support for v1 #1557
  • Update Go dependencies #1558

Fixes

  • set original node selector value when finalizing service #1537
  • controller: wait for canary deployment to be ready before removing finalizers #1552

1.34.0

Release date: 2023-10-04

This release comes with several new features. The Gateway API integration has been significantly improved with support for

Most of the Filters are derived from existing fields in the Canary spec like .spec.service.headers. To support arbitary request mirroring through the RequestMirror filter, a new field .spec.service.mirror has been introduced.

A new field checksum has been added to the Canary webhook payload. This field is computed by hashing the .status.lastAppliedSpec and .status.trackedConfigs. It can be used to distinguish between Canary runs.

Furthermore, the Gloo integration now uses strings for specifying time durations in order to be better compatible with protobuf duration parsing.

Lastly, Kubernetes packages were updated to be on 1.27.

Improvements

  • Update Kubernetes to v1.27 #1506
  • gatewayapi: add support for session affinity #1507
  • gatewayapi: add support for route rule filters #1512
  • Update Linkerd tutorial to use Kubernetes Gateway API #1516
  • Add Checksum field to the Webhook payload to distinguish canary runs #1521
  • gatewayapi: add support for b/g mirroring #1525
  • Update Go dependencies #1528

Fixes

  • chore: fix incorrect canary name on document #1502
  • fix: Support for queryParams in canary match condition #880 #1505
  • docs: fix error example in deployment strategies #1518
  • Change Gloo Duration type to string #1524

1.33.0

Release date: 2023-08-29

This release fixes bugs related to the Canary lifecycle. The confirm-traffic-increase webhook is no longer called if the Canary is in the WaitingPromotion phase. Furthermore, a bug which caused downtime when initializing the Canary deployment has been fixed. Also, a bug in the request-duration metric for Traefik which assumed the result to be in milliseconds instead of seconds has been addressed.

The loadtester now also supports running kubectl commands.

Improvements

  • Helm: Add option to configure honorLabels for serviceMonitor #1442
  • Helm: Use PodDisruptionBudget API policy/v1 if available #1476
  • podinfo: Update hpa version from autoscaling/v2beta2 to autoscaling/v2 #1477
  • Helm: Allow custom labels for servicemonitor #1483
  • feat: loadtester support kubectl type #1485
  • Update Istio Gateway reference format #1489
  • e2e: Update Istio to v1.18 #1492
  • add docs for kubectl in loadtester #1494

Fixes

  • fix: typo on "Parase", should be "Parse". #1443
  • Fix Traefik request-duration metric #1446
  • Fix initial deployment downtime #1451
  • Fix FAQ templating format and change reference of $workload to $target. #1456
  • Update doc.go #1466
  • Avoid running traffic increase hooks when waiting for promotion or promoting #1470

1.32.0

Release date: 2023-07-14

This release adds support for suspending a Canary using .spec.suspend. It also fixes a bug where the target deployment gets stuck at 0 replicas after the Canary has been deleted. Furthermore, the Canary API has been modified to allow specifying the HTTPRoute port using .service.gatewayRefs[].port.

Improvements

  • Helm: Add option to create service and serviceMonitor #1425
  • Update Alpine to 3.18 #1426
  • Add spec.suspend to allow suspending canary #1431
  • Add support for istio LEAST_REQUEST destination rule load balancing #1439
  • Add gatewayRef port to Canary CRD #1453
  • feat: Copy slowStartConfig for Gloo upstreams #1455
  • Update Go dependencies #1459

Fixes

  • Resume target scaler during finalization #1429
  • Fix panic when annotation of ingress is empty #1437
  • Fixing namespace of HelmRepository in installation docs #1458

1.31.0

Release date: 2023-05-10

⚠️ Breaking Changes

This release adds support for Linkerd 2.12 and later. Due to changes in Linkerd the default namespace for Flagger's installation had to be changed from linkerd to flagger-system and the flagger Deployment is now injected with the Linkerd proxy. Furthermore, installing Flagger for Linkerd will result in the creation of an AuthorizationPolicy that allows access to the Prometheus instance in the linkerd-viz namespace. To upgrade your Flagger installation, please see the below migration guide.

If you use Kustomize, then follow these steps:

  • kubectl delete -n linkerd deploy/flagger

  • kubectl delete -n linkerd serviceaccount flagger

  • If you're on Linkerd >= 2.12, you'll need to install the SMI extension to enable support for TrafficSplits:

    curl -sL https://linkerd.github.io/linkerd-smi/install | sh
    linkerd smi install | kubectl apply -f -
  • kubectl apply -k github.com/fluxcd/flagger//kustomize/linkerd

    Note: If you're on Linkerd < 2.12, this will report an error about missing CRDs. It is safe to ignore this error.

If you use Helm and are on Linkerd < 2.12, then you can use helm upgrade to do a regular upgrade.

If you use Helm and are on Linkerd >= 2.12, then follow these steps:

  • helm uninstall flagger -n linkerd
  • Install the Linkerd SMI extension:
    helm repo add l5d-smi https://linkerd.github.io/linkerd-smi
    helm install linkerd-smi l5d-smi/linkerd-smi -n linkerd-smi --create-namespace
  • Install Flagger in the flagger-system namespace and create an AuthorizationPolicy:
    helm repo update flagger
    helm install flagger flagger/flagger \
    --namespace flagger-system \
    --set meshProvider=linkerd \
    --set metricsServer=http://prometheus.linkerd-viz:9090 \
    --set linkerdAuthPolicy.create=true

Furthermore, a bug which led the confirm-rollout webhook to be executed at every step of the Canary instead of only being executed before the canary Deployment is scaled up, has been fixed.

Improvements

  • Add support for Linkerd 2.13 #1417

Fixes

  • Fix the loadtester install with flux documentation #1384
  • Run confirm-rollout checks only before scaling up deployment #1414
  • e2e: Remove OSM tests #1423

1.30.0

Release date: 2023-04-12

This release fixes a bug related to the lack of updates to the generated object's metadata according to the metadata specified in spec.service.apex. Furthermore, a bug where labels were wrongfully copied over from the canary deployment to primary deployment when no value was provided for --include-label-prefix has been fixed. This release also makes Flagger compatible with Flux's helm-controller drift detection.

Improvements

  • build(deps): bump actions/cache from 3.2.5 to 3.3.1 #1385
  • helm: Added the option to supply additional volumes #1393
  • build(deps): bump actions/setup-go from 3 to 4 #1394
  • update Kuma version and docs #1402
  • ci: bump k8s to 1.24 and kind to 1.18 #1406
  • Helm: Allow configuring deployment annotations #1411
  • update dependencies #1412

Fixes

  • Enable updates for labels and annotations #1392
  • Update flagger-install-with-flux.md #1398
  • avoid copying canary labels to primary on promotion #1405
  • Disable Flux helm drift detection for managed resources #1408

1.29.0

Release date: 2023-02-21

This release comes with support for template variables for analysis metrics. A canary analysis metric can reference a set of custom variables with .spec.analysis.metrics[].templateVariables. For more info see the docs. Furthemore, a bug related to Canary releases with session affinity has been fixed.

Improvements

  • update dependencies #1374
  • build(deps): bump golang.org/x/net from 0.4.0 to 0.7.0 #1373
  • build(deps): bump fossa-contrib/fossa-action from 1 to 2 #1372
  • Allow custom affinities for flagger deployment in helm chart #1371
  • Add namespace to namespaced resources in helm chart #1370
  • build(deps): bump actions/cache from 3.2.4 to 3.2.5 #1366
  • build(deps): bump actions/cache from 3.2.3 to 3.2.4 #1362
  • build(deps): bump docker/build-push-action from 3 to 4 #1361
  • modify release workflow to publish rc images #1359
  • build: Enable SBOM and SLSA Provenance #1356
  • Add support for custom variables in metric templates #1355
  • docs(readme.md): add additional tutorial #1346

Fixes

  • use regex to match against headers in istio #1364

1.28.0

Release date: 2023-01-26

This release comes with support for setting a different autoscaling configuration for the primary workload. The .spec.autoscalerRef.primaryScalerReplicas is useful in the situation where the user does not want to scale the canary workload to the exact same size as the primary, especially when opting for a canary deployment pattern where only a small portion of traffic is routed to the canary workload pods.

Improvements

  • Support for overriding primary scaler replicas #1343
  • Allow access to Prometheus in OpenShift via SA token #1338
  • Update Kubernetes packages to v1.26.1 #1352

1.27.0

Release date: 2022-12-15

This release comes with support for Apache APISIX. For more details see the tutorial.

Improvements

  • [apisix] Implement router interface and observer interface #1281
  • Bump stefanprodan/helm-gh-pages from 1.6.0 to 1.7.0 #1326
  • Release loadtester v0.28.0 #1328

Fixes

  • Update release docs #1324

1.26.0

Release date: 2022-11-23

This release comes with support Kubernetes Gateway API v1beta1. For more details see the Gateway API Progressive Delivery tutorial.

Please note that starting with this version, the Gateway API v1alpha2 is considered deprecated and will be removed from Flagger after 6 months.

Improvements:

  • Updated Gateway API from v1alpha2 to v1beta1 #1319
  • Updated Gateway API docs to v1beta1 #1321
  • Update dependencies #1322

Fixes:

  • docs: Add linkerd install --crds to Linkerd tutorial #1316

1.25.0

Release date: 2022-11-16

This release introduces a new deployment strategy combining Canary releases with session affinity for Istio.

Furthermore, it contains a regression fix regarding metadata in alerts introduced in #1275

Improvements:

  • Add support for session affinity during weighted routing with Istio #1280

Fixes:

  • Fix cluster name inclusion in alerts metadata #1306
  • fix(faq): Update FAQ about zero downtime with correct values #1302

1.24.1

Release date: 2022-10-26

This release comes with a fix to Gloo routing when a custom service name id used.

In addition, the Gloo ingress end-to-end testing was updated to Gloo Helm chart v1.12.31.

Fixes:

  • fix(gloo): Use correct route table name in case service name was overwritten #1300

1.24.0

Release date: 2022-10-23

Starting with this version, the Flagger release artifacts are published to GitHub Container Registry, and they are signed with Cosign and GitHub ODIC.

OCI artifacts:

  • ghcr.io/fluxcd/flagger:<version> multi-arch container images
  • ghcr.io/fluxcd/flagger-manifest:<version> Kubernetes manifests
  • ghcr.io/fluxcd/charts/flagger:<version> Helm charts

To verify an OCI artifact with Cosign:

export COSIGN_EXPERIMENTAL=1
cosign verify ghcr.io/fluxcd/flagger:1.24.0
cosign verify ghcr.io/fluxcd/flagger-manifests:1.24.0
cosign verify ghcr.io/fluxcd/charts/flagger:1.24.0

To deploy Flagger from its OCI artifacts the GitOps way, please see the Flux installation guide.

Improvements:

  • docs: Add guide on how to install Flagger with Flux OCI #1294
  • ci: Publish signed Helm charts and manifests to GHCR #1293
  • ci: Sign release and containers with Cosign and GitHub OIDC #1292
  • ci: Adjust GitHub workflow permissions #1286
  • docs: Add link to Flux governance document #1286

1.23.0

Release date: 2022-10-20

This release comes with support for Slack bot token authentication.

Improvements:

  • alerts: Add support for Slack bot token authentication #1270
  • loadtester: logCmdOutput to logger instead of stdout #1267
  • helm: Add app.kubernetes.io/version label to chart #1264
  • Update Go to 1.19 #1264
  • Update Kubernetes packages to v1.25.3 #1283
  • Bump Contour to v1.22 in e2e tests #1282

Fixes:

  • gatewayapi: Fix reconciliation of nil hostnames #1276
  • alerts: Include cluster name in all alerts #1275

1.22.2

Release date: 2022-08-29

This release fixes a bug related scaling up the canary deployment when a reference to an autoscaler is specified.

Furthermore, it contains updates to packages used by the project, including updates to Helm and grpc-health-probe used in the loadtester.

CVEs fixed (originating from dependencies):

  • CVE-2022-37434
  • CVE-2022-27191
  • CVE-2021-33194
  • CVE-2021-44716
  • CVE-2022-29526
  • CVE-2022-1996

Fixes:

  • If HPA is set, it uses HPA minReplicas when scaling up the canary #1253

Improvements:

  • Release loadtester v0.23.0 #1246
  • Add target and script to keep crds in sync #1254
  • docs: add knative support to roadmap #1258
  • Update dependencies #1259
  • Release loadtester v0.24.0 #1261

1.22.1

Release date: 2022-08-01

This minor release fixes a bug related to the use of HPA v2beta2 and updates the KEDA ScaledObject API to include MetricType for ScaleTriggers.

Furthermore, the project has been updated to use Go 1.18 and Alpine 3.16.

Fixes:

  • Update KEDA ScaledObject API to include MetricType for Triggers #1241
  • Fix fallback logic for HPAv2 to v2beta2 #1242

Improvements:

  • Update Go to 1.18 and Alpine to 3.16 #1243
  • Clarify HPA API requirement #1239
  • Update README #1233

1.22.0

Release date: 2022-07-11

This release with support for KEDA ScaledObjects as an alternative to HPAs. Check the tutorial to understand it's usage with Flagger.

The .spec.service.appProtocol field can now be used to specify the appProtocol of the services that Flagger generates.

In addition, a bug related to the Contour prometheus query for when service name is overwritten along with a bug related to a Contour HTTPProxy annotations have been fixed.

Furthermore, the installation guide for Alibaba ServiceMesh has been updated.

Improvements:

  • feat: Add an optional appProtocol field to spec.service #1185
  • Update Kubernetes packages to v1.24.1 #1208
  • charts: Add namespace parameter to parameters table #1210
  • Introduce ScalerReconciler and refactor HPA reconciliation #1211
  • e2e: Update providers and Kubernetes to v1.23 #1212
  • Add support for KEDA ScaledObjects as an auto scaler #1216
  • include Contour retryOn in the sample canary #1223

Fixes:

  • fix contour prom query for when service name is overwritten #1204
  • fix contour httproxy annotations overwrite #1205
  • Fix primary HPA label reconciliation #1215
  • fix: add finalizers to canaries #1219
  • typo: boostrap -> bootstrap #1220
  • typo: controller #1221
  • update guide for flagger on aliyun ASM #1222
  • Reintroducing empty check for metric template references. #1224

1.21.0

Release date: 2022-05-06

This release comes with an option to disable cross-namespace references to Kubernetes custom resources such as AlertProivders and MetricProviders. When running Flagger on multi-tenant environments it is advised to set the -no-cross-namespace-refs=true flag.

In addition, this version enables Flagger to target Istio and Kuma multi-cluster setups. When installing Flagger with Helm, the service mesh control plane kubeconfig secret can be specified using --set controlplane.kubeconfig.secretName.

Improvements

  • Add flag to disable cross namespace refs to custom resources #1181
  • Rename kubeconfig section in helm values #1188
  • Update Flagger overview diagram #1187

Fixes

  • Avoid setting owner refs if the service mesh/ingress is on a different cluster #1183

1.20.0

Release date: 2022-04-15

This release comes with improvements to the AppMesh, Contour and Istio integrations.

Improvements

  • AppMesh: Add annotation to enable Envoy access logs #1156
  • Contour: Update the httproxy API and enable RetryOn #1164
  • Istio: Add destination port when port discovery and delegation are true #1145
  • Metrics: Add canary analysis result as Prometheus metrics #1148

Fixes

  • Fix canary rollback behaviour #1171
  • Shorten the metric analysis cycle after confirm promotion gate is open #1139
  • Fix unit of time in the Istio Grafana dashboard #1162
  • Fix the service toggle condition in the podinfo helm chart #1146

1.19.0

Release date: 2022-03-14

This release comes with support for Kubernetes Gateway API v1alpha2. For more details see the Gateway API Progressive Delivery tutorial.

Features

  • Add Gateway API as a provider #1108

Improvements

  • Add arm64 support for loadtester #1128
  • Restrict source namespaces in flagger-loadtester #1119
  • Remove support for Helm v2 in loadtester #1130

Fixes

  • Fix potential canary finalizer duplication #1125
  • Use the primary replicas when scaling up the canary (no hpa) #1110

1.18.0

Release date: 2022-02-14

This release comes with a new API field called canaryReadyThreshold that allows setting the percentage of pods that need to be available to consider the canary deployment as ready.

Starting with version, the canary deployment labels, annotations and replicas fields are copied to the primary deployment at promotion time.

Features

  • Add field spec.analysis.canaryReadyThreshold for configuring canary threshold #1102

Improvements

  • Update metadata during subsequent promote #1092
  • Set primary deployment replicas when autoscaler isn't used #1106
  • Update matchLabels for TopologySpreadContstraints in Deployments #1041

Fixes

  • Send warning and error alerts correctly #1105
  • Fix for when Prometheus returns NaN #1095
  • docs: Fix typo ExternalDNS #1103

1.17.0

Release date: 2022-01-11

This release comes with support for Kuma Service Mesh. For more details see the Kuma Progressive Delivery tutorial.

To differentiate alerts based on the cluster name, you can configure Flagger with the -cluster-name=my-cluster command flag, or with Helm --set clusterName=my-cluster.

Features

  • Add kuma support for progressive traffic shifting canaries #1085 #1093

Improvements

  • Publish a Software Bill of Materials (SBOM) #1094
  • Add cluster name to flagger cmd args for altering #1041

1.16.1

Release date: 2021-12-17

This release contains updates to Kubernetes packages (1.23.0), Alpine (3.15) and load tester components.

Improvements

  • Release loadtester v0.21.0 #1083
  • Add loadtester image pull secrets to Helm chart #1076
  • Update libraries included in the load tester to newer versions #1063 #1080
  • Update Kubernetes packages to v1.23.0 #1078
  • Update Alpine to 3.15 #1081
  • Update Go to v1.17 #1077

1.16.0

Release date: 2021-11-22

This release comes with a new API field called primaryReadyThreshold that allows setting the percentage of pods that need to be available to consider the primary deployment as ready.

Features

  • Allow configuring threshold for primary #1048

Improvements

  • Append to list of ownerReferences for primary configmaps and secrets #1052
  • Prevent Flux from overriding Flagger managed objects #1049
  • Add warning in docs about ExternalDNS + Istio configuration #1044

Fixes

  • Mark CanaryMetric.Threshold as omitempty #1047
  • Replace ioutil in testing of gchat #1045

1.15.0

Release date: 2021-10-28

This release comes with support for NGINX ingress canary metrics. The nginx-ingress minimum supported version is now v1.0.2.

Starting with version, Flagger will use the spec.service.apex.annotations to annotate the generated apex VirtualService, TrafficSplit or HTTPProxy.

Features

  • Use nginx controller canary metrics #1023
  • Add metadata annotations to generated apex objects #1034

Improvements

  • Update load tester binaries (CVEs fix) #1038
  • Add podLabels to load tester Helm chart #1036

1.14.0

Release date: 2021-09-20

This release comes with support for extending the canary analysis with Dynatrace, InfluxDB and Google Cloud Monitoring (Stackdriver) metrics.

Features

  • Add Stackdriver metric provider #991
  • Add Influxdb metric provider #1012
  • Add Dynatrace metric provider #1013

Fixes

  • Fix inline promql query #1015
  • Fix Istio load balancer settings mapping #1016

1.13.0

Release date: 2021-08-25

This release comes with support for Open Service Mesh. For more details see the OSM Progressive Delivery tutorial.

Starting with this version, Flagger container images are signed with sigstore/cosign, for more details see the Flagger cosign docs.

Features

  • Support OSM progressive traffic shifting in Flagger #955 #977
  • Add support for Google Chat alerts #953

Improvements

  • Sign Flagger container images with cosign #983
  • Update Gloo APIs and e2e tests to Gloo v1.8.9 #982
  • Update e2e tests to Istio v1.11, Contour v1.18, Linkerd v2.10.2 and NGINX v0.49.0 #979
  • Update e2e tests to Traefik to 2.4.9 #960
  • Add support for volumes/volumeMounts in loadtester Helm chart #975
  • Add extra podLabels options to Flagger Helm Chart #966

Fixes

  • Fix for the http client proxy overriding the default client #943
  • Drop deprecated io/ioutil #964
  • Remove problematic nulls from Grafana dashboard #952

1.12.1

Release date: 2021-06-17

This release comes with a fix to Flagger when used with Flux v2.

Improvements

  • Update Go to v1.16 and Kubernetes packages to v1.21.1 #940

Fixes

  • Remove the GitOps Toolkit metadata from generated objects #939

1.12.0

Release date: 2021-06-16

This release comes with support for disabling the SSL certificate verification for the Prometheus and Graphite metric providers.

Improvements

  • Add insecureSkipVerify option for Prometheus and Graphite #935
  • Copy labels from Gloo upstreams #932
  • Improve language and correct typos in FAQs docs #925
  • Remove Flux GC markers from generated objects #936

Fixes

  • Require SMI TrafficSplit Service and Weight #878

1.11.0

Release date: 2021-06-01

Breaking change: the minimum supported version of Kubernetes is v1.19.0.

This release comes with support for Kubernetes Ingress networking.k8s.io/v1. The Ingress from networking.k8s.io/v1beta1 is no longer supported, affected integrations: NGINX and Skipper ingress controllers.

Improvements

  • Upgrade Ingress to networking.k8s.io/v1 #917
  • Update Kubernetes manifests to rbac.authorization.k8s.io/v1 #920

1.10.0

Release date: 2021-05-28

This release comes with support for Graphite metric templates.

Features

  • Add Graphite metrics provider #915

Improvements

  • ConfigTracker: Scan envFrom in init-containers #914
  • e2e: Update Istio to v1.10 and Contour to v1.15 #914

1.9.0

Release date: 2021-05-14

This release comes with improvements to the Gloo Edge integration.

Starting with this version, Flagger no longer requires Gloo discovery to be enabled. Flagger generated the Gloo upstream objects on its own and optionally it can use an existing upstream (specified with .spec.upstreamRef) as a template.

Features

  • Gloo: Create gloo upstreams from non-discovered services #894
  • Gloo Upstream Ref for Upstream Config #908

Improvements

  • Adjusted Nginx ingress canary headers on init and promotion #907

1.8.0

Release date: 2021-04-29

This release comes with support for the SMI v1alpha2 and v1alpha3 TrafficSplit APIs.

For SMI compatible service mesh solutions like Open Service Mesh, Consul Connect or Nginx Service Mesh, Prometheus MetricTemplates can be used to implement the request success rate and request duration checks.

The desired SMI version can be set in the Canary object:

apiVersion: flagger.app/v1beta1
kind: Canary
metadata:
  name: my-canary
spec:
  provider: "smi:v1alpha3" # or "smi:v1alpha2"

Features

  • Implement SMI v1alpha2 and v1alpha3 routers #896 #879
  • Add alerting HTTP/S proxy option #872
  • Add option to mute alerts generated from webhooks #887

Fixes

  • Scale up canary on confirm rollout #878

1.7.0

Release date: 2021-03-23

This release comes with support for manually approving the traffic weight increase.

Features

  • Add webhook for manually approving traffic weight increase #849
  • Add WaitingPromotion phase to canary status #859

Improvements

  • linkerd: update prometheus URL based on the latest 2.10 changes #845
  • docs: update resources to disable mTLS in Istio #843
  • docs: updating slack alerting docs to point to legacy slack webhooks #833
  • chart: Add pull secret for Prometheus deployment #842
  • Update Kubernetes packages to v1.20.4 #857

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)