Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support more than 2 Istio HTTPRouteDestinations in the Canary rollout #1364

Open
wentwog opened this issue Jul 20, 2021 · 9 comments
Open

Support more than 2 Istio HTTPRouteDestinations in the Canary rollout #1364

wentwog opened this issue Jul 20, 2021 · 9 comments
Labels

Comments

@wentwog
Copy link

wentwog commented Jul 20, 2021

Currently the Canary rollout requires that Istio VirtualService's HTTPRoute must have exactly 2 HTTPRouteDestinations.
Support having more HTTPRouteDestinations.

Use Cases

Migrating to Istio, we have a legacy system to which we route some percentage of traffic, e.g.:

  • Istio Stable: 50%
  • Istio Canary: 30%
  • Legacy: 20%

When a new service version gets rolled out, we'd like ArgoRollouts to switch the weights only for the first two HTTPRouteDestinations.
Note, Stable + Canary weight might not be 100% in this case.
The Legacy weight is changed manually.


Message from the maintainers:

Impacted by this bug? Give it a 👍. We prioritize the issues with the most 👍.

@wentwog wentwog added the enhancement New feature or request label Jul 20, 2021
@pparth
Copy link

pparth commented Jul 20, 2021

It is rather restrictive to have to use exactly 2 Route Destinations, unless we are missing something.

@agrawroh
Copy link
Member

agrawroh commented Aug 2, 2021

Since I already touched some of the code for Argo integration with Istio VS in one of my other PRs, I could work on this one. We have a similar requirement and it'll be pretty cool to get it done.
cc @huikang

@pparth
Copy link

pparth commented Aug 10, 2021

So, is there an ETA about this?

@agrawroh
Copy link
Member

agrawroh commented Aug 14, 2021

Created a PR for this: #1420

Would appreciate any feedback/comments.

@angeloslenis
Copy link

Any updates here?

@github-actions
Copy link
Contributor

github-actions bot commented Dec 6, 2022

This issue is stale because it has been open 60 days with no activity.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2023

This issue is stale because it has been open 60 days with no activity.

@jonwinton
Copy link

Hello! This is an issue I've come across that I'm interested in solving for our org. @agrawroh I saw from your PR that there was a question about the approach to the design and you had a suggestion:

One proposal is to add an optional httpRoutes which will be an array of objects similar to the tlsRoutes and gradually deprecate the use of routes over time. In the beginning, we can enforce the use of only one i.e either routes or httpRoutes. I proposed this to @jessesuen as well.

To pick this up, would you recommend following this route? Or do you think the approach of maxWeight is the appropriate?

@agrawroh
Copy link
Member

agrawroh commented May 22, 2024

Hello! This is an issue I've come across that I'm interested in solving for our org. @agrawroh I saw from your PR that there was a question about the approach to the design and you had a suggestion:

One proposal is to add an optional httpRoutes which will be an array of objects similar to the tlsRoutes and gradually deprecate the use of routes over time. In the beginning, we can enforce the use of only one i.e either routes or httpRoutes. I proposed this to @jessesuen as well.

To pick this up, would you recommend following this route? Or do you think the approach of maxWeight is the appropriate?

@jonwinton Yes, converting routes to an object as suggested would probably be the right way to do it. If you want to give it a shot, I'm more than happy to review :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants