Commit Graph

238 Commits

Author SHA1 Message Date
Alexey Kubrinsky
4932527464 Istio Canary TCP service support
Signed-off-by: Alexey Kubrinsky <akubrinsky@zetaglobal.com>
2024-02-07 14:51:30 +01:00
Sanskar Jaiswal
1f2c464b45 gatewayapi: add support for timeouts
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2023-11-29 20:56:33 +05:30
Sanskar Jaiswal
0d0d0ef811 gatewayapi: add support for v1 and drop v1alpha2
Add support for v1 of Gateway API `HTTPRoute`. Drop support for v1alpha2
as it was deprecated almost a year ago.

Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2023-11-29 20:56:30 +05:30
rye-sw
d796c206d3 Set original node selector value when finalizing service
Signed-off-by: rye-sw <rye@stairwell.com>
2023-10-16 10:44:18 -07:00
Sanskar Jaiswal
dc6dd0661a gatewayapi: add support for b/g mirroring
Add support for mirroring requests while performing B/G deployments with
Gateway API. A `RequestMirror` filter pointing to the canary service is
added to the HTTPRoute during a Canary run. During the Canary run, drift
correction for `.spec.rules[].filters` is disabled to avoid removing the
mirror filter.

Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2023-10-03 14:41:37 +05:30
Sanskar Jaiswal
c0e2096f92 gatewayapi: add support for route rule filters
Add support for [`Filters`](https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1beta1.HTTPRouteFilter)
in the HTTPRoute API. We reuse most of the existing fields used for
Istio to construct the appopriate filter. A new API
`.spec.service.mirror` is added to allow for request mirroring. The
`.spec.service.rewrite` API has been changed to a custom `HTTPRewrite`
API instead of importing it from Istio, to allow covering all features
that Gateway API provides.

Support for the [`RequestRedirect`](https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1beta1.HTTPRequestRedirectFilter)
Filter has been left out on purpose, since it's not possible to specify
it if the same rule also specifies `.backendRefs` (which Flagger does).

Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2023-09-22 16:10:09 +05:30
Sanskar Jaiswal
00fcf991a6 gatewayapi: add support for session affinity
Add support for Canary releases with session affinity for Gateway API.
This enables any Gateway API implementation that supports
[`ResponseHeaderModifier`](3d22aa5a08/apis/v1beta1/httproute_types.go (L651))
to be used with session affinity.

Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2023-09-11 13:57:23 +05:30
Son Bui
2e4fe73d34 fix: Incorrect format for istio gateways #1104
Signed-off-by: Son Bui <sonbv00@gmail.com>
2023-08-28 20:46:30 +08:00
Nick Caballero
8747d15417 feat: Copy slowStartConfig for Gloo upstreams
Signed-off-by: Nick Caballero <nick.caballero@offerup.com>
2023-07-13 18:25:02 +05:30
Jiří Pinkava
d2564874ab Fix panic when annotation of ingress is empty
When the annotation of ingress is not set, the returned value is nil
(not empty map). Trying to assign to this map leads to panic.

Signed-off-by: Jiří Pinkava <j-pi@seznam.cz>
2023-05-29 11:27:28 +02:00
jonny.langefeld
e8aba087ac Enable updates for labels and annotations
Fix #1386

Signed-off-by: jonny.langefeld <jonnylangefeld@gmail.com>
Signed-off-by: Jonny Langefeld <jonnylangefeld@gmail.com>
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2023-04-12 16:04:28 +05:30
Sanskar Jaiswal
8229852585 disable flux helm drift detection for managed resources
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2023-04-10 17:28:39 +05:30
ta924@yahoo.com
44363d5d99 address issue with all canary labels copied to primary on promote
address issue with all canary labels copied to primary on promote

Signed-off-by: ta924@yahoo.com <ta924@yahoo.com>

address review comments
2023-04-09 22:08:09 -05:00
Sanskar Jaiswal
202b6e7eb1 use regex to match against headers in istio
Use regex filtering to match against session affinity cookie headers
when using Istio instead of an exact match.

Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2023-02-08 21:41:19 +05:30
Gallardot
85fe251991 create canary apisix object only with the related http route
Signed-off-by: Gallardot <tttick@163.com>
2022-12-07 11:56:57 +08:00
Gallardot
e440be17ae add e2e tests and helper functions for router
Signed-off-by: Gallardot <tttick@163.com>
2022-12-06 17:54:03 +05:30
Gallardot
ce52408bbc improve apisix router and metric observer
Signed-off-by: Gallardot <tttick@163.com>
2022-12-06 17:52:38 +05:30
Gallardot
badf7b9a4f chore: add UT, add DIFF
Signed-off-by: Gallardot <tttick@163.com>
2022-12-06 14:46:43 +05:30
Gallardot
3e9fe97ba3 [apisix] Implement router interface and observer interface
Signed-off-by: Gallardot <tttick@163.com>
2022-12-06 14:46:42 +05:30
Christoph Grotz
e015a409fe Added support for Gateway API v1beta1
Signed-off-by: Christoph Grotz <grotz@google.com>
2022-11-22 15:51:16 +01:00
Sanskar Jaiswal
14ccda5506 add unit tests for session affinity in istio router
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-11-10 13:17:16 +05:30
Sanskar Jaiswal
a496b99d6e add session affinity support for weighted routing with istio
Add `.spec.analysis.sessionAffinity` to configure session affinity for
weighted routing. Add support for session affinity in the Istio router,
using the `Set-Cookie` and `Cookie` headers.

Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-11-10 13:17:16 +05:30
mdolinin
4c0b2beb63 fix(gloo): Use correct route table name in case service name was overwritten
Signed-off-by: mdolinin <dmo.builder@gmail.com>
2022-10-24 21:38:08 -04:00
Sanskar Jaiswal
e593f2e258 gatewayapi: fix reconcilation of nil hostnames
Signed-off-by: Sanskar Jaiswal <sanskar.jaiswal@weave.works>
2022-10-10 16:29:21 +05:30
brandoncate
0cecab530f fix contour httproxy annotations overwrite
Signed-off-by: brandoncate <brandon.cate@shipt.com>
2022-06-17 10:02:02 -05:00
Sanskar Jaiswal
560f884cc0 Merge pull request #1185 from philnichol/adding-appprotocol
feat: Add an optional `appProtocol` field to `spec.service`
2022-05-19 19:26:49 +05:30
Phil Nichol
d79898848e feat: Added the optional appProtocol field to Canary.Service
Signed-off-by: Phil Nichol <35630607+philnichol@users.noreply.github.com>
2022-05-15 19:07:18 +01:00
Sanskar Jaiswal
8c690d1b21 avoid setting owner refs if the service mesh cluster is different
Signed-off-by: Sanskar Jaiswal <sanskar.jaiswal@weave.works>
2022-05-06 01:06:03 +05:30
Sanskar Jaiswal
7df1beef85 Add flag to disable cross namespace refs to AlertProviders and MetricTemplates
Signed-off-by: Sanskar Jaiswal <sanskar.jaiswal@weave.works>
2022-04-27 17:09:07 +05:30
brandoncate
d09969e3b4 update httpproxy
Signed-off-by: brandoncate <brandon.cate@shipt.com>
2022-04-08 09:58:23 -05:00
brandoncate
41904b42f8 add assertion to retryOn field
Signed-off-by: brandoncate <brandon.cate@shipt.com>
2022-04-08 09:58:23 -05:00
brandoncate
48cc7995d7 adding retryon support
Signed-off-by: brandoncate <brandon.cate@shipt.com>
2022-04-08 09:58:23 -05:00
Sanskar Jaiswal
20f2d3f2f9 add annotation to enable appmesh logs
Signed-off-by: Sanskar Jaiswal <sanskar.jaiswal@weave.works>
Co-authored-by: wucg <wucg@trip.com>
2022-03-22 15:45:02 +05:30
Marco Amador
c7cbb729b7 add destination port when port discovery is active and delegation is true
Signed-off-by: Marco Amador <amador.marco@gmail.com>
2022-03-16 18:57:02 +00:00
Sanskar Jaiswal
ee535afcb9 remove unnecessary log statement
Signed-off-by: Sanskar Jaiswal <sanskar.jaiswal@weave.works>
2022-03-15 18:07:23 +05:30
Sanskar Jaiswal
91126d102d fix a/b testing logic and update e2e tests
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-03-10 16:54:36 +05:30
Sanskar Jaiswal
5e1d00d4d2 add router_test and make test install script platform agnostic
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-03-10 16:54:36 +05:30
Sanskar Jaiswal
00d54d268c add gateway tests and change provider aname
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-03-10 16:54:36 +05:30
Sanskar Jaiswal
174e9fdc93 Add support for Gateway API as a provider.
Adds Gateway API as a provider for progressive traffic shifting, A/B
testing and Blue-Green testing. Adds a new field in the Canary
`spec.service.gatewayRefs` which specifies the Gateway that Flagger
should use.

Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-03-10 16:54:36 +05:30
Stefan Prodan
a0f1638f6c Remove Flux deprecated marker
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-01-21 15:11:42 +02:00
John Harris
47be2a25f2 Add Kuma routing and metrics
Signed-off-by: John Harris <john.harris@konghq.com>
2021-12-18 14:07:59 -08:00
Stefan Prodan
45ecaa9084 Prevent Flux from overriding Flagger managed objects
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-11-10 18:19:04 +02:00
Jonny Langefeld
d5994ac127 Add metadata to istio VirtualService
Some third party software relies on annotations and labels on istios VirtualServices. For instance external-dns makes use of the `external-dns.alpha.kubernetes.io/controller` annotation. Currently there is no way to set labels and annotations on the VirtualService resource.

This change takes the metadata from the `canary.Spec.Service.Apex` property to replicate exactly what is already possible for a traefik resource:
c36a13ccff/pkg/router/traefik.go (L59-L68)

Fix #854

Signed-off-by: Jonny Langefeld <jonny.langefeld@gmail.com>
2021-10-26 10:59:34 -07:00
Johnson Shi
11375b6890 Support OSM progressive traffic shifting
Signed-off-by: Johnson Shi <Johnson.Shi@microsoft.com>
2021-08-11 17:43:00 -07:00
Stefan Prodan
c36a13ccff Remove the GitOps Toolkit metadata from generated objects
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-06-17 17:49:22 +03:00
Stefan Prodan
cc673159d7 Remove Flux GC markers from generated objects
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-06-15 17:45:33 +03:00
Hans Knecht
e7357c4e07 fix: updating to use include-label-prefix
fix: remove copy of labels

Signed-off-by: Hans Knecht <Hans.Knecht@missionlane.com>
2021-06-14 11:39:55 -04:00
Hans Knecht
8555f8250a feat: copy labels from upstream
Signed-off-by: Hans Knecht <Hans.Knecht@missionlane.com>
2021-06-11 16:18:29 -04:00
Stefan Prodan
a2784c533e Upgrade Ingress to networking/v1
- breaking change: drop support for Ingress `k8s.io/api/networking/v1beta1`
- routing: use Ingress `k8s.io/api/networking/v1` for NGINX and Skipper routers
- e2e: update ingress-nginx v0.46.0 and skipper to v0.13.61

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-05-26 09:59:26 +03:00
Stefan Prodan
41e427d645 Merge pull request #908 from kdorosh/add_gloo_upstreamRef
Gloo Upstream Ref for Upstream Config
2021-05-14 15:37:49 +03:00