stefanprodan
b0b6198ec8
Add Istio virtual service and signal packages
2019-03-06 01:43:09 +02:00
stefanprodan
97fc4a90ae
Add validation for label selectors
...
- Reject deployment if the pod label selector doesn't match 'app: <DEPLOYMENT_NAME>'
2019-02-11 11:46:59 +02:00
stefanprodan
4bcf82d295
Copy annotations from canary to primary on promotion
2019-01-28 11:02:33 +02:00
stefanprodan
0830abd51d
Trigger a rolling update when configs change
...
- generate a unique pod annotation on promotion
2019-01-28 10:49:43 +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
71cd4e0cb7
Include ConfigMaps and Secrets in promotion
...
- create primary configs and secrets at bootstrap
- copy configs and secrets from canary to primary and update the pod spec on promotion
2019-01-25 16:03:51 +02:00
stefanprodan
6d8a7343b7
Add tests for analysis restart and canary promotion
2019-01-18 11:05:40 +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
4bf3b70048
Use CRD UpdateStatus for Canary status updated
...
- requires Kubernetes >=1.11
2019-01-16 01:00:39 +02:00
stefanprodan
23e8c7d616
Fix for when canary name is different to the target name
...
- use target name consistent at bootstrap
2019-01-15 21:18:46 +02:00
stefanprodan
28781a5f02
Use deep copy when updating the deployment object
...
- fix canary status update logs
2019-01-15 20:37:14 +02:00
Stefan Prodan
07f66e849d
Merge branch 'master' into scheduler
2019-01-11 15:07:03 +01:00
stefanprodan
aa2c28c733
Make autoscalerRef optional
...
- use anyOf as a workaround for the openAPI object validation not accepting empty values
- fix #23
2019-01-11 13:42:32 +02:00
Carlos Sanchez
c1bde57c17
Fix bad error message
...
"controller/scheduler.go:217","msg":"deployment . update error Canary.flagger.app \"jx-staging-croc-hunter-jenkinsx\" is invalid: []: Invalid value: map[string]interface {}{\"metadata\":map[string]interface {}{\"name\":\"jx-staging-croc-hunter-jenkinsx\", \"namespace\":\"jx-staging\", \"selfLink\":\"/apis/flagger.app/v1alpha2/namespaces/jx-staging/canaries/jx-staging-croc-hunter-jenkinsx\", \"uid\":\"b248877e-1406-11e9-bf64-42010a8000c6\", \"resourceVersion\":\"30650895\", \"generation\":1, \"creationTimestamp\":\"2019-01-09T12:04:20Z\"}, \"spec\":map[string]interface {}{\"canaryAnalysis\":map[string]interface {}{\"threshold\":5, \"maxWeight\":50, \"stepWeight\":10, \"metrics\":[]interface {}{map[string]interface {}{\"name\":\"istio_requests_total\", \"interval\":\"1m\", \"threshold\":99}, map[string]interface {}{\"name\":\"istio_request_duration_seconds_bucket\", \"interval\":\"30s\"istio-system/flagger-b486d78c8-fkmbr[flagger]: {"level":"info","ts":"2019-01-09T12:14:05.158Z","caller":"controller/deployer.go:228","msg":"Scaling down jx-staging-croc-hunter-jenkinsx.jx-staging"}
2019-01-09 13:17:17 +01:00
stefanprodan
bec96356ec
Bump CRD version to v1alpha3
...
- new field canaryAnalysis.interval
2019-01-07 01:03:31 +02:00
stefanprodan
0d96bedfee
Add webhooks to Canary CRD v1alpha2
2018-12-26 13:42:36 +02:00
stefanprodan
8878f15806
Clean up isDeploymentReady
2018-11-27 17:11:35 +02: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
stefanprodan
042d3c1a5b
Set ProgressDeadlineSeconds for primary deployment on init/promote
2018-11-27 12:10:14 +02:00
Stefan Prodan
c5930e6f70
Update deployment strategy on promotion
...
- include spec strategy, min ready seconds and revision history limit to initialization and promotion
2018-11-24 20:03:02 +02:00
Stefan Prodan
65bd77c88f
Add last transition time to Canary CRD status
2018-11-24 15:48:35 +02:00
Stefan Prodan
344c7db968
Make golint happy and add codecov
2018-10-23 16:36:48 +03:00
Stefan Prodan
9b5c4586b9
Add deployer sync tests
2018-10-22 16:02:01 +03: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
Stefan Prodan
a4f890c8b2
Add autoscaling support
...
- add HorizontalPodAutoscaler reference to CRD
- create primary HPA on canary bootstrap
2018-10-11 11:16:56 +03:00
Stefan Prodan
302de10fec
Canary CRD refactoring
...
- set canaries.flagger.app version to v1alpha1
- replace old Canary spec with CanaryDeployment
2018-10-11 01:43:53 +03:00