All notable changes to this project are documented in this file.
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
controlLoopInterval
has 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