Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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-1762: In Cluster Gateway Deployments #1757
GEP-1762: In Cluster Gateway Deployments #1757
Changes from 3 commits
138222d
f9ddd75
5cd70cb
4c2ae88
1c01615
c6a7dcb
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
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.
It seems like most if not all of this GEP would be pretty difficult to write conformance tests for, do you have any ideas for how this would work?
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.
That is a good point. Not really... any ideas?
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 think this is unfortunately going to be a feature that doesn't/can't have conformance tests.
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.
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.
How should this handle multiple resources of the same kind without colliding? Was this intended to be something like "MUST use as a name prefix for generated resources"?
We, for example, automatically create multiple Deployments (the proxy instances and a configuration manager) and and multiple Services (admin traffic, proxy traffic, and some utility/status APIs), some associated with one Deployment and some with the others.
We currently do something like the prefix approach. IIRC it's caused some issues because of the name character limit, and I don't think we've found a better way around that than telling users to choose shorter names.
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.
Currently it does not. Interesting case. On benefit of deterministic names is a lot of other policies attach via name. For example HPA. So having a common name is pretty handy. That is tricky if we have multiple though...
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.
Is this dilemma something we can capture in a TODO section so that we can merge, but don't have to hold up this specific PR?
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 remain in favor of creating a TODO item for this in the GEP, with the intention that we don't move to
implementable
until we resolve this, but to allow us to move forward with this first large iteration and resolve this separately as its own focus.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 think it's going to be very difficult to require this behavior without being disruptive to all in-cluster implementations. I think suggesting a pattern, and stating that it may just serve as a prefix (ie
generateName
instead ofname
) may be sufficient here.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 can't really tell if this is trying to tell implementations what they should do, or just provide an example of how some implementations handle this.
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.
The intent here got muddled through the revisions. Its meant to be "If they provide an IP, you better use it" and whether you use it as the clusterIP vs the loadBalancerIP is based on the type of service, which was determined by routability previously
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 think this is already covered reasonably well in the spec:
gateway-api/apis/v1beta1/gateway_types.go
Lines 134 to 163 in cd223ea
It may be worth describing how in-cluster implementations can accomplish this in this GEP, but I don't think we need to add any new requirements here. Just trying to avoid introducing too many unique sources of requirements in case they need to change in the future.
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 made it more clear, I think. LMK what you think
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'm not really sure I see the parallel here? They may be providing similar functionality, but I don't think the way it's accomplished is very similar.
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.
is it more clear with https://github.com/kubernetes-sigs/gateway-api/pull/1757/files/4c2ae889c6ce055173e59aad70a3f31e06ccabff#r1327844348?
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.
Can we just start with this on the Gateway and consider support on
GatewayClass
as future work? I think we could make a good argument for precedence to go in either direction here and/or to recreate theoverrides
anddefaults
concept from inherited policy attachment in theGatewayClass.spec.infrastructure
field to enable both. I think that's a sufficiently complex conversation that it can be saved for a follow up and just removed from the initial scope of this GEP.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 had it like that at first and @youngnick suggesting it would be a good requirement. I don't have a preference either way so will do whatever
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.
@youngnick's traveling for a bit so may take some time to respond, but I did get some time to talk with him about this yesterday and he was on board with only targeting Gateway to start.
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.
Yes, this is on me, I think that having this work for Gateway first is better. Let's get something first, and add the GatewayClass later if needed.
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 think this is needed anymore.
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.
Its in GatewayInfrastructure, so probably pending decision on #1757 (comment)?
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.
Yeah, I'd personally rather keep this GEP as focused as possible since we're really only a couple of weeks away from trying to be feature complete for v1.0. I don't really have anything against ParamsRef here, but similar to the comment above, it introduces some form of merging logic between GWC and GW, and I want to make sure we take the time to get it right so would rather leave it out of scope for now.