Open bmbferreira opened 2 years ago
Noticed that this is not an issue with argo rollouts since argo rollouts does not creates/manages a virtual service and instead it references an existing one: https://argoproj.github.io/argo-rollouts/features/traffic-management/istio/#rollout-ownership-over-the-virtual-service
Would this something that is planned to be implemented in flagger? It would avoid this issue since I could have a single VirtualService with all the routes and just reference it on the flagger Canary
CRD.
Flagger does support VirtualService delegation, maybe that solves your issue?
Hi @stefanprodan, thanks for answering! Are you referring to this delegate? I tried that but it doesn't work with regex matches. I get this error if I try to have a virtual service and then delegate the regexes to other virtual services:
delegate url match does not support regex match for delegating istio
more info here: https://github.com/istio/istio/issues/29845 https://github.com/istio/istio/blob/master/pkg/config/validation/virtualservice.go#L159
Hi @stefanprodan, thanks for answering! Are you referring to this delegate? I tried that but it doesn't work with regex matches. I get this error if I try to have a virtual service and then delegate the regexes to other virtual services:
delegate url match does not support regex match for delegating istio
more info here: istio/istio#29845 https://github.com/istio/istio/blob/master/pkg/config/validation/virtualservice.go#L159
i`v get the same error. do you get the solutions?
@easayliu for this specific issue I ended up deploying an internal proxy (I used haproxy but it can be nginx, envoy, etc) inside the cluster that basically redirects the traffic based on the url path.
The other option is to use argo rollouts instead of flagger.
Currently the Canary CRD is responsible to manage a just single VirtualService. The problem is that I'm using a single VirtualService to route to multiple services. This is because, since the cross-resource order is UNDEFINED, I want to avoid having to deal with non-deterministic problems when conflicts between multiple VirtualServices mapping the same hostnames (as described here).
To overcome this limitation, I was trying the following:
with the following resources:
The problem is that when I trigger a deploy of
websites
, even though the traffic of the VirtualService managed by the Canary changes to 80/20 (primary/canary), the canary never gets any traffic and it ends up failing.Is there any solution that allows me to keep a single virtual service or the only solution is to split it in two and associate each one of them with the
public-ingress
gateway?