-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Optional disabling of ClusterIP routing in the activator #16081
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
base: main
Are you sure you want to change the base?
Optional disabling of ClusterIP routing in the activator #16081
Conversation
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: elijah-rou The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Hi @elijah-rou. Thanks for your PR. I'm waiting for a knative member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #16081 +/- ##
==========================================
+ Coverage 80.14% 80.17% +0.03%
==========================================
Files 214 214
Lines 16877 16883 +6
==========================================
+ Hits 13526 13536 +10
+ Misses 2989 2985 -4
Partials 362 362 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Adds the ability to optionally disable ClusterIP routing on a per-revision basis through the 'serving.knative.dev/disable-clusterip-routing' annotation. When this annotation is set to 'true' on a revision, the activator will bypass ClusterIP routing and use direct pod IP routing exclusively, even when a healthy ClusterIP is available. Key changes: - Add DisableClusterIPRoutingAnnotationKey constant for the new annotation - Extend revisionThrottler to track and respect the disableClusterIP setting - Modify routing logic to skip ClusterIP when disabled - Read annotation value during throttler creation from revision metadata - Maintain full backward compatibility (ClusterIP routing enabled by default) This feature is useful for scenarios where direct pod routing is preferred over ClusterIP load balancing, such as for debugging, performance testing, or when specific routing behaviors are required. Includes comprehensive tests to verify both disabled and default behaviors.
9a8ccd9
to
9c8f884
Compare
You might want to take a look at #10751 The intent was to remove the cluster IP routing completely. It's there because of Istio Mesh. But back then I discovered our mesh tests weren't actually setting up mesh properly. That's since been fixed but Markus left the project before revisiting the work. I think I'd prefer to revisit that with the hope of removing these fallbacks completely. Also supposedly this isn't needed in Istio ambient mode at all. |
Adds the ability to optionally disable ClusterIP routing on a per-revision basis through the 'serving.knative.dev/disable-clusterip-routing' annotation.
When this annotation is set to 'true' on a revision, the activator will bypass ClusterIP routing and use direct pod IP routing exclusively, even when a healthy ClusterIP is available.
Key changes:
annotation
setting
default)
This feature is useful for scenarios where direct pod routing is preferred over ClusterIP load balancing, such as for debugging, performance testing, or when specific routing behaviors are required.
Includes comprehensive tests to verify both disabled and default behaviors.