Skip to content
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

Add ParametersRef to Gateway.spec.infrastructure #2924

Merged
merged 1 commit into from
Apr 8, 2024

Conversation

howardjohn
Copy link
Contributor

What type of PR is this?

/kind gep

What this PR does / why we need it:

Follow up to #1868, which was down-scoped to only include labels and annotations to reduce friction on the initial GEP

Which issue(s) this PR fixes:

Fixes #

Does this PR introduce a user-facing change?:

A new `parametersRef` field has been added to `Gateway.spec.infrastructure`. This allows configuration of arbitrary implementation-specific parameters. This field previously existed only on `GatewayClass`. 

@k8s-ci-robot k8s-ci-robot added release-note Denotes a PR that will be considered when it comes time to generate release notes. kind/gep PRs related to Gateway Enhancement Proposal(GEP) cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Apr 2, 2024
@k8s-ci-robot k8s-ci-robot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Apr 2, 2024
@shaneutt shaneutt requested review from michaelbeaumont, gcs278, sunjayBhatia, arkodg and mlavacca and removed request for shaneutt April 2, 2024 17:26
Copy link
Member

@robscott robscott left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @howardjohn! Definitely a stretch to get into v1.1 given the timeline, but since this is just a part of a GEP that was already promoted to experimental, it seems like there might be a small chance it could fit in if we don't run into any significant issues.

// Support: Implementation-specific
//
// +optional
ParametersRef *ParametersReference `json:"parametersRef,omitempty"`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This allows for cross-namespace references, I'm not sure we want to allow for that. The corresponding GEP doesn't make it obvious if those are needed, do you mind updating the GEP to clarify the goals here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I made a new LocalParametersReference to force it to be same namespace

// parameters corresponding to the Gateway. This is optional if the
// controller does not require any additional configuration.
//
// This follows the same semantics as GatewayClass's `parametersRef`, but on a per-Gateway basis
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need to describe how merging works if/when this is configured at both layers.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added

@k8s-ci-robot k8s-ci-robot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Apr 2, 2024
Copy link
Contributor

@mikemorris mikemorris left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would like to see this get in!

For context, GEP-1867, which is currently in Experimental status, covers the background motivation and why GatewayClass parametersRef is not sufficient, and #2911 is an example of a specific issue that arose from the tension between how GatewayClass parametersRef was intended/suggested to be used (as a template), and the role that it's being stretched into filling in practice because of the gap that adding this Gateway-scoped option for implementation-specific dynamic configuration would help solve.

A summary of the feedback that blocked adding this during API review previously can be found at #1757 (comment) and additional supporting context for how Gateways are being used (and who is configuring them) to justify this need can be found in #1653 (comment).

@howardjohn Would this solve the core need in #567?

@howardjohn
Copy link
Contributor Author

@mikemorris from my POV this is good enough to close #567

@youngnick
Copy link
Contributor

I'm still a little worried that this will drop the incentive for people to bring further changes to infrastructure upstream (since you can now do whatever you want in your own paramsRef), but not enough to hold off on this. I would really like to see us consider what things end up in custom paramsRef objects that should be lifted out into standard infrastructure fields instead.

That said,

/approve

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Apr 5, 2024
@howardjohn
Copy link
Contributor Author

fwiw I don't think we have plans to implement paramsref in istio in the near term so we are incentivezed to keep pushing for first class fields once this lands :-)

@howardjohn
Copy link
Contributor Author

/assign @robscott

Copy link
Member

@shaneutt shaneutt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/approve
/lgtm
/unhold

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Apr 8, 2024
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: howardjohn, mikemorris, shaneutt, youngnick

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed lgtm "Looks good to me", indicates that a PR is ready to be merged. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Apr 8, 2024
@robscott
Copy link
Member

robscott commented Apr 8, 2024

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Apr 8, 2024
@k8s-ci-robot k8s-ci-robot merged commit d8c6aa8 into kubernetes-sigs:main Apr 8, 2024
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/gep PRs related to Gateway Enhancement Proposal(GEP) lgtm "Looks good to me", indicates that a PR is ready to be merged. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants