-
Notifications
You must be signed in to change notification settings - Fork 866
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
implement the support for Traefik setMirror #2890
Comments
mirrorTraefikServiceName
@GiuseppeChiesa-TomTom thank you for the created issue.
I prefer second variant as plugin system was created for that and the future fixes and changes for Traefik support will be easier and quicker Also I can implement Traefik mirror support @zachaller and @kostis-codefresh what do you think ? |
I think that docs are just a typo actually there is no other mention of that field in the code anywhere. I would actually start with something like enabling the SetMirror support for trafiek https://argo-rollouts.readthedocs.io/en/stable/features/traffic-management/#traffic-routing-mirroring-traffic-to-canary I think that would get you want you want? |
I've tried the suggested approach via Name: echo-server-my-application
Namespace: default
Status: ✖ Degraded
Message: InvalidSpec: The Rollout "echo-server-my-application" is invalid: spec.strategy.steps[2].setMirrorRoute: Invalid value: v1alpha1.SetMirrorRoute{Name:"warmup", Match:[]v1alpha1.RouteMatch{v1alpha1.RouteMatch{Method:(*v1alpha1.StringMatch)(0xc0010f8840), Path:(*v1alpha1.StringMatch)(nil), Headers:map[string]v1alpha1.StringMatch(nil)}}, Percentage:(*int32)(0xc000f69464)}: SetMirrorRoute requires TrafficRouting, supports Istio only
Strategy: Canary
Step: 7/9
SetWeight: 50
ActualWeight: 0
Images: ealen/echo-server:0.6.0 (stable)
Replicas:
Desired: 1
Current: 1
Updated: 1
Ready: 1
Available: 1
NAME KIND STATUS AGE INFO
⟳ echo-server-my-application Rollout ✖ Degraded 53m
└──# revision:1
└──⧉ echo-server-my-application-647bcbcd6 ReplicaSet ✔ Healthy 53m stable
└──□ echo-server-my-application-647bcbcd6-r4t7j Pod ✔ Running 53m ready:1/1 my configuration was the following: trafficRouting:
managedRoutes:
- name: warmup
traefik:
weightedTraefikServiceName: traefik-mirroring-service
steps:
- setCanaryScale:
weight: 100
- pause: { duration: 120 }
- setMirrorRoute:
name: warmup
percentage: 100
match:
- method:
exact: GET
- pause: { duration: 120 }
- setWeight: 20
- pause: { duration: 20 }
- setWeight: 50
- pause: { duration: 20 }
- setWeight: 100 at this point I believe it would be really nice to have the native support for Traefik extended to support mirroring. |
@GiuseppeChiesa-TomTom I updated the docs here #2904 |
@zachaller I looked at code and traefik doesn't have implemented method for SetMirrororRoute |
@Philipp-Plotnikov yup that is correct, and then also update the Readme in the repo to show alpha support. |
@zachaller if it is ok, can I make it ? Who should assign me ? |
@GiuseppeChiesa-TomTom I created PR for that, you can see progress here |
This issue is stale because it has been open 60 days with no activity. |
Summary
As per docs available here, the native Traefik integration enable 2 patterns: weighted traffic routing and mirrored traffic routing.
However, the mirrored traffic pattern is currently not completely supported
Use Cases
In our use-case, we would like to have a pre-warmed fleet of pods in the canary replicaset. For this reason we are seeking the possibility to mirror the traffic from the stable replicaset to the canary one.
With
TraefikService
CRD this is possible (see docs above for an example), and we would like to leverage this capability to achieve something like:Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritize the issues with the most 👍.
The text was updated successfully, but these errors were encountered: