-
Notifications
You must be signed in to change notification settings - Fork 493
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
[Enhancement Request] Specify Explicit Controller when HTTPRoute
backend is a Service
#3444
Comments
Doesn't the status already include a "controller" field to distinguish multiple controllers writing a status about the same parent? |
The This comes down to the same problem we've talked about before - if the current assumption that there is only one GAMMA implementation in a cluster, how do you choose which implementation should handle a HTTPRoute that has a Service parentRef? (@DerekTBrown the reason why this isn't implemented yet is that assumption I mentioned - we defined that we were not considering having multiple GAMMA implementations in a cluster until later. That was some time ago, so I guess now counts ;) ) We talked a little tiny bit at Kubecon NA 2024 about reconsidering a Mesh resource that would help with this, but it's a tricky problem. Adding a |
TBH I still don't fully understand why you need to do this? I feel like there are 2 sub-usecases:
(1) seems ok-ish? Why does it need to be scoped to only one mesh? Is it using impl-specific functionality? (2) also seems ok-ish -- regardless of config, the 'first' mesh in the network path is going to handle Service networking entirely so the Route customization is not the deciding factor in who controls the traffic? |
I have considered the current design of the Gateway API within the GAMMA initiative, particularly regarding the use of Rationale:
In conclusion, the current design effectively delegates the responsibility of service-to-mesh association to the mesh controllers and cluster configuration. This approach supports scalability and maintainability, even in complex multi-mesh scenarios, without necessitating changes to the Gateway API specifications. For further context, similar discussions have taken place in the community, such as the issue on defining namespace boundaries for parent and backend references in mesh configurations . |
What would you like to be added:
HTTPRoute
needs a way of explicitly specifying thecontrollerNames
that should be responsible for implementing the route whenparentRef
is not aGateway
.I propose this be added to the
parentRef
schema:Alternatively, an annotation could be made on the
Service
resource to indicate the controller owner.Why this is needed:
HTTPRoutes
that useService
as aparentRef
(for instance, Istio).Users might have multiple controllers capable of implementing this
HTTPRoute
.This can lead to conflicts between controllers, that clobber owners references, statuses, etc.
The text was updated successfully, but these errors were encountered: