Commit Graph
981 Commits
Author SHA1 Message Date
68e4e1cc68 Apply suggestions from code review
Co-authored-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-09-09 13:51:27 +02:00
Filip Petkovski 2c249e2a92 Add New Relic as a metrics provider 2020-09-09 12:10:53 +02:00
Forrest Thomas 621150cce6 add e2e istio tests for inconsistent naming between service name and selector 2020-09-02 12:46:02 -07:00
Forrest Thomas ef57dcf75d add a small test for verifying the label selector is named as expected for daemonsets 2020-09-02 12:46:02 -07:00
Forrest Thomas 1bd7ce4eed add a small test for verifying the label selector is named as expected for deployments 2020-09-02 12:46:02 -07:00
Forrest Thomas 364fd0db65 setup daemonset tests to allow configurable name, label and selector 2020-09-02 12:46:02 -07:00
Forrest Thomas b378b3eb5d setup deployment tests to allow configurable name, label and selector 2020-09-02 12:46:02 -07:00
Forrest Thomas 0db82b64f7 correct formatting 2020-09-02 12:46:02 -07:00
Forrest Thomas c9dc5c5936 fix incorrect primary label value during promotion 2020-09-02 12:46:02 -07:00
Forrest Thomas 6f372d787d fix the incorrect primary label value 2020-09-02 12:46:02 -07:00
Forrest Thomas f70f43bb3d use the existing labelSelector value instead of using the service name as the value 2020-09-02 12:46:02 -07:00
Samuel Lang e7da8c3f35 Skipper: preserve Predicates
Current implementation did overwrite potentially existing Predicates.

We face the situation that we need to add further Predicates which we need to keep in order to have  a proper route setup
2020-08-26 12:00:36 +02:00
Robert Kwolek a6a38c6a7a fix: go fixes 2020-08-25 12:22:57 +02:00
Robert Kwolek 0ccf97bec1 fix: max weight for steps fixed 2020-08-25 10:34:59 +02:00
Robert Kwolek 16a6df59ab Merge remote-tracking branch 'upstream/master' 2020-08-20 21:03:43 +02:00
Robert Kwolek 906103daa5 feat: weighted deployments 2020-08-20 20:56:10 +02:00
mathetake 87c090ad8c pkg/canary: add unit test of configIsDisabled and its optimization 2020-08-20 21:15:27 +09:00
stefanprodan b6c98799d1 Release v1.1.0 2020-08-19 12:07:39 +03:00
Stefan ProdanandGitHub 6494893812 Merge pull request #671 from stealthybox/per-config-tracker-disable
Support per-config configTracker disable via ConfigMap/Secret annotation
2020-08-19 10:48:09 +03:00
Samuel Lang ad8233cf46 👷 Add high-level E2E test steps for Skipper
Add e2e-skipper* files for test setup

It does the following things:
* install Skipper ingress with Kustomize
* load Flagger image onto the local cluster
* install Flagger and Prometheus in the flagger-system namespace
2020-08-18 17:02:45 +02:00
leigh capili dad70a6876 Support per-config configTracker disable via ConfigMap/Secret annotation
This allows a user to annotate a specific ConfigMap or Secret to be disabled/ignored via the
configTracking logic that tracks config changes makes configuration copies for the primary Deploy

Closes #435
2020-08-17 16:24:56 -06:00
Samuel Lang 39e55daa04 📈 Skipper Metrics Observer
Te be able to distinct Skipper routes we need to combine the Canary data to generate the Skipper metric label.

"request-success-rate" and  "request-duration" queries are implemented and tested that provide those obersvations from Skipper metrics

* Takes into account how Skipper renders the paths accordingly and reformats the quieries.
2020-08-17 08:23:38 +02:00
Samuel Lang ca14a08f9c Skipper Router Implementation
Router implementation for zalan.do/Skipper Ingress -
An HTTP router and reverse proxy for service composition, including use cases like Kubernetes Ingress

https://github.com/zalando/skipper/

* The concept is to define routes with specific weights via the skipper specific annotation predicate of "zalando.org/backend-weights".
* A new "canary ingress" is created that has higher "weight" thus receiving all traffic, which distributes progressively
* After the canary process is finished, this ingress is disabled via the "False()" annotation predicate to route traffic again back to the apex Ingress.
There are certain Skipper principles which are taken into account:

