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
[Windows][AntreaProxy] Fix route reconcile() #2939
Conversation
Codecov Report
@@ Coverage Diff @@
## main #2939 +/- ##
==========================================
- Coverage 61.61% 59.25% -2.36%
==========================================
Files 283 283
Lines 23810 23811 +1
==========================================
- Hits 14671 14110 -561
- Misses 7558 8198 +640
+ Partials 1581 1503 -78
Flags with carried forward coverage won't be shown. Click here to find out more.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
/test-windows-all /test-all |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't quite understand what the PR fixes from the description. I can see it originally matched kube-proxy route and now it matches antrea-proxy route, but it doesn't say why we should skip the latter now. We don't expect listRoutes return service routes?
@tnqn The routes returned by Before AntreaProxy change, the if statement in |
Then what's the point of the below code that checks svc IP and how will it delete stale Service routes? antrea/pkg/agent/route/route_windows.go Lines 124 to 145 in ae2b53d
|
@tnqn stale Service routes, flows should be removed here: antrea/pkg/agent/proxy/proxier.go Line 480 in 0ce671b
The
So, |
|
0ce671b
to
e1fcc61
Compare
listRoutes() only considers routes with antrea-gw0 as interface so no need to consider kube-proxy Service routes. Also for AntreaProxy Service routes, all of them should be returned and be compared with desiredClusterIPSvcIPs. NodePort and LoadBalancer Services also have ClusterIPs so the check if Service is ClusterIP Service is unnecessary. Signed-off-by: Zhecheng Li <lzhecheng@vmware.com>
e1fcc61
to
b5819eb
Compare
@tnqn you're right. I let |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
/test-all |
/test-windows-all |
@lzhecheng "jenkins-windows-proxyall-e2e" failed, could you check? |
@tnqn it's not "failed" but not triggered. Currently, test-windows-all doesn't has proxyall-e2e. |
@tnqn as your can see, current design is https://github.com/antrea-io/antrea/blob/main/CONTRIBUTING.md#getting-your-pr-verified-by-ci |
@lzhecheng Including proxyAll test in |
listRoutes() only considers routes with antrea-gw0 as interface
so no need to consider kube-proxy Service routes. Also for AntreaProxy
Service routes, all of them should be returned and be compared with
desiredClusterIPSvcIPs.
NodePort and LoadBalancer Services also have ClusterIPs so the check
if Service is ClusterIP Service is unnecessary.
Signed-off-by: Zhecheng Li lzhecheng@vmware.com