stefanprodan
5d81876d07
Make the metric interval optional
...
- set default value to 1m
2019-02-27 16:03:56 +02:00
stefanprodan
4d61a896c3
Add custom promql queries support
2019-02-27 15:48:31 +02:00
stefanprodan
29cdd43288
Implement skip analysis
...
When skip analysis is enabled, Flagger checks if the canary deployment is healthy and promotes it without analysing it. If an analysis is underway, Flagger cancels it and runs the promotion.
2019-02-13 15:30:29 +02:00
stefanprodan
5b296e01b3
Detect changes in configs and trigger canary analysis
...
- restart analysis if a ConfigMap or Secret changes during rollout
- add tests for tracked changes
2019-01-26 12:36:27 +02:00
stefanprodan
bd6d446cb8
Go format scheduler
2019-01-20 14:04:10 +02:00
stefanprodan
02236374d8
Run the wekbooks before the metrics checks
...
- log warning when no values are found for Istio metric due to lack of traffic
2019-01-20 13:54:44 +02:00
stefanprodan
6d8a7343b7
Add tests for analysis restart and canary promotion
2019-01-18 11:05:40 +02:00
stefanprodan
aff8b117d4
Restart validation if revision changes during analysis
2019-01-17 15:13:59 +02:00
stefanprodan
1d31b5ed90
Add canary name and namespace to controller logs
...
- zap key-value: canary=name.namespace
2019-01-17 13:58:10 +02:00
stefanprodan
1ef310f00d
Add traffic weight to canary status
...
- show current weight on kubectl get canaries and kubectl get all
2019-01-16 16:29:59 +02:00
stefanprodan
acdd2c46d5
Refactor Canary status
...
- add status phases (Initialized, Progressing, Succeeded, Failed)
- rename status revision to LastAppliedSpec
2019-01-16 15:06:38 +02:00
stefanprodan
9872e6bc16
Skip readiness checks if canary analysis finished
2019-01-16 13:18:53 +02:00
stefanprodan
9232c8647a
Check if multiple canaries have the same target
...
- log an error on target duplication ref #13
2019-01-15 21:43:05 +02:00
stefanprodan
882b4b2d23
Update the control loop interval flag description
2019-01-08 13:15:10 +02:00
stefanprodan
bec96356ec
Bump CRD version to v1alpha3
...
- new field canaryAnalysis.interval
2019-01-07 01:03:31 +02:00
stefanprodan
e6e3e500be
Schedule canary analysis based on interval
2019-01-07 00:26:01 +02:00
stefanprodan
e86c02d600
Implement canary external check
...
- do a HTTP POST for each webhook registered in the canary analysis
- increment the failed checks counter if a webhook returns a non-2xx status code and log the error and the response body if exists
2018-12-26 14:41:35 +02:00
stefanprodan
0d96bedfee
Add webhooks to Canary CRD v1alpha2
2018-12-26 13:42:36 +02:00
Stefan Prodan
03408683c0
Add details to Slack messages
...
- attach canary analysis metadata to init/start messages
- add rollback reason to failed canary messages
2018-12-06 12:51:02 +07:00
stefanprodan
4cb5ceb48b
Rollback canary based on the deployment progress deadline check
...
- determine if the canary deployment is stuck by checking if there is a minimum replicas unavailable condition and if the last update time exceeds the deadline
- set progress deadline default value to 60 seconds
2018-11-27 15:44:15 +02:00
Stefan Prodan
769aff57cb
Add Slack notifications for canary events
2018-11-25 11:44:45 +02:00
Stefan Prodan
580924e63b
Record canary duration and total
...
- add Prometheus metrics canary_duration_seconds and canary_total
2018-10-29 21:44:43 +02:00
Stefan Prodan
4a8aa3b547
Add recorder component
...
- records the canary analysis status and current weight as Prometheus metrics
2018-10-29 11:25:36 +02:00
Stefan Prodan
663dc82574
Controller refactoring part two
...
- share components between loops
2018-10-11 20:51:12 +03:00
Stefan Prodan
baeee62a26
Controller refactoring
...
- split controller logic into components (deployer, observer, router and scheduler)
- set the canary analysis final state (failed or finished) in a single run
2018-10-11 19:59:40 +03:00