614 Commits

Author SHA1 Message Date
stefanprodan
b6c98799d1 Release v1.1.0 2020-08-19 12:07:39 +03:00
Stefan Prodan
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
jqlu
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 Prodan
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
Stefan Prodan
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
stefanprodan
6498cccb85 Use target port for virtual routers
AppMesh does not support port mappings
2020-05-13 22:50:26 +03:00
stefanprodan
6c9847ae14 Use FQDN for virtual nodes DNS 2020-05-13 22:43:10 +03:00
stefanprodan
b0b0cedde1 Map target port for virtual node listeners 2020-05-13 17:26:36 +03:00
stefanprodan
86939d9dce Register AppMesh VirtualNodes before Deployment init 2020-05-08 13:16:19 +03:00
stefanprodan
854d7665f0 Add AppMesh v1beta2 to factories 2020-05-08 13:15:37 +03:00
stefanprodan
52c757250a Fix annotations diff 2020-05-08 13:14:50 +03:00
stefanprodan
fe1d85b0ce Add AppMesh v1beta2 router tests 2020-05-08 13:13:27 +03:00
stefanprodan
0aac94b782 Implement AppMesh v1beta2 router 2020-05-08 13:12:58 +03:00
stefanprodan
2d1c4a9d84 Use API providers in observer factory 2020-05-06 01:14:41 +03:00
stefanprodan
eba6478729 Add providers to API 2020-05-06 01:12:41 +03:00
stefanprodan
7686b4b01a Generate AppMesh v1beta2 client 2020-05-05 19:31:03 +03:00
stefanprodan
55c89770d7 Add AppMesh v1beta2 clientset and RBAC 2020-05-04 22:22:51 +03:00
Ed
f46eaa8d05 This makes the primary ready in the TestScheduler_DeploymentAlerts test
in order to send out an alert.  Previously, it did not reach a state
to send an alert.
2020-04-30 00:20:25 -04:00
Gijs van Dulmen
2b7a95fee5 Fix slack naming as well in tests 2020-04-27 13:13:46 +02:00
Gijs van Dulmen
647eb81021 Fix naming but keep structs 2020-04-27 09:46:13 +02:00
Stefan Prodan
bda620aae9 Merge pull request #560 from tariq1890/fix_lint
fix issues reported by the linter
2020-04-18 11:12:38 +03:00
Tariq Ibrahim
d41ed43ef9 fix issues reported by the linter 2020-04-17 11:45:44 -07:00