Skip to content

Conversation

@kl52752
Copy link
Contributor

@kl52752 kl52752 commented Jul 22, 2025

What type of PR is this?
/kind gep

What this PR does / why we need it:
Introduce changes to client certificate validation API to address connection coalescing security issue.

Which issue(s) this PR fixes:
Relates to: #3760 (comment)

Fixes #

Does this PR introduce a user-facing change?:

Introduce gateway level TLS configuration for client certificate validation configured with per port granularity.

Relates to kubernetes-sigs#3760 (comment)

Signed-off-by: Arko Dasgupta <[email protected]>
@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 Jul 22, 2025
@k8s-ci-robot k8s-ci-robot added do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Jul 22, 2025
@k8s-ci-robot
Copy link
Contributor

Hi @kl52752. Thanks for your PR.

I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@kl52752
Copy link
Contributor Author

kl52752 commented Jul 22, 2025

/assign @robscott @shaneutt @youngnick
/cc @arkodg

@shaneutt shaneutt moved this to Review in Release v1.4.0 Jul 22, 2025
@shaneutt shaneutt added this to the v1.4.0 milestone Jul 22, 2025
@arkodg arkodg mentioned this pull request Jul 22, 2025
@kl52752 kl52752 force-pushed the gep-91-update branch 2 times, most recently from b5c8c13 to 494f360 Compare July 22, 2025 15:08
Copy link
Contributor

@arkodg arkodg left a comment

Choose a reason for hiding this comment

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

/approve

thanks @kl52752 for driving this enhancement

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 @kl52752!

/ok-to-test

// to a subset of listeners by creating only per-port configurations. Listeners
// with a port that does not match any TLS configuration will not have
// `frontendValidation` set.
type GatewayTLSConfigs = []TLSConfig
Copy link
Member

Choose a reason for hiding this comment

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

Is this meant to represent the top level field on the Gateway spec? Assuming that's the case, it could be helpful to clarify that.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good point.
I added a snippet with extending GatewaySpec with a new field. I hope it's more clear now.

Comment on lines 34 to 36
* Add a new `FrontendValidationModeType` enum within `FrontendTLSValidation` indicating how gateway should validate client certificates. As for now we support following values but it might change in the future:
* `AllowValidOnly`
* `AllowInvalidOrMissingCert`
Copy link
Member

Choose a reason for hiding this comment

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That's weird in my VS code it's rendering as intended. I changed this to numbers.

Copy link
Member

Choose a reason for hiding this comment

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

Yeah, mkdocs is quite picky. I think it may require 4 spaces or something, lots of other markdown renderers accept how you had the list formatted.

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. approved Indicates a PR has been approved by an approver from all required OWNERS files. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Jul 23, 2025
@youngnick
Copy link
Contributor

This LGTM with the latest changes.

I'll leave the hold in place in case anyone else wants to review though.

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jul 24, 2025
@robscott
Copy link
Member

Thanks @kl52752!

/approve

@robscott
Copy link
Member

Will aim for some lazy consensus on here - we've got 3 approvals. Let's plan on removing the hold tomorrow unless there's any additional feedback.

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.

/lgtm
/unhold

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jul 24, 2025
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: arkodg, kl52752, 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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot merged commit ff47627 into kubernetes-sigs:main Jul 24, 2025
14 checks passed
@github-project-automation github-project-automation bot moved this from Review to Done in Release v1.4.0 Jul 24, 2025
tylerauerbeck pushed a commit to tylerauerbeck/gateway-api that referenced this pull request Nov 27, 2025
…#3942)

* GEP 91: Update API

Relates to kubernetes-sigs#3760 (comment)

Signed-off-by: Arko Dasgupta <[email protected]>

* GEP-91: Address connection coalescing security issue

* remove changes in API

---------

Signed-off-by: Arko Dasgupta <[email protected]>
Co-authored-by: Arko Dasgupta <[email protected]>
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. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. 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

Status: Done

Development

Successfully merging this pull request may close these issues.

6 participants