Commit Graph
25 Commits
Author SHA1 Message Date
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
stefanprodan bb627779d9 Update Kubernetes packages to v1.18.8 2020-08-15 09:16:11 +03:00
stefanprodan 66203c0916 build: Update Kubernetes client-go to 1.18.2 2020-05-02 08:54:22 +03:00
Tariq Ibrahim e473d4b2fb remove unnecessary dependency on k/utils 2020-04-16 16:14:08 -07:00
sayboras c0515fc6ff Upgrade to kube 1.18 2020-04-04 23:46:38 +11:00
mathetake ef8b6fe9b8 finalizer: refactoring 2020-03-29 17:07:18 +09:00
mathetake 4242bf0f07 pkg/canary/daemonset: fix ready condition according to kubectl 2020-03-27 19:31:12 +09:00
Tariq Ibrahim d8d2345359 clean up and update dependencies of flagger
Signed-off-by: Tariq Ibrahim <tariq181290@gmail.com>
2020-03-20 17:11:02 -07:00
stefanprodan 6d4db45d6c build: update Go to v1.14 and Alpine to v3.11 2020-03-04 16:13:49 +02:00
mathetake a616199b81 refactor tests: simplify assertion 2020-03-04 21:46:08 +09:00
mathetake 4ff28d7bd5 pkg/metrics/providers: add AWS CloudWatch metrics provider 2020-03-02 21:58:58 +09:00
stefanprodan f5182061ef Compute spec hash with spew instead of hashstructure 2020-02-17 20:00:35 +02:00
stefanprodan 0106dff2d7 Update packages to Kubernetes v1.17.2 2020-02-14 12:35:33 +02:00
stefanprodan c38bd144e4 Update Kubernetes packages to v1.17.1 2020-01-25 12:51:44 +02:00
stefanprodan 8dc4c03258 Update Kubernetes packages to 1.17 2020-01-11 18:24:31 +02:00
stefanprodan 46579d2ee6 Refactor Gloo integration
- build Gloo UpstreamGroup clientset
- drop solo-io, envoyproxy, hcl, consul, opencensus, apiextensions deps
- use the native routers with supergloo
2019-10-21 16:33:47 +03:00
stefanprodan 053d0da617 Remove thrift replace from go.mod 2019-09-27 16:59:15 +03:00
stefanprodan 7a4e0bc80c Update go mod to 1.13 2019-09-27 16:53:55 +03:00
Anton Kislitcyn f56b6dd6a7 Add annotations prefix for ingresses 2019-09-06 11:36:06 +02:00
stefanprodan ff4aa62061 Retry canary status update on conflict 2019-07-10 11:31:20 +03:00
stefanprodan 3e84799644 Detect changes in pod template metadata
Use the pod template spec hash to track changes (breaking)
2019-07-09 08:52:31 +03:00
Daniel Herman 764e7e275d Validate the minimum supported k8s version
Fixes #103
2019-06-27 00:18:08 -04:00
stefanprodan d0591916a4 Update k8s packages 2019-06-21 23:42:59 +03:00
stefanprodan a894a7a0ce CircleCI: update code gen package 2019-06-21 20:36:18 +03:00
stefanprodan 028933b635 Switch to go mod from dep 2019-06-11 19:37:36 +03:00