-
Notifications
You must be signed in to change notification settings - Fork 505
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
GEP: Gateway Routability #1651
Comments
Although this was on pace to be released as experimental in v0.8.0 (thanks to lots of great work by @dprotaso), the initial API review with @thockin and @khenidak raised some important questions that I don't think we have sufficient time to resolve before the v0.8.0 release. I think the most important points are:
Until we can answer these questions, we've decided to pull this GEP back to provisional with these specific questions marked as "unresolved". Unfortunately that means this will miss the v0.8.0 release. |
I think any abstraction we try to make here will inherently be too limiting. If we make some field that accepts either For myself, I have needed to set these fields on the - type
- loadBalancerClass
- loadBalancerIP
- ipFamilyPolicy
- loadBalancerSourceRanges
- sessionAffinity While a My current workaround is to let the What has been proposed before in the linked discussion is a a ref in the The second option, ownership, would solve another problem (which may be better suited in a separate issue) which is how can we make a That said, the problem with a reference is dependency ordering. My proposal is to add a new field, Related: #912 |
This has a dedicated open discussion over in #1687 |
I agree with @Rycieos. In particular, I would like to be able to set loadBalancerSourceRanges on created services. Right now the lack of that capability is preventing me from switching Istio deployments to use the Gateway API |
IMO a first class field is still highly desirable. |
I agree with @howardjohn. The strength of Gateway API is in how much of the API is standardized, meaning documentation is correct for all providers, and a user can switch providers with ease. I think any of the use cases mentioned in this thread will be common enough that having them as per provider configuration will be a detriment to the project as a whole. |
In addition, fields like loadBalancerSourceRanges started out as annotations but were promoted to spec-level fields because they were generic and useful enough to be specifically included. I think a case could be made for all spec-level fields to be supported. Imagine if Deployments didn't support a top-level pod-spec field in the template, that would be crazy. |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/remove-lifecycle stale |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
@robscott you mentioned cluster IP gateways in the meeting today - I'd view that as a subset of this GEP. Really it's what I'm looking for. Can you elaborate what you're thinking? |
I agree with @tculp I have the case over GKE where i would like to restrict access to the gateway to some defined IP ranges, which work by using loadBalancingSourceRanges. |
@tculp @NFRBEZ I think restricting access to a Gateway based on IP ranges is more aligned with the scope of #1141 than this issue, which is focused more on assigning an in-cluster or private network address to a Gateway instead of an external public address.
@Rycieos The difficulty with this is that Gateway is not defined as a resource which creates Services in the same way Deployments create Pods. Rather, an underlying Service is a (relatively common) implementation detail of some Gateway API implementations, and consolidating the user-facing configuration onto the Gateway resource should likely be the goal, while exposing implementation details which aren't part of the spec definition is likely an anti-pattern we'd prefer to avoid. |
That is a very good point. I still think that load balancer configuration is a common use case that needs to be supported, but having a way for implementations to not support or ignore that config would be needed. |
Discussed in #1247
Originally posted by evankanderson June 30, 2022
Currently, the
GatewayAddress
field supports only external (LoadBalanced)Gateway
definitions. I'd like to suggest adding aClusterLocal
orClusterIP
AddressType with Extended support (like the existingIPAddress
andHostname
support).One of the early feature requests for Knative was the ability to deploy an application using Knative's HTTP routing support, but make it only available within the cluster. I want to be able to specify both the "internal" (
service.namespace.svc
) and "external" (service.namespace.example.com
) Gateways using the sameGatewayClass
on the cluster, but ensure that the "internal" service is only reachable within the cluster. This would greatly simplify deployment for users over the instructions we have today.The text was updated successfully, but these errors were encountered: