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
```
add e2e tests istio
clean up comment from review
add e2e tests istio
clean up comment from review
clean up logging statement
add e2e tests istio
clean up comment from review
clean up logging statement
add log statement on e2e iteration
add e2e tests istio
clean up comment from review
clean up logging statement
add log statement on e2e iteration
extend timeout for finalizing
add e2e tests istio
clean up comment from review
clean up logging statement
add log statement on e2e iteration
extend timeout for finalizing
add phase to kustomize crd
add e2e tests istio
clean up comment from review
clean up logging statement
add log statement on e2e iteration
extend timeout for finalizing
add phase to kustomize crd
revert timeout on circleci
vs and svc checks for istio e2e tests
fix fmt errors and tests
add get statement in e2e test
add get statement in e2e test
add namespace to e2e
use only selector for service revert
rebase and squash
fix fmt issues
revert Dockerfile
revert go.mod and go.sum
introduction of finalizer
introduction of finalizer
remove test for finalizer add istio tests
fix fmt issues
revert go.mod and go.sum
revert Dockerfile and main.go
fmt deployment controller
introduction of finalizer
rebase and squash
fix fmt issues
revert Dockerfile
revert go.mod and go.sum
introduction of finalizer
introduction of finalizer
remove test for finalizer add istio tests
fix fmt issues
revert go.mod and go.sum
revert Dockerfile and main.go
fmt deployment controller
add unit tests for finalizing
introduction of finalizer
rebase and squash
fix fmt issues
revert Dockerfile
revert go.mod and go.sum
introduction of finalizer
introduction of finalizer
remove test for finalizer add istio tests
fix fmt issues
revert go.mod and go.sum
revert Dockerfile and main.go
fmt deployment controller
run fmt to clean up formatting
review changes
add kubectl annotation
add kubectl annotation support
introduction of finalizer
introduction of finalizer
rebase and squash
fix fmt issues
revert Dockerfile
revert go.mod and go.sum
introduction of finalizer
introduction of finalizer
remove test for finalizer add istio tests
fix fmt issues
revert go.mod and go.sum
revert Dockerfile and main.go
fmt deployment controller
introduction of finalizer
rebase and squash
fix fmt issues
revert Dockerfile
revert go.mod and go.sum
introduction of finalizer
introduction of finalizer
remove test for finalizer add istio tests
fix fmt issues
revert go.mod and go.sum
revert Dockerfile and main.go
fmt deployment controller
add unit tests for finalizing
introduction of finalizer
rebase and squash
fix fmt issues
revert Dockerfile
revert go.mod and go.sum
introduction of finalizer
introduction of finalizer
remove test for finalizer add istio tests
fix fmt issues
revert go.mod and go.sum
revert Dockerfile and main.go
fmt deployment controller
run fmt to clean up formatting
review changes
introduction of finalizer
introduction of finalizer
rebase and squash
fix fmt issues
revert Dockerfile
revert go.mod and go.sum
introduction of finalizer
introduction of finalizer
remove test for finalizer add istio tests
fix fmt issues
revert go.mod and go.sum
revert Dockerfile and main.go
fmt deployment controller
introduction of finalizer
rebase and squash
fix fmt issues
revert Dockerfile
revert go.mod and go.sum
introduction of finalizer
introduction of finalizer
remove test for finalizer add istio tests
fix fmt issues
revert go.mod and go.sum
revert Dockerfile and main.go
fmt deployment controller
add unit tests for finalizing
introduction of finalizer
rebase and squash
fix fmt issues
revert Dockerfile
revert go.mod and go.sum
introduction of finalizer
introduction of finalizer
remove test for finalizer add istio tests
fix fmt issues
revert go.mod and go.sum
revert Dockerfile and main.go
fmt deployment controller
run fmt to clean up formatting
review changes
- add analysis field to Canary spec
- deprecate canaryAnalysis filed (to be removed in the next API version)
- maintain backwards compatibility with v1alpha3 by using spec.canaryAnalysis if spec.analysis is nil
- set analysis threshold default value to 1
- remove deprecated appendHeaders from Istio client
- propagate header operations from canary service headers to Istio virtual service
- add Istio router tests for request/response header removal
- update header operations examples in docs