```
Skipper Principles:
* if only one backend has a weight, only one backend will get 100% traffic
* if two of three or more backends have a weight, only those two should get traffic.
* if two backends don't have any weight, it's undefined and right now they get equal amount of traffic.
* weights can be int or float, but always treated as a ratio.

Implementation:
* apex Ingress is immutable
* new canary Ingress contains two paths for primary and canary service
* canary Ingress manages weights on primary & canary service, hence no traffic to apex service
```
2020-08-17 08:23:38 +02:00
leigh capili 1242825c42 Fix O(log n) bug over network in GetTargetConfigs() when using --enable-config-tracking
Read for more details:
https://github.com/weaveworks/flagger/issues/658#issuecomment-669389203
2020-08-05 13:16:50 -06:00
stefanprodan 74db314288 Release v1.0.1 2020-07-18 09:21:37 +03:00
jqluandGitHub 7fd8251a06 fix typo in status.go 2020-07-03 10:47:40 +08:00
Rafael Gaspar b890b79234 Fix multiple paths per rule on canary ingress 2020-06-22 15:59:27 +02:00
stefanprodan de3aeab702 Release v1.0.0 2020-06-17 11:11:06 +03:00
stefanprodan e8ca5f270b Change builtin metrics to work with Istio >= 1.5 2020-06-17 10:13:29 +03:00
Stefan ProdanandGitHub 6f65f6096d Merge pull request #607 from justinabrahms/master
Support for specifying additional arguments to concord tasks
2020-06-16 09:26:37 +03:00
stefanprodan 0715e1ca37 Add AppMesh timeout unit test 2020-06-04 13:48:52 +03:00
stefanprodan 37ec07d2ec Set timeout for virtual nodes and routers 2020-06-04 12:37:34 +03:00
stefanprodan 7a18bfaac5 Add timeout fields to AppMesh client 2020-06-04 12:15:44 +03:00
Sebastien Le Digabel 8c55bb222d Rephrasing Canary Progressing message
Fixes #606.

Also fixed the alert message to keep it consistent with the message,
along with the documentation.
2020-06-02 14:35:55 +01:00
Justin Abrahms dcab2d518f Support for specifying additional arguments to concord tasks 2020-06-02 04:28:54 -07:00
stefanprodan 6db5b5c417 Add allow origins field to CORS spec 2020-06-01 14:58:08 +03:00
stefanprodan 2e75dbb170 Add progressive promotion test 2020-05-18 10:44:23 +03:00
stefanprodan eaa5b14be6 Implement progressive traffic shifting on promotion 2020-05-18 10:34:10 +03:00
stefanprodan f3b444ab49 Add promotion step weight to Canary CRD 2020-05-18 10:34:10 +03:00
mathetake e0de9d0afa pkg/controller: add unit test for checkMetricProviderAvailability 2020-05-16 11:12:45 +09:00
mathetake a17e8b4794 not return even if checkMetricProviderAvailability fails 2020-05-15 21:44:35 +09:00
mathetake ad73643e4a pkg/metrics/provideres: delete fake value 2020-05-15 19:36:11 +09:00
mathetake 5d84596bc0 pkg/controller: check metrics server's availability during initalization 2020-05-15 19:35:40 +09:00
stefanprodan 99bc7040a3 Release v1.0.0-rc.5 2020-05-14 14:00:23 +03:00
3e19ef0f01 Make Contour annotation const
Co-authored-by: Takeshi Yoneda <cz.rk.t0415y.g@gmail.com>
2020-05-14 12:48:12 +03:00
stefanprodan fbaf8fedc7 Set ingress class in factory 2020-05-14 12:27:11 +03:00
stefanprodan 48467eb8b3 Add ingress class support for Contour
Add `-ingress-class` command flag. When set, the specified class is used to annotate the generated HTTPProxy objects.
2020-05-14 12:17:03 +03:00
mathetake 772099f073 pkg/metrics/providers: remove redundant assertion in prometheus test 2020-05-14 17:48:14 +09:00
stefanprodan e7f2d22505 Fix svc update conflict 2020-05-14 11:08:32 +03:00
stefanprodan 6cfa432834 Retry canary initialization on conflict 2020-05-14 11:03:32 +03:00