-
Notifications
You must be signed in to change notification settings - Fork 584
ListenerSet APIs + Generated Clients #3588
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
Conversation
I'm going to pull
Into a separate PR |
/hold for #3589 |
/hold need to add the Gateway changes |
/hold cancel |
Ok - I figured out there's a marker
So we could have a single clientset that has stable and experimental apis - let me know what people prefer |
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 overall we're heading in a good direction here, but I think we need to reiterate what feels like a more obvious question as I read more: "What is a Gateway after this, really?"
Personally I'll have to think on this quite a bit and come back around to it 🤔
Namespace support is in a follow up PR #3632 |
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.
We still need to update the GEP status to Experimental
.
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.
Thank you @dprotaso for working this one for many months, through issues, discussions, zoom syncs, and PRs. Also thank you for #3632 I think it'll be fantastic if we can get that into 1.3 as well.
Once everyone's current comments are resolved, I think this is ready to move into experimental and start getting feedback from implementations.
/approve
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.
Thanks @dprotaso! One nit, otherwise LGTM.
LGTM with @robscott's requested changes. |
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.
Once the remaining comments are resolved, lgtm!
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: dprotaso, mlavacca, robscott, shaneutt The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
All comments are resolved - PTAL and once this is merged I'll rebase the other PR. |
Thanks @dprotaso! /lgtm |
* add listenerset types * adjust GEP to match go type * run deepcopy-gen & register-gen * perform code generation * Add ListenerSetList type * remove TODO for cel validation that allows an optional port * add Gateway allowedListeners property * Add 'None' as an allowable option for FromNamespaces * combine into a single client * fix group name to be x-k8s.io * add a blurb about listener conflict * listener names don't need to be unique across listenersets and gateways * change use of ListenerSet conditions to a MUST requirement * add a Programmed Reason of ParentNotProgrammed * fix typo * parentRef is not optional * add a note about Gateway Listener list MAY drop MinItems=1 requirement * Update GEP to experimental * update GEP metadata * AllowedListeners is no longer a list
* add listenerset types * adjust GEP to match go type * run deepcopy-gen & register-gen * perform code generation * Add ListenerSetList type * remove TODO for cel validation that allows an optional port * add Gateway allowedListeners property * Add 'None' as an allowable option for FromNamespaces * combine into a single client * fix group name to be x-k8s.io * add a blurb about listener conflict * listener names don't need to be unique across listenersets and gateways * change use of ListenerSet conditions to a MUST requirement * add a Programmed Reason of ParentNotProgrammed * fix typo * parentRef is not optional * add a note about Gateway Listener list MAY drop MinItems=1 requirement * Update GEP to experimental * update GEP metadata * AllowedListeners is no longer a list
* apis: add implementation for GEP-3388 HTTPRoute Retry Budget * fmt and add descriptions for parameters * Move GEP 3388 to Experimental * make generate * Minor change * Require both parameters of RequestRate * Begin fixing Retry description. Add defaults, some validation, in CommonRetryPolicy * Taking the liberty of renaming CommonRetryPolicy to RetryConstraint * Shamelessly copying from backendlbpolicy and backendtlspolicy to conform with api structure * Fleshing out the description for RetryConstraint * refactor codegen scripts to make it easier to generate two clients * Attempting to match the experimental API structure that dprotaso made in #3588 * Delete files that were generated before moving to apisx * undo commenting * Working to fix code gen following merge * Fix api group name * capitalize RFC 2119 keyword * Addressing comments from code review * missing file * fix imports * Modify descriptions; add greater validation * Update apisx/v1alpha2/backendtrafficpolicy.go Co-authored-by: Rob Scott <[email protected]> * Not complete, but adding CEL tests for backend traffic policy * fix missing retryConstraint in test struct; add tests for invalid config * move to apis/v1alpha1 * add main_test * rename file * fix missing quotes :) * fix CEL condition * move validation message to interval field directly * remove unused apisx/v1alpha2 file * remove more files from before merging experimental api versions --------- Co-authored-by: Dave Protasowski <[email protected]> Co-authored-by: Rob Scott <[email protected]>
GEP-1713 was previously listed as provisional, but PR kubernetes-sigs#3588 moved it to experimental.
GEP-1713 was previously listed as provisional in the website, but PR kubernetes-sigs#3588 moved it to experimental.
GEP-1713 was previously listed as provisional in the website, but PR #3588 moved it to experimental.
GEP-1713 was previously listed as provisional in the website, but PR kubernetes-sigs#3588 moved it to experimental.
// Gateway. | ||
NamespacesFromSame FromNamespaces = "Same" | ||
// No Routes/ListenerSets may be attached to this Gateway. | ||
NamespacesFromNone FromNamespaces = "None" |
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.
@dprotaso what's the user case for None
?
Part of #1713
Merge #3589 beforehand (to make this diff easier)
Note: this required two different client sets because if you try to generate a client set containing the stable group (
gateway.networking.k8s.io
) and experimental(gateway.networking.k8s-x.io)
client-gen usesgateway
part from both api groups for naming in the client set and it creates a conflictRelease Note