Support Traffic Splitting to Baseline, Stable, and Canary Pods in Experiment Step for GCP Gateway API Plugin #111
vthiruveedhi
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Description
Argo Rollouts provides support for the experiment step, including weighted traffic routing, as documented in the Experiment Feature Overview. This feature automatically creates Service objects for experiment templates (e.g., baseline and canary) and dynamically splits traffic according to specified weights. For example, with the AWS ALB traffic router, Argo Rollouts updates Ingress annotations to route traffic across stable, baseline, and canary services during an experiment, reverting traffic post-experiment as needed.
However, the GCP Gateway API plugin (argoproj-labs/gatewayAPI) lacks equivalent support. When using the experiment step with the Gateway API on Google Kubernetes Engine (GKE), the HTTPRoute is not updated to reflect traffic splits to experiment services, preventing the intended behavior.
Example: Working Behavior with AWS ALB
The AWS ALB traffic router demonstrates how this should work. Here’s an example from an Ingress annotation update:
During Experiment
Traffic splits: 70% to stable, 5% to baseline, 25% to canary.
After Experiment (Post-Migration)
Traffic reverts: 100% to stable.
This shows Argo Rollouts effectively managing traffic splits for experiment services with the AWS ALB plugin.
Expected Behavior with GCP Gateway API
Based on the experiment documentation and parity with other traffic routers:
70% to argo-rollouts-stable-service (stable pods).
5% to test-app-experiment-baseline (baseline pods).
25% to test-app-experiment-canary (canary pods).
Actual Behavior
Request for Assistance
I’d greatly appreciate guidance or contributions from the GCP Arorollouts Rollouts team to implement this feature. I’m happy to assist with testing or providing additional details from my GKE setup. Thank you for considering this enhancement!
Beta Was this translation helpful? Give feedback.
All reactions