All notable changes to this project are documented in this file.
Adds support for Service Mesh Interface and Gloo ingress controller
- Add support for SMI (Istio weighted traffic) #180
- Add support for Gloo ingress controller (weighted traffic) #179
Fixes for Jenkins X deployments (prevent the jx GC from removing the primary instance)
- Do not copy labels from canary to primary deployment #178
- Add NGINX ingress controller e2e and unit tests #176
Fixes for custom metrics checks and NGINX Prometheus queries
- Fix promql queries for custom checks and NGINX #174
Adds support for NGINX ingress controller
- 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
- Fix duplicate hosts Istio error when using wildcards #162
Adds support for SuperGloo
- Supergloo support for canary deployment (weighted traffic) #151
Move Flagger and the load tester container images to Docker Hub
- Add Bash Automated Testing System support to Flagger tester for running acceptance tests as pre-rollout hooks
Adds pre/post rollout webhooks
- Add
pre-rolloutandpost-rolloutwebhook types #147
- Set default
meshIstio gateway only if no gateway is specified #141
Adds support for App Mesh
- Reconcile Kubernetes ClusterIP services #122
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.
- A/B testing - canary with session affinity #88
- Update the analysis interval when the custom resource changes #91
Adds support for CORS policy and HTTP request headers manipulation
- Refactor the routing management #72 #80
- Fine-grained RBAC #73
- Add option to limit Flagger to a single namespace #78
Adds support for custom metric checks, HTTP timeouts and HTTP retries
- Allow custom promql queries in the canary analysis spec #60
- Add HTTP timeout and retries to canary service spec #62
Allows for HTTPMatchRequests and HTTPRewrite to be customized in the service spec of the canary custom resource.
- Add HTTP match conditions and URI rewrite to the canary service spec #55
- Update virtual service when the canary service spec changes #54 #51
- Run e2e testing on Kubernetes Kind for canary promotion #53
Allows skipping the analysis phase to ship changes directly to production
- Add option to skip the canary analysis #46
- Reject deployment if the pod label selector doesn't match
app: <DEPLOYMENT_NAME>#43
Track changes in ConfigMaps and Secrets #37
- 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
- Copy deployment labels from canary to primary at bootstrap and promotion
Load testing webhook #35
- 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
- Run wekbooks before the metrics checks to avoid failures when using a load tester
Restart canary analysis if revision changes #31
- Drop support for Kubernetes 1.10
- 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
- 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
Configurable canary analysis duration #20
- Helm chart: flag
controlLoopIntervalhas been removed
- 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
Webhooks #18
- 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
Improve Slack notifications #14
- Add canary analysis metadata to init and start Slack messages
- Add rollback reason to failed canary Slack messages
Canary progress deadline #10
- Rollback canary based on the deployment progress deadline check
- Add progress deadline to Canary CRD (defaults to 10 minutes)
First stable release
- 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
Initial semver release
- 